v2.6.0
v2.6.0 — Where's home? A full-world front door
Compatibility: SOFT — onboarding/community-picker UI, listing-price display,
and the desktop shell only. No wire-format or trade-protocol change. Existing
accounts, listings, and home communities are untouched. The only behavioral
change is which federation a NEW default-community pick lands on (see Regional
routing); held balances and existing listings carry their own fed, so nothing
is re-routed underneath anyone.
A real welcome, before the commitment
- First launch now opens on a one-screen intro — what Chama is, the four things
you can do (Exchange · Community Bill Pay · Marketplace · Lending), and the
2-of-3 escrow promise — before asking you to choose anything. Once per device.
Pick your country off a spinning globe
- "Where's home?" replaces the four Africa-region tiles with a cinematic
spinning globe and a searchable, full-world list. Every country on Earth is
tappable and lands on its OWN flag + local currency (full ISO 3166 → ISO 4217
table, independently audited) — no more sending the rest of the world to a
generic "Global · USD".
A flag is not a Chama — honest by design
- Only places with a real, on-the-ground local community land you straight in.
Today that's Kenya (Afribit Kibera / Bitsacco), shown under "Live Chamas". Everyone
else — including the US — gets an honest soft-landing: "no local Chama here
yet; an arbiter would be a stranger, far from you." You can trade now on your
own flag + currency and switch the moment a local Chama launches, or ask the
arbiters to start one / step up as its leader. - No one — including Chama's own operator — gets to claim local arbiters without
going through the (coming) elected + bonded + rated process.
Regional routing, so every region feels the love
- A country with no local Chama now routes to a sensible regional federation
instead of all funneling onto one: Africa → Orange Club Africa, Latin America
→ LatNet, everywhere else → Bitcoin Life Federation. Deterministic and sticky
— never a boot-time shuffle, so your backing federation can't change under you.
Scan it anywhere — backup QRs went high-contrast
- Your recovery-phrase, account-key, and ecash-export QRs traded purple-on-dark
for the same crisp black-on-white as the Lightning QR — bigger, with a proper
quiet zone. If a scanner can read a payment QR, it can read your backups now.
The signer-pairing QR got the same treatment.
The price you set is the price they see
- Fiat listings now show the creator's own Chama currency to everyone. The
converted "≈ your-currency" line is gone — it implied a precision no seller
ever offered, and it changed depending on whether FX rates had loaded. The
universal cross-border number stays the sats (₿), which is what actually
settles. Display only; votes and escrow untouched.
Desktop learns to count in fiat
- The Create form's sats↔fiat toggle was dead on the desktop app — the BTC-price
and FX-rate reads never made it out of the WebView. They now run from the
native shell, allow-listed to the price sources and nothing else. Pricing in
your local currency works on desktop the way it always has on the APK.
Polish
- The blue tap-glow on buttons is gone; focus rings now show only for keyboard
navigation. - Three silent dead-ends now talk back: scanning your account-key QR at sign-in
signs you in (with a toast), an unsupported photo pick shows an inline error
you can tap away, and a failed local reset says why — inline, no alert boxes.
Under the hood
- The globe is cobe (~5KB WebGL) with a static-image fallback for weak webviews.
Generated country shells persist via the existing permissionless
addCustomCommunity path so they resolve everywhere downstream. The old
Africa-region picker (~430 lines) is gone. - Desktop market data rides the Tauri HTTP plugin — requests run Rust-side where
WebView CORS can't eat them, allow-listed to the eight price/FX hosts, and
lazy-loaded only on desktop (web and APK keep the plain fetch, zero bytes
added to their bundles). Both product calls — creator-currency display and the
desktop HTTP route — are written up in DECISIONS.md (2026-06-06).
Numbers
- 2,216 tests green; typecheck clean; full country→currency table audited; the
new white recovery QR round-trip-scans (encode → decode → exact phrase).