-
Notifications
You must be signed in to change notification settings - Fork 14
2026 Monthly Reports
One report per month is shown. Automated reports started August 2026 so first report was done on prior month (July).
Generated 2026-08-13 · window: last 30 days (Play metrics are a 28-day average). Sources: Play / TestFlight (real audience), GitHub (sideload), self-hosted analytics (engagement, opt-in only).
- Bisq Easy (node app): ~5,202 active devices (Android only), the larger audience — plus an estimated sideload base on top (see below).
- Bisq Connect: ~945 across platforms (~445 Android active devices + ~500 iOS TestFlight testers), plus Android sideload.
- Channels are not deduplicable, so these are per-app pictures, not one global total. Store numbers are real device counts; sideload and analytics are floors.
- iOS is ~53% of the Connect audience despite no App Store presence (TestFlight + AltStore only) — validation of the sideload-first iOS strategy.
Audience by app (active devices / TestFlight testers)
Bisq Easy (node) ██████████████████████████████████ 5,202 (85%)
Bisq Connect ██████ 945 (15%)
Bisq Connect by platform
Android (Play active devices) ██████████████████████████████ 445 (47%)
iOS (TestFlight testers) ██████████████████████████████████ 500 (53%)
First report — no prior month to compare yet. Next month's report will show deltas here automatically.
| App | Audience (active devices) | MAU | DAU | Total installs | New installs (28d) | Rating |
|---|---|---|---|---|---|---|
| Bisq Connect (Android) | 445 | 178 | 9.61 | 1,760 | 201 | 4.5 |
| Bisq Easy Node (Android) | 5,202 | 2,360 | 159 | 17,600 | 1,455 | 3.47 |
Audience = active devices (28-day average): devices with the app installed and used in the period — the truest 'how many people use it' number. MAU = monthly active users (unique users active in the last 28 days). DAU = daily active users (average per day over the period).
Audience (active devices) & new installs are pulled live from the Play Console statistics export (2026-07 monthly average). MAU/DAU, total installs and rating stay manual — Play exposes no API for those.
Bisq Connect (iOS): TestFlight testers 500, AltStore PAL installs — (iOS active-user metrics aren't exposed like Play's; testers is the closest proxy).
| App | Crash-free | ANR rate | Rating |
|---|---|---|---|
| Bisq Connect (Android) | — | — | 4.5 |
| Bisq Easy Node (Android) | 100.00% | 0.32% | 3.47 |
Crash-free & ANR are pulled live from the Play Developer Reporting API (28-day user-weighted, as of 2026-08-11). Apps below Play's minimum-user threshold show — (Vitals suppressed).
The node app's lower rating (3.47) despite 100.00% crash-free isn't a stability story — it points to UX/expectations rather than defects, and is the clearest KPI to watch.
Active base ≈ the latest release's per-week APK pull, bot-discounted. Same base re-downloads each release; cumulative ≠ unique. iOS not measurable (AltStore mirrors the IPA).
| App | Latest | Latest /week | Active sideload base | All-time APK dl |
|---|---|---|---|---|
| Bisq Easy Node (Android) | anode_0.10.0 | 900 | ~540–720 | 16,205 |
| Bisq Connect (Android) | connect_0.8.0 | 195 | ~117–156 | 8,711 |
From the app's own privacy-preserving analytics — opt-in only (off by default) and with no per-device identity, so these are engagement floors, not user counts.
Total analytics events (30d): 33,325 across opted-in installs.
| App | Events | Errors | New opt-ins | Opt-outs | Dashboard opens |
|---|---|---|---|---|---|
| Bisq Easy Node (Android) | 31,470 | 10 | 550 | 15 | 3,260 |
| Bisq Connect (Android) | 1,124 | 3 | 16 | 2 | 124 |
| Bisq Connect (iOS) | 731 | 11 | 11 | 0 | 74 |
- 208 trades started in the window; 40 completed (19%).
- Of the rest: 56 cancelled (27%), 43 rejected by the counterparty (21%), 67 still in progress (32%), 2 errored.
- Non-completion is people, not the app: 99 of 208 (48%) were user cancellations or counterparty rejections. Read the completion rate as a matching/liquidity signal, not an app-quality one.
- App mechanics are healthy: only 3 step action(s) failed. (Completion % also understates the true rate: trades started late in the window haven't finished yet.)
Full step breakdown
| Step | Count |
|---|---|
| trade.phase_buyer_1_setup_opened | 937 |
| trade.phase_buyer_2_fiat_opened | 551 |
| trade.phase_buyer_1_setup_reached | 454 |
| trade.phase_buyer_3_btc_opened | 278 |
| trade.phase_buyer_2_fiat_reached | 213 |
| trade.taken | 208 |
| trade.phase_buyer_3_btc_reached | 184 |
| trade.btc_address_confirmed | 138 |
| trade.cancelled | 56 |
| trade.fiat_sent_confirmed | 44 |
| trade.rejected | 43 |
| trade.phase_buyer_4_complete_opened | 41 |
| trade.phase_buyer_4_complete_reached | 40 |
| trade.completed | 40 |
| trade.btc_received_confirmed | 25 |
| trade.errored | 2 |
| trade.btc_address_failed | 2 |
| trade.btc_received_failed | 1 |
15 fatal event(s) across opted-in installs this month; iOS SIGPIPE crashes are the dominant class (10) and the top engineering-triage target.
Full error/crash breakdown
| App | Level | Title | Count |
|---|---|---|---|
| Bisq Connect (iOS) | fatal | SIGPIPE: Signal 13, Code 0 | 6 |
| Bisq Easy Node (Android) | error | ConcurrentModificationException | 4 |
| Bisq Connect (Android) | error | TradeActionException: Trade step 'btc_address' request failed: Job was cancelled | 2 |
| Bisq Connect (iOS) | fatal | SIGPIPE: ENOC > ZTUM | 2 |
| Bisq Easy Node (Android) | fatal | TimeoutException: java.util.concurrent.Executors$FinalizableDelegatedExecutorSer | 1 |
| Bisq Connect (iOS) | fatal | SIGPIPE: performSelector:withObject: | 1 |
| Bisq Connect (iOS) | fatal | EXC_BAD_ACCESS: ZTUM > | 1 |
| Bisq Connect (Android) | error | TradeActionException: Trade step 'btc_received' request failed: Job was cancelle | 1 |
| Bisq Easy Node (Android) | error | TradeProtocolException: Trade protocol error: Bitcoin address length must not be | 1 |
| Bisq Easy Node (Android) | error | TradeProtocolException: Trade protocol error: Takers (buyers) Bitcoin amount is | 1 |
| Bisq Easy Node (Android) | fatal | IllegalArgumentException: Key "d88fff1b-d236-391c-bdc6-521b41873785" was already | 1 |
| Bisq Easy Node (Android) | fatal | OutOfMemoryError: Failed to allocate a 32 byte allocation with 2566400 free byte | 1 |
| Bisq Easy Node (Android) | fatal | TimeoutException: com.android.internal.os.BinderInternal$GcWatcher.finalize() ti | 1 |
| Bisq Connect (iOS) | fatal | SIGPIPE: __AUTH_CONST > __AUTH_DIRTY > __AUTH_TPRO_CONST > __DATA_CONST > dyld_v | 1 |
Caveats: GlitchTip is opt-in (default off) with no per-device identity — a floor, not a total. GitHub counts every asset GET (bots inflate absolutes). Store numbers are the authoritative user counts and land here once the Play/ASC APIs are wired.