Repository navigation
β‘ Mostro v2.0.17
Non-custodial, peer-to-peer Bitcoin trading over Lightning and Nostr.
π₯ Downloads
π€ Android
| File | Architecture | For |
|---|---|---|
mostro-v2.0.17-arm64-v8a.apk |
v8 β ARMv8-A, 64-bit (AArch64) | Modern phones. Pick this one if unsure. |
mostro-v2.0.17-armeabi-v7a.apk |
v7 β ARMv7-A, 32-bit | Old or entry-level phones that run a 32-bit Android. |
Both need Android 7.0 (API 24) or later and are the same app: an APK holds
native machine code (the Flutter engine and Mostro's Rust core, which does all
the cryptography), and one file per CPU instruction set keeps each download to
a fraction of the size of a universal APK. Every release is signed with the
same key, so it installs over the previous version and keeps your data.
Which APK is mine?
arm64-v8a(v8) targets the 64-bit ARMv8-A instruction set. Practically
every phone released since 2016β2017 runs a 64-bit Android, Google Play has
required 64-bit builds since August 2019, and recent devices β the Pixel 7
and later, and any phone built on 2023-or-newer Arm cores β are
64-bit only: they cannot run the v7 APK at all. 64-bit code is also
noticeably faster at the elliptic-curve and encryption work the app does.armeabi-v7a(v7) targets 32-bit ARMv7-A with hardware floating point.
It is for phones with a 32-bit CPU (Cortex-A7/A9/A15 class, roughly 2015
and earlier) and for phones whose 64-bit-capable CPU ships with a
32-bit Android β common in budget and Android Go models with 2 GB of RAM
or less.- To be sure: try v8 first. If Android answers "App not installed" or
"package is not compatible with your phone", install v7. With a computer,
adb shell getprop ro.product.cpu.abilistprints the supported ABIs β
ifarm64-v8ais in the list, use v8. - x86 devices (emulators, some Chromebooks) are not covered by these builds.
mostro-v2.0.17.aab is the Android App Bundle for the Google Play Console β the store builds the per-device APKs from it. It is not installable on a phone.
π₯οΈ Desktop
| File | Runs on |
|---|---|
mostro-v2.0.17-linux-x64.tar.gz |
x86-64, glibc 2.35 or later (Ubuntu 22.04, Debian 12, Fedora 36β¦) |
mostro-v2.0.17-windows-x64.zip |
Windows 10 or later, x86-64 |
mostro-v2.0.17-macos-universal.zip |
macOS 10.15 or later β Apple Silicon and Intel (universal binary) |
Linux β unpack and run
mkdir mostro && tar -xzf mostro-*-linux-x64.tar.gz -C mostro && ./mostro/mostroKeep the folder together: the mostro binary loads lib/ and data/ from
next to itself. It needs GTK 3 and libsecret with a running keyring
(GNOME Keyring, KWallet) β that is where your keys are stored.
To add Mostro to your application menu, with its icon, run
./mostro/install.sh once (again after moving the folder;
--uninstall removes it). On Wayland the app shows a generic icon until then.
Windows β unzip and run mostro.exe
Unzip the whole folder and start mostro.exe from inside it; the DLLs and
data\ next to it are part of the app. The build carries no Authenticode
signature, so SmartScreen shows "Windows protected your PC": choose
More info β Run anyway. Check the file against SHA256SUMS.txt first.
macOS β allow an app Apple has not notarized
The app is ad-hoc signed and not notarized, so Gatekeeper refuses it on a
double click ("cannot be opened" or "is damaged"). After checking the zip
against SHA256SUMS.txt, unzip it, move mostro.app to Applications and
clear the quarantine flag once:
xattr -dr com.apple.quarantine /Applications/mostro.appπ iOS
| File | Runs on |
|---|---|
mostro-v2.0.17-ios-unsigned.ipa |
iPhone, iOS 14 or later (arm64) |
iOS β for sideloading only
This .ipa is unsigned: iOS will not install it as it is, and it is not a
TestFlight or App Store build. It is meant to sideload with a tool that
re-signs it with your own Apple ID (AltStore, Sideloadly, or Xcode). Apps
signed with a free Apple ID expire after 7 days, and push notifications do
not work in a re-signed build β they need the project's own provisioning
profile.
Verify a download with sha256sum -c SHA256SUMS.txt --ignore-missing.
π What's changed
β¨ Features
- trades: notify trades on other nodes (phase 3b of 5) (#831) by @Catrya
- relays: accept ws:// relays in debug builds (#833) by @grunch
- trades: hear trades on other nodes (phase 3a of 5) (#830) by @Catrya
- show the buyer where their sats were sent (#824) by @grunch
- reputation: add the reputation settings screen (#827) by @grunch
- reputation: import reputation from lnp2pBot (#676) by @grunch
- reputation: export and import reputation in the core (#675) by @grunch
- nodes: add Mostro Ecuador to the trusted node registry (#819) by @grunch
- order-link: open mostro: links from the OS on every native platform (#808) by @grunch
- order-link: the screen a mostro: order link opens (#807) by @grunch
- trades: count down to the escrow deadline on active and fiat-sent trades (#796) by @Catrya
- about: show where the node takes its prices from in the technical data (#769) by @Catrya
- order-link: find the order a mostro: link points at (#805) by @grunch
- chat: open the peer chat with the cursor in the composer (#802) by @grunch
- trades: chat card names who you chat with and says it opens (21a) (#791) by @grunch
π Bug Fixes
- settings: migrate the Relays screen to the design guide (#835) by @grunch
- order: show payment methods whole when one or two do not fit (#814) by @21Mill
- trades: keep the order id above the buyer's payout card (#828) by @grunch
- identity: a failed identity wipe leaves a trace and retries (#573) by @Forte11Cuba
- trades: send trade actions only to the trade's own node (phase 2 of 5) (#822) by @Catrya
- orders: leave the invoice form on a late acceptance of a sell order (#825) by @grunch
- trades: record the issuing node on every trade row (phase 1 of 5) (#817) by @Catrya
- orders: an order past its take window is not offered for taking (#821) by @grunch
- order-link: ask a relay again when it drops before answering (#820) by @grunch
- orders: reconcile a take reply that arrives after the 10 s timeout (#570) by @Forte11Cuba
- trades: a maker's canceled order opens on its outcome, and its notice stops pointing at a gone trade (#818) by @grunch
- orders: the payout screen asks for the payout amount, not the order amount (#788) by @Catrya
- orders: date a rebuilt taker row by its message (#592) (#629) by @Forte11Cuba
- nav: back ends on Book, and a notification tap starts a fresh stack (#803) by @grunch
- disputes: say once that a resolved dispute's chat is closed (#800) by @grunch
- bond: keep the QR when the explainer is open, and lead with Copy on web (#792) by @Catrya
- disputes: read the Serbero label from the cached info event first (#793) by @grunch
β»οΈ Refactoring
π· Build & CI
π§Ή Chores
π§ Other Changes
- Fix/cashu non sat token message (#798) by @Forte11Cuba
π₯ Contributors
Thanks to everyone who made this release possible:
@21Mill Β· @Catrya Β· @Forte11Cuba Β· @grunch
π± New Contributors
Full diff: v2.0.16...v2.0.17 Β·
History: CHANGELOG.md