Bold Wallet
com.boldwallet
Zapstore _@zapstore.dev Republished from GitHub / F-Droid by the Zapstore main account.
BoldWallet is an open-source next-generation Bitcoin wallet that eliminates traditional security tradeoffs and single points of failure. It uses Threshold Signatures (2of2 or 2of3) over your mobile devices — no internet needed for setup or signing. Features: • Seedless setup using Threshold Signature Scheme (TSS) • No seed phrases, no paper backups, no hardware wallets • Up to 3 device-based key generation with 2 devices needed for signing • PSBT-Signer compatible with wallets like Sparrow, Electrum, etc. • P2P encrypted protocol between your devices, over Nostr or Local/Wifi-Hotspot • No internet required for setup or signing • Open-source, verifiable, and offline-capable • Supports Mempool.space public or self-hosted for enhanced advanced privacy
First release: Aug 1, 2025, 29 total releases.
Most recent release: May 31, 2026.
Appears in 0 app stacks.
0 sats / 0 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- May 31, 2026 4.0.0## BoldWallet v4.0.0 – DKLs23 Support & GG18 coexistence ## ✨ What's new ### DKLs23 MPC — new wallets, same Bold setup flows - **Major release** — new wallets ship on **DKLs23 (libtss)** MPC; existing **GG18 (BNB)** keyshares are detected automatically and keep working for send, PSBT sign, and LAN/Nostr co-sign **without migration**. - **Threshold setups** — **duo 2-of-2** and **trio 2-of-3** on **LAN** and **Nostr** through the familiar **Choose Your Setup → pair → keygen** path. - **Opt-out to GG18** — developer **`DKLS23_OPTED_OUT`** (long-press **Choose Your Setup** on Welcome) for legacy GG18 preparams/keygen when you need it. - **Shared wallet-setup orchestration** — `walletSetupOrchestrator` + `lanMpcSetup` / `lanMpcTransport` centralize LAN/Nostr prep, trio role assignment, relay reachability, and keyshare persistence (including **Nostr `nsec` embedded in the DKLS keyshare** so signing never passes secrets through JS).
More…
### Unified native MPC runtime (`libbbmtmobile`) - **One artifact, both backends** — single **`libbbmtmobile`** (GG18 + DKLs) replaces a second gomobile **`Tss.xcframework`** / **`tss.aar`** on device, avoiding duplicate Go runtimes and related crashes. - **Android** — loads **`libbbmtmobile.so`** + **`libdkls_jni.so`**; single Go runtime packaging; **`ensureDklsLanRuntime`** before DKLS LAN keygen where required. - **iOS** — links **`BbmtMobile/libbbmtmobile.xcframework`** with **`BbmtBridge`** / **`TssShim`**; **4.0.0** uses **`libbbmtmobile`** instead of embedding a separate TSS framework. ### Spend, send BTC & PSBT signing (DKLS + GG18) - **Backend-aware routing** — Bitcoin send and PSBT flows use the wallet’s detected backend (`tss_backend: dkls23` vs `gg18`). - **Trio spends** — **two signers** (local device + one co-signer), matching GG18 2-of-3 behavior; Nostr trio shows a **co-signer picker**; LAN picks the discovered peer with **committee-correct** party ids (not Wi‑Fi IP slot labels). - **RN signing party resolution** — `resolveDklsLanSigningPartiesFromKeyshare` and `resolveDklsNostrSigningParties` wired into LAN/Nostr spend flows; **`resolveGg18LanSigningPartiesFromKeyshare`** gives GG18 the same committee-aware LAN path. - **Send-BTC preparation** — `sendBtcPrepare` consolidates UTXO/path/change assembly; **`useSendTxPreview`** loads preview once for confirmation; **`PairingSpendStickyFooter`** pins co-sign / broadcast actions with safe-area scroll padding. - **Shared transaction UI** — `TransactionFlowDiagram`, `SigningTxRecap`, and `transactionFlowUtils` unify send-BTC and PSBT confirmation on pairing screens and **`PSBTModal`** (~2k lines of duplicated preview/flow code removed). - **Richer PSBT parsing** — native **`ParsePSBTDetails`** returns per-input addresses, output **`derivationPath`** / **`isChange`**, and **`outputDerivePaths`**; change labeling prefers BIP32 chain index from derivation. ### Co-sign reliability — attempt ids, sessions & retries - **Fresh `attempt_id` per co-sign round** — master/initiator generates a new 64-hex id each retry so identical Send BTC / PSBT intent gets isolated pre-agreement rooms on LAN and Nostr (`services/mpcAttemptId.ts`); Nostr initiator = lexicographically first signing npub; join side rejects already-seen LAN attempt ids. - **LAN payload format** — `{attemptId64}:{seed64}:{amount}:{fees}:{party}` (send) and `{attemptId64}:{seed64}:{psbtHash}:{party}` (PSBT); validators require matching attempt id and tx intent. - **Nostr session scoping** — `sessionFlag = H(txIntent, attempt_id)`, `sessionID = H(txIntent, attempt_id, fullNonce)` for send and PSBT pre-agreement/keysign. - **Same-tx co-sign retry** — immediate retry with both peers starting together no longer mis-sessions from stale pre-agreement nonces or consumed LAN payloads. - **Abort & cancel propagation** — `CancelMpcSession("")` cancels all registered sessions; Nostr DKG/keysign and MPC round loops honor **`ctx.Done()`**; **`mpcFlowAlerts`** suppresses stale error popups after abort, unfocus, or „or inactive flow; post-abort cooldown stays **15s after abort only** (not after successful co-sign). - **LAN transport integrity** — relay envelopes use SHA-256 digest (`d1:`) and, when a session key is present, **HMAC-SHA256** auth tags (`h1:`); receive path rejects mismatched envelopes. ### Keyshare integrity, launch routing & post-setup refresh - **Verified keyshare persistence** — `persistWalletKeyshare` writes the blob, **read-back verifies**, then saves metadata; **`KEYGEN_FINALIZING_STORAGE_STATUS`** while storage completes; import/restore uses the same path (not raw storage + metadata only). - **`hasUsableWalletKeyshare()`** — launch/routing guard requires the secure **`keyshare`** blob (metadata alone is not enough). - **Cold start routing** — `resolveInitialWalletRoute()` no longer opens **MainTabs** on orphan **`keyshare_meta`**; missing blob clears stale metadata and routes to **Welcome**. - **Post-setup context refresh** — `wallet:keyshare-ready` refreshes **WalletContext**, **WalletService** (`refreshAfterKeyshareReady`), and **WalletHome** when already mounted. - **Keygen success UX** — LAN/Nostr pairing only reports MPC complete (`mpcDone`) after **`persistWalletKeyshare`** succeeds. ### MPC progress & pairing UX - **Progress mapping** — `mpcProgress` / `mpcProgressUi` map native keygen/keysign steps to percent and phase labels; UTXO-build phase maps to early percent before per-UTXO signing; backend-aware prepare copy (seconds for DKLS **`helloDkg`** vs minutes for GG18 preparams). - **Transport upload subprogress** — thin bar under MPC modal status during outbound LAN HTTP posts and Nostr chunk publishes; Nostr shows determinate **`chunk/total`**, LAN indeterminate. - **Wallet-setup prep UI** — task-first **“Prepare this device”** card replaces marketing block on **`MobilesPairing.tsx`**; shared **`getWalletSetupPrepCardCopy()`** for future LAN/Nostr parity. - **Wallet Information (Devices)** — fingerprint color band, duo/trio phone icons, key-index badge, **DKLs23 (libtss)** vs **GG18 (BNB)** logos from metadata; **Created At** tap shows full localized setup time. - **Wallet biometric gate** — `walletBiometricAuth` before dev keyshare inspector, Settings backup/delete, and enabling developer mode. ### Security hardening & supply-chain pins - **Sensitive logging redaction** — Go (`sanitizeLogMessage`), iOS/Android (no **`raw_json`** keyshare logs), and native modules; inbound parse errors no longer echo raw wire payloads. - **Nostr pre-agreement** — **subscribe-only** relay reads with strict JSON validation (`attempt_id`, nonce format, timestamp freshness); **critical** vs **bulk** relay publish modes for ready/complete vs MPC chunks. - **GG18 concurrency** — **`UpdateFromBytes`** runs on a single goroutine (no concurrent party mutation). - **DKLS nonce-reuse & griefing** — libtss nonce-reuse failures map to **`ErrNonceReuseDetected`** and fail closed; bounded missing-fragment retries (`maxMissingFragmentRetries = 6`). - **Memory hygiene** — sensitive decode buffers cleared after keyshare import and GG18 message parsing. - **libtss supply chain** — pinned **`BoldBitcoinWallet/libtss`** @ **`7a712f345b710f98e7f7a26582427ad814852a63`** (tag **`boldwallet-v4.0.0-libtss-ae1f891`**) with vendored **frost** / **NDKLs23**; org mirrors **`BoldBitcoinWallet/frost`**, **`BoldBitcoinWallet/NDKLs23`**, **`BoldBitcoinWallet/tss-lib`**; **`security-release-gate.sh`** + CI sensitive-log scan. - **GG18 dependency** — upgraded to **`github.com/bnb-chain/tss-lib/v3 v3.0.0`**, resolved via **`github.com/BoldBitcoinWallet/tss-lib`** (`go.mod` replace). - **DKLS panic recover parity** — shared panic helpers across GG18/DKLS; panics surface as **`internal error (panic): …`** instead of killing the process. - **Developer keyshare inspector** — dev builds can view a redacted JSON tree (`KeyshareJsonTree`, `keyshareDevView`) for support and QA. ### Fixes & hardening (selected) - **DKLS trio LAN co-signing** — signing parties resolved from **keygen committee order**, fixing **`local party id N not in signing set`** when device party id did not match LAN IP-based **`KeyShare1,KeyShare2`** assumptions. - **GG18/DKLS LAN keygen chaincode** — LAN keygen passes only the 64-char **seed** from handshake; Go **`normalizeChainCodeHex`** fallback fixes **`encoding/hex: invalid byte: ':'`** when legacy callers pass the full payload. - **LAN duo join-first setup** — publish handshake validates encrypted **`data`** + peer pubkey; joiner retries **`fetchData`** on native **`error:`** payloads; extended join wait; **`releaseLanHandshakePort`** on setup entry and relay stop. - **LAN peer discovery** — ignores native timeout **`error:…`** payloads and non-IPv4 hostnames so failures are not treated as peers. - **Lock → Welcome regression** — unlock no longer sends users to Showcase/Welcome when a wallet keyshare is still on device; **`app:reload`** after lock re-authenticates without re-running welcome routing. - **Fee estimation & sync** — clearer fee error messages; UTXO dedup in repository layer during sync. ### Lock screen, wallet reset & API sync (from 3.1.1) - **Lock screen preferences** — toggles for the **quotes manchette** and **GitHub update checker** on unlock (`lock_screen_manchette_enabled`, `lock_screen_update_checker_enabled`); version chip stays visible; update check read-only when disabled. - **Full wallet delete** — clears **`app_config`** (except SQLite migration flag), **`network_providers`**, **`nostr_relays`**, and related native state; **Android** **`android:allowBackup="false"`**. - **Mempool traffic** — **`SyncCoordinator`** runs **price → balances → UTXOs → transactions** sequentially after HD discovery; address **`/txs`** fetches use **`with429Retry`** with **8s per-attempt** timeout. - **Keyshare labels everywhere** — **`KeyShare1`–`KeyShare3`** from lexicographically sorted **`keygen_committee_keys`** (metadata or full JSON). ### iOS toolchain & documentation - **Xcode 26.4 / Apple Clang 21** — CocoaPods **`fmt`** **`FMT_USE_CONSTEVAL`** workaround in **`Podfile` `post_install`** (see [fmtlib/fmt#4740](https://github.com/fmtlib/fmt/issues/4740)). - **Docs & scripts** — `BBMTLib/docs/DKLS_MOBILE.md`, `DKLS_SECURITY.md`, `docs/GG18_DKLS_COEXISTENCE.md`, `BBMTLib/docs/SELF_CUSTODY_OPERATIONS.md`; **`scripts-dkls/`** matrix tests and **`dkls-test-all.sh`** inclusion. ### Changelog hygiene - **`[4.0.0] - 2026-05-31`** added with the full ship list above. - **Version**: **`versionCode` 60** / **`versionName` 4.0.0** (Android & iOS build **60**). --- **_<center>💛 No servers. No seed phrases. Just sovereign sats.</center>_** --- 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP public key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) 📎 **SHA256: app-release.apk.sha256** `c136e4d99882c939654db1100b25274e5df8193709967cf287a3582a9abe3ebf` 🔑 **SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmocZeoACgkQ0mO1cs3o HIwReA//QoILLCe4b+uKdII6SaY5szWiHKupzrsqMMjley/F4+d0DDE3pGQe5bpa AfkaUbXQsztcbSfrWRNGPfE58Ps0a6myrIzkO3WZorZWPdOopSUJfawDz0BJfq+N 5RCgz/0XvIADIhPxJAWbZw+Sy3kRTqUgeLw8dr/iMe5tUO83YKi+qXnfwUEBsfmM j187G8PgXtA6mfYcGXQ1mZimvA2OvIxaySe8Tbk4SK/5JPNjBjUWPTSxi6joVLPt VVimg6gauXUU0Yu/+4RYdYluZvmYcnKxXaBzGgELBknrzLGiJp2EZINfdt/VFnlz sxGCkbihxvNYpn1FJloqw6Iumd3V+MKdifPYvicE8nwx/MNV46MMSXaTZD/1hvt+ FZMNO6PBXv7768Uaxjo5XoJf+olmGonl/sFEdN/6AZWs1xrKC45OOHLMqd5o8qA6 c4kcsdomtCaa31bSa4lSXhwSs9Q24l0fi4RokDICdRKX31YzOnAWVdt9ecRUNtrU PMY1PEpLRglQYCbkHCNt+hzYyNwTMUQfHrOSjH0wGcej5GPlIB56T0M5un98b/F7 h1WBPoF3stp+TeTp8we1Ivb62flwpxLfd7xpv5JTXWYigud0nwLvfhRqcKdelL/J EJjEcarYEUXhEnhzGYGTzOPkTZIX7P2tpe19UM1Chi7r3ORVMMY= =nJWk -----END PGP SIGNATURE----- ``` **APK signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid/Zapstore or other stores’ signed builds. Stick to one source for updates. - May 15, 2026 3.1.1## BoldWallet v3.1.1 – Keyshare clarity, lock-screen controls, safer wallet reset, calmer API sync & iOS Xcode 26 builds ## ✨ What's new ### MPC keyshare labels - UI Patches - **One naming rule everywhere** — `KeyShare1`–`KeyShare3` from **lexicographically sorted** for both **metadata** and full keyshare JSON (**local + Nostr** flows stay consistent). - **`getKeyshareDisplayLabel()`** — aligned ### Lock screen preferences - **Quotes manchette toggle** — show or hide the rolling quotes strip on unlock (`lock_screen_manchette_enabled`).
More…
- **Update checker toggle** — enable or disable the GitHub **semver** check from the lock screen (`lock_screen_update_checker_enabled`); the **version chip stays visible**; when checks are off, the control is **read-only** so expectations stay clear. - **Settings polish** — **megaphone** asset for manchette-related controls; **Legal** rows aligned with **About** where it matters for consistency. ### Full wallet delete & Android backup posture - **`clearForWalletDelete()`** — wipes **`app_config`** except the **SQLite migration** flag so old mempool URLs, theme, tabs, fee/currency prefs, Nostr relay CSV, HD scan options, loading-quotes cache, and keyshare metadata mirror do not survive a delete. - **`clearConfigInfrastructureTables()`** — clears **`network_providers`** and **`nostr_relays`** on full delete. - **Showcase / import paths** — cleanup expanded so a fresh wallet does not inherit stale surfaces. - **Android** — `android:allowBackup="false"` so **cloud backup does not restore** app-private data. ### Mempool traffic: fewer 429s, smarter retries - **`SyncCoordinator`** — after **HD discovery**, runs **price → balances → UTXOs → transactions** **in sequence** instead of parallel timers all hammering the same **`apiBase`**. - **Address `/txs` fetches** — **`WalletService.fetchTransactionsForAddresses`** wraps mempool GETs in **`with429Retry`** with an **8s per-attempt** timeout (same backoff story as the sync workers). ### iOS toolchain & packaging - **Xcode 26.4 / Apple Clang 21** — CocoaPods **`fmt` 11.0.2** `consteval` build break is worked around via **`Podfile` `post_install`** (patch `Pods/fmt/.../base.h` after **`chmod`**, since pod headers are read-only). See [fmtlib/fmt#4740](https://github.com/fmtlib/fmt/issues/4740). - **`Tss.xcframework`** — **Do Not Embed** (static slice): **link** only; removed the redundant **Embed Frameworks** copy phase. ### Changelog hygiene - **`[3.1.1] - 2026-05-13`** added with the above ship list. - **`[3.1.0] - 2026-04-03`** — release notes that were drafted under **`3.0.8`** are retitled and clarified so **`v3.1.0`** is easy to find. --- **_<center>💛 No servers. No seed phrases. Just sovereign sats.</center>_** --- 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP public key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) 📎 **SHA256: app-release.apk.sha256** `c28d14065c964838cb034d835addc976840b09b1a5e5ed52387444d9354f88da` 🔑 **SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmoDJUcACgkQ0mO1cs3o HIwjsw//XQqJjCdxOzzCXX4Wa/im1ppFH1c3hBCkifjI7nQohZOGk3yNIc+bSyUb yUOfnh2oxiBSlZgzuhYPOKsUqOSER+yWeyWVXZwi2VpA9f22mHR1WsKnzZvBjAN4 ZRcOatFA1VXus0mNbBFgdcvN+Ykwb95I6+gFg0PBqR2fVUappPCIfxrTItn124hN Z5zBFPmEQLcM4i25uN13R4HHb10MaeWClTu7OpIVELuoXhkO71jgw582ZjuPbZbB iqR7PgU8xfsLUKvYK1wZeDccNxfgJC1/LidC7fQpZEYYetaOkUwnXH5jpofu9K4H Pd2b/WEpTpiCXuGVV+3GH1WjTCLoMgkgHhuXDKRqsW60WsB96W6KGInCPsZHWCvY v6CodXLO944c0vJktUNK38kj1CSCQoUh2v0y1e7cU/1+pab5UR9VviOd7xNveSMQ SiDIFBT5zxe8S3ikzVtGpLgZA+WFzpZEgeOilL59g2bxaLOc+KuB1Dv2sN6yQeAO 8SQjumY8GAaIFWB5aFYFsUzfVDDS2yPIr2Qe40Fs6UZZtbfuE8mTh35YzknXSdBr fGK6QYzDrfzATIg4+BGusUEW020JjcHOBhpkJe8GB0n7jJugRQk1zn4tMeXxyXjR K9naBk2IQmAGP6CyThMJnHEo53GiiKQ2uaXyPJLeaKZfgTaw0WA= =O0gv -----END PGP SIGNATURE----- ``` **APK signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid/Zapstore or other stores’ signed builds. Stick to one source for updates. - Apr 5, 2026 3.1.0## BoldWallet v3.1.0 – Loading Annoucements/Quotes Manchette, Semver Update Checks & Testnet / Dev Settings Hardening ## ✨ What's new ### Loading screen & rolling quotes - **Quotes manchette** — DB-first cache plus background sync of remote `QUOTES.md` (config `loading_quotes_json`), refresh when the app returns to the foreground, and a **bottom ticker** on the unlock screen. - **Animated marquee** — horizontal scrolling quotes to keep the lock screen light; duration scales with content length; **safe-area and typography** tuned for iOS vs Android. - **Rich text in the strip** — `**bold**` segments render bold in both the animated marquee and the **reduced-motion** static path. - **Tappable links in quotes** — `__<https://…>__`, optional `__<url>(title)__`, and bare `__https://…__` open in the **system browser**; static path uses the same rules for accessibility. - **Motion & lifecycle** — respects **reduced motion**; mounts after a short delay when the app is **active** to avoid jank on cold start.
More…
### Updates & version UX - **Semver-aware comparison** — `compareSemver()` compares the installed app to the **GitHub** `BoldWallet` **latest release** tag so “newer version” detection is consistent. - **Themed toasts on the lock screen** — `LoadingScreen` mounts `Toast` with `createToastConfig(theme)` so feedback matches the rest of the app while unauthenticated. - **Manual “up to date”** — when the user checks from the version chip and the installed build already matches the latest release, a **success** toast confirms it. ### Wallet Settings & network safety - **Advanced / HD tuning** — developer-oriented controls (e.g. gap limit, scan range) and **clearer network switch confirmations**. - **Testnet guard** — when **developer mode** is off, flows avoid leaving the wallet on **testnet** unintentionally. ### Native MPC & smaller BBMTLib surface - **Single `mpcSignPSBT` on Android** — removed the duplicate `@ReactMethod` overload (explicit keyshare vs stored keyshare) that could trigger **Duplicate method name mpcSignPSBT** / JS runtime failure; **one** bridge path remains: PSBT signing with keyshare loaded from **native secure storage** (Kotlin / iOS **`.m` / Swift** aligned). - **BBMTLib** — dropped legacy single-key Bitcoin send / WIF signing helpers from `Tss` where superseded by MPC flows (**smaller native API surface**). ### Mempool settings data - **`getStoredUserMempoolApiBaseFromDb()`** — reads the **raw user-saved** REST base from `app_config` only (no public defaults), for **prefilling** settings / onboarding URL fields when nothing custom is stored. ### Safer visuals on low-end devices - **`ParticlesErrorBoundary`** — if the particle layer throws during render, the error boundary **disables** heavy animation so weaker hardware is less likely to crash on the loading screen. --- **_<center>💛 No servers. No seed phrases. Just sovereign sats.</center>_** --- 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP public key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) 📎 **SHA256: app-release.apk.sha256** `a1b569a8f8ef349a2e4a042ba20790cae3e13dde9b9a373d92e24c9d92adb0b2` 🔑 **SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmnPfIUACgkQ0mO1cs3o HIyqURAA0uLoKGdEaq920Mn1/gBwoh9jL1knMKBhvjFDSHK/SadHtdHRqZxs31Zd paTNv5am2WhnM1UCGA/GcYeTKoen9heaguoE+/KcQBGu0wtzsATidJ8eSwbENuQp T9w4g6sGqcSo/OSu0HNHowzQFFUtYiu4Au3J7I5mR/XbH/+7DfVhNFRL57btwS5m bmQXdpe6VbKproP7BG+4RppaVTGan19dlEEULjkfqiXIWf7plIv9pK96ict7/7Y2 WLzbZnurdVZXj6yK7BdYebOAVIqcln3QJ14y/dRHs3RV2Dg3cyBLr4n3QGFl+noq 1ZRhnqbnJCvgF6K69TVOLJKZ66wSIFAbu/8xb9igtumi8gPQb8iZUok3G/ze0eIL pQnV1kmaiTaIRbLhoI01O6UUpDkvpP9geCA6ocouJmJRaubvNiXdk2UOpSwfubYs CBu8gL1N2H83uJN7R2G4BIDPcvX9rAR8rIHCDwBIj74kqDrTlV7h1WW642j1BBjo AUDwlsOq2DTAPpUeb59IYJRKqIeAyJn59SbZ0dMqYBk0jgMQ7qj4gcN4c02b43Pi LrlK7bvgDQ8wIGhWCkW93s/bykSVXvgIiQe+klqkICabDRlUNW4b84/7ixrWK21J P9LuDlICNlQxra52k8/PAhFB1+FJ8u9rH2MGzqXIPz7FeNMcD20= =ccc+ -----END PGP SIGNATURE----- ``` **APK signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid/Zapstore or other stores’ signed builds. Stick to one source for updates. - Apr 2, 2026 3.0.7## BoldWallet v3.0.7 – Versions Updates Awareness & Mempool Validatio & Native Keyshare Enhancements ## ✨ What's new ### Loading screen & updates - **Release awareness**: Compares the installed app to **GitHub** `BoldWallet` **latest release** so users can see when a newer build exists. - **Version chip**: Shows **version and build** on the loading screen; background check runs quietly once the local version is known (manual flow can still drive UI). - **Safer visuals on low-end devices**: A **particle animation error boundary** turns off heavy effects if rendering fails, avoiding crashes on weaker hardware. ### Keyshare metadata for everyday wallet use
More…
- **Public fields only**: `saveKeyshareMetadata` / `getKeyshareMetadata` keep committee keys, npub, and path-related metadata in EncryptedStorage plus a DB mirror—routine flows avoid parsing the full MPC JSON. - **Wallet-wide adoption**: `WalletService`, home/contexts, and pairing use metadata wherever a full secret parse isn’t required; pairing still saves full metadata when the document is stored. ### MPC keyshare stays on the device - **No full keyshare over the JS bridge for send/sign**: `mpcSendBTCWithUTXOs`, `nostrMpcSendBTC`, and `nostrMpcSignPSBT` load the keyshare from **native secure storage** (same layout as `react-native-encrypted-storage`), not from JavaScript strings. - **New native helpers**: `getKeyshareNostrPrepJSON` for minimal Nostr prep JSON, **`mpcSignPSBT`** for server-path PSBT signing from storage, and **`aesEncryptStoredKeyshare`** to encrypt using the stored blob without exposing it in JS. - **Streamlined Nostr send**: `nostrMpcSendBTC` is **UTXO multi-path only**; `nsec` and signing material come from native storage. - **Legacy paths removed**: Old APIs that passed the full keyshare from JS (`mpcSendBTC`, `nostrMpcSendBTCWithUTXOs` with JS keyshare) are gone so the contract stays “secrets in native code.” ### Mempool API you can trust - **Validate before save**: Custom Mempool REST URLs are checked with a live **`/blocks/tip/hash`** request (with timeout) so bad URLs don’t get persisted. - **One place for “which API?”**: `resolveStoredMempoolApiBase()` plus shared normalization (including `/api`), a **canonical testnet** base, and guards so testnet isn’t accidentally pointed at **mainnet’s default** host. - **Smarter failover context**: Helpers distinguish public mainnet mirror pools from private/self-hosted endpoints so round-robin behavior stays correct. ### Cleaner transaction list code - **`transactionListUtils`**: Shared sorting and amount helpers for mempool-shaped txs, with **unit tests** in `__tests__/transactionListUtils.test.ts`. - **`KeyshareMetadata` typing**: `types/keyshare.d.ts` matches the metadata layer. ### Fixes & reliability - **iOS keyshare handling**: Staging buffers for bridge key material are **zeroed** where practical; if JSON is huge or partially unparsable, **`nsec` can still be recovered** (including regex fallback) with clearer diagnostics for Nostr prep. - **Mempool settings UX**: Saving and using custom endpoints is aligned with validation and network-specific rules end to end. - **Changelog & versioning**: App metadata bumped to **3.0.7** (Android/iOS **build 57**) and documented in `CHANGELOG.md`. --- **_<center>💛 No servers. No seed phrases. Just sovereign sats.</center>_** --- 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP public key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) 📎 **SHA256: app-release.apk.sha256** `9584959bb47c5dcb176485536db5d1cd2bd2789e41b6723a1d2fb1fdd0153d7f` 🔑 **SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmnODK4ACgkQ0mO1cs3o HIwSXw//U8w03Vc7vnJehvUWOGqJMSlp8eG9X1ZOj7X4OybVZAbEpgzBuF4H+X0j IKLoUETtIlwl99bea58z21w0dn+ZiC6Leo1BVvBYgdSwYzkgTJikY6fBRn/BwdHg Y182/NXaw98jlCX/AIc1TDeFtJcZZem+Tr+dLUG3gZHMTI8dp4J2l4o/1xCbj6zR wI8xm/R2EoIGN+2JjOqUfqUI/4wysmop0gs9shznfVNsTdz5IWPVR+iE+EJBS105 3928Mc3n0wFzxozGUgSjPFxYifP+y7bMM60no3FUlNtQms5sSrCxtC1VrzFvG+zV tQ4VY4USZRGt3OH1TxtzKEvD7eBaMNfXfK/6axzMIIU3k5wI9Oq1e11+QdAPR7m9 EAUDESNn5Q9UmDdrbo/nz5JvuuVVkTYtJSyozDtSTN+jGyLtCDFbfyphRBFV9gFZ STIeXZZC/xcsMcxQe1HsYRwV3/AVdt7oyx0TFWHK6uLekEiXiE0/ECbvIIRTjxyW GP2kAFa9oF/3N17QZi0sOqmGLXtJgXgn2UmJJOpzih43DaywXy4U2jiRG45Im44l VioIFgAct+OYUQA3gyDai8JIe4UyYNRArSn92ERrzd9i0WxdIwvFzvO4YXw77FpQ fnR+m+VWZnaR+pOnj+1yXQw6oFE0QiFajz7bhE7BAv5uOq8rQ/s= =ZMPT -----END PGP SIGNATURE----- ``` **APK signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid/Zapstore or other stores signed build. Stick to one source for updates. - Mar 31, 2026 3.0.6## BoldWallet v3.0.6 – Addresses Tab, Smart Ordering & Emulator-Friendly Builds ## ✨ What's new ### New Addresses tab - **Dedicated addresses view**: New `Addresses` tab with clear receive/change HD rows showing path, index, and address in one place. - **Per-address balances**: Each row shows BTC and fiat balance, so you can see where funds actually live at a glance. - **Direct receive flow**: Tapping a row can open the receive modal directly for that specific address. ### Address ordering modes
More…
- **Smart vs HD view**: New toggle between **AUTO (smart)** and **HD (derivation order)** address ordering, persisted under your app settings. - **AUTO mode**: Orders addresses by health tier, activity recency, derivation index, and then receive-before-change, so the “important” addresses float to the top. - **HD mode**: Shows addresses strictly in derivation order for those who prefer a deterministic, path-first view. ### Address health tiers & paging - **Health tiers**: Each address is classified as **Active**, **Used**, or **Unused** using UTXOs, balance state, and last transaction metadata. - **Better scanning**: The tiering makes it easier to spot dormant, active, and never-used addresses. - **Load-more paging**: A “Show more” control extends the HD index window in small steps, reducing noise while keeping discovery cheap. ### Smarter refresh behavior on addresses - **Per-row refresh**: Manually refreshing from the addresses header now invalidates and re-syncs balance/UTXO state **one address at a time**, following a DB-first flow. - **Fresh receive data**: Opening the receive modal from an address row first runs a targeted sync for that row, so the displayed balance and state are up to date. - **Visual polish**: Address rows are easier to scan in dark mode, and header separators make groups clearer. ### Easier Android emulator testing - **x86_64 native support**: Android builds now ship with `x86_64` along with ARM ABIs so the app runs smoothly on stock Android Studio emulators. - **Crash-free AVDs**: Avoids `libreactnative.so` not found / linker errors when launching on standard x86_64 system images. - **Lean CI builds still possible**: CI can still use ARM-only builds via `-PreactNativeArchitectures=armeabi-v7a,arm64-v8a` when emulator support isn’t needed. ### Fixes & reliability - **Address auto-sorting**: Improved auto-sorting and HD ordering so the addresses list remains stable and predictable as balances and activity change. - **Address tab rollout**: Polished the addresses screen interactions and data wiring for a smoother first release. - **Changelog & versioning**: Bumped app metadata to 3.0.6 (Android/iOS build 56) and documented the new flows. --- **_💛 No servers. No seed phrases. Just sovereign sats._** --- 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP public key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) 📎 **SHA256: app-release.apk.sha256** `e9b4a0f02b047a09bc8bacf660c3a0c77b6669011076ea177cecdcfeec75e3fb` 🔑 **SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmnLeE8ACgkQ0mO1cs3o HIwj1hAAw+IYwMmB22JqQeVciKDqvIiYcr9B00F+CUfbw0tWOHm4BtbAH23+3gx5 ii4j0WlHcaT6HD682UDytDJA6Csbo7kMMtkRu7IS4mzAZGsOtFw5wVdGtSoJPRNn 0Mvh2SCfMiKwVl6+QmfuVeS5TcgFPFbdTccsV1K0hJRMgwbQ+0AuNOo0/BqtHHfi odHvaIQpbBm4V9w/aw/Kh8ixKBb+K/d8Q4FyvlQQKyLOoyTOV+qH76V/nqoKG7bo ibMo1fI4lEnNnHIHXQQAA5Iy+LbIGgG3TZIBHfHu30Gkpx2TGlWuWQp4S2A5vngk iHNnRgmh/z9pIZdETWgIkOqCZ7BYuhPM62yAZ5F6a9v6wnjdTLy4I2l5CKYs1RXl 20sLjsrfpf0i75XM21HNjD7Z5OMZwp3OYWWFLpZc2DU1uT1f9w3BFzfZUGTfRHJH PTZId/xpWWSgX8p2HjwlnHB+sHz/wv+SM+RylMZvsmhE3/RsqzUH9W/NejzG82C/ qbTiFPUV4Q99ExfB+QZKXrVI+uX+XN+3nDgWHQNNIoNN/bB1KLselWSWyDhBMUaQ R7DwpJNysXB2vQPDp246HzZevBOLIEt/bz4eTEyZCXty+0RJDxaPzoPJjqL0B/y/ OfXIKH2fggFmPdi9xRNVLdifk6S2EqT9OdVrSHxssezO8GPeLUQ= =Km2U -----END PGP SIGNATURE----- ``` **APK signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid/Zapstore or other stores signed build. Stick to one source for updates. - Mar 15, 2026 3.0.5# BoldWallet v3.0.5 – Smarter Refresh, HD Restore & Resilience ## ✨ What's new ### Tap vs long-press refresh - **Tap** the cache indicator (or let background sync run) for a **lightweight refresh** — only the active set of addresses is synced (recent receive/change, UTXO holders, pending-tx addresses). Fast and gentle on the API. - **Long-press** the cache indicator when you need a **full rebuild**: HD discovery plus balance, transaction, and UTXO sync over all addresses. Existing data is kept; only sync is re-run. A confirmation dialog appears before starting. - Clear feedback so you know when a quick tap is enough versus when to run a full sync. ### Abort while refreshing
More…
- Tapping the cache indicator **while** a sync is in progress now offers to **abort** the current run. On confirm, all in-flight API calls stop and the “refreshing” state clears immediately. - Handy when you started a full sync by mistake or the network is slow and you want to cancel. ### Long-press uses full address list - After a long-press full sync, transaction sync now uses the **full** wallet address list instead of only the active window, so all receive and change addresses are re-fetched and the list stays complete. ### Keyshare restore: full re-indexing - After **restoring or importing a keyshare**, the app runs **full re-indexing**: HD discovery plus balance, transaction, and UTXO sync before you reach the wallet. - Restore defaults to **mainnet** and **native SegWit** only (no legacy or SegWit-compatible scan at import), so setup is faster. You can switch address type later in settings if needed. - Progress is shown step-by-step: “Syncing balances…”, “Syncing transactions…”, “Syncing UTXOs…” with address counts (e.g. 3/9). ### Round-robin and failover - When you **Skip** API selection on first run (no custom endpoint), the app uses the **public mempool host list** and **round-robins** the first request across hosts. Load is spread and a slow or failing host doesn’t block you. - When a request fails (e.g. **404** or 5xx) and multiple public hosts are in use, the client **retries on the next host** instead of failing immediately. Mirrors that don’t support every endpoint no longer break restore or sync. ### Sync error feedback - Sync failures (timeouts, API errors) show a **short message in the cache bar** and “Tap to retry”. One toast explains that cached data is being used; no modal. - Same behaviour on the home screen and UTXO screen. ### Discovery timeout - HD address discovery during keyshare restore uses a **longer timeout** (20 s) per address check, so slow or congested APIs are less likely to abort the scan. Reduces “Index discovery incomplete” on poor networks. ### Confirmations where it matters - **Long-press** full sync and **abort** (tap-while-refreshing) both show a confirmation so you don’t trigger them by accident. ### Fixes - Fixed long-press full sync clearing existing cache first; it now keeps existing DB data and only runs discovery + full sync (no wipe). - Fixed transaction sync after long-press still using the active address set; it now uses the full address list. - Fixed keyshare restore not running full re-indexing (discovery + balance/tx/UTXO sync); restore now always runs the full pipeline. - Fixed discovery and sync failing on slow APIs due to a short (5 s) timeout; discovery now uses a 20 s timeout and can override per request where needed. - Fixed 404 (or other 4xx) from one public mirror failing the whole request; when round-robin is in use, the client now retries on the next host. - Fixed round-robin being used even when a custom API was chosen; round-robin is now only used when you **Skip** (no custom base). --- **_💛 No servers. No seed phrases. Just sovereign sats._** --- 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP public key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) 📎 **SHA256: app-release.apk.sha256** `f41d8c05f2b354cb489fbdee8bb249e1d690e3b2c19ceab16e32808d8cf47543` 🔑 **SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmm2gQwACgkQ0mO1cs3o HIyp+xAAhGfrxP5ZZuGJCTaVKWruh1kdw6D7JPbPbXqTqd8EFtTFLzSlwEoe6kox j1zBTKkte/vjNtkH0ZgFwnb85EvK51misaO//a8i/zCYDN/ccDKU9Oo5yJdo1isF 9V/SSZ9hqZmLfog5NUC5C10V3a/5q/TEJRPx5xm6gGwcPlZdb7zDiC6VeQlvgho6 Q9iwQrmRK3dZOm5L//vee8pNFhAJN8PyDU/01bFWM3kz69H6QO7eL8/bOV29pZrW PF/sRs0LLIg8CqCM0oMVsgvfkDsuozw8MFj7/Oa6RmPL3aWM30tihYEWDBs1Q8YZ iz39wm651iyYZPuOfaCCCBMS7dJ8l9ZXZek77J3cZIyji6tg44oHaA3vrBGbERwZ MgxwkWaw9DJaFOq76UsILX3UKbnP7Tspix93kY2c0/yANSb/DDk/rJWWxsSW/sVC wP3NQoGgAaJ1xHZ6zN7UBYLIaOoiTDiRUFHGCZObWQJcIRuEAHvygOkBrzjCKalx 1ilLM2zbkcZQ5GI64WAbVpNN4uMk/q80IFTv5eLCWJEc9JYTGE4wgUBYz+MqXVNN pmHDfu0oJR+erSSqiVcV07PK46jn147PkQ63Qr31O0aOKmiLuNTZJb327LHA5KtC A3E4ei7G3hmQA+nX2gFzefqj1uQV0sPPeCWMj9YqEuwK8KDR8n8= =Q0VY -----END PGP SIGNATURE----- ``` **APK signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid/Zapstore or other stores signed build. Stick to one source for updates. - Mar 13, 2026 3.0.2# BoldWallet v3.0.2 – Atomic Sync, Resilience & UX Polish ## ✨ What's new ### Atomic Data Sync • Balance, UTXO, and transaction syncs are now all-or-nothing — if any address fails, no partial data is written. • Prevents inconsistent balances or missing transactions caused by intermittent API errors. • Wallet data stays consistent even when network conditions are poor. ### API Rate-Limit Resilience
More…
• The wallet now automatically retries when the API returns "too many requests" (HTTP 429). • Respects the server's Retry-After header for smarter backoff timing. • Small delays between address fetches reduce the chance of hitting rate limits in the first place. ### Live Sync Progress • The refresh indicator now shows what the wallet is doing: "Fetching balance…", "Fetching transactions…", etc. • Progress counters (e.g. 3/5) appear during multi-address sync — both on the home screen and during wallet restoration. • Clearer feedback when syncing takes longer than usual. ### Serialized API Operations • All network operations (balance, price, UTXOs, transactions) now run one at a time through a central queue. • Eliminates race conditions between concurrent refreshes. • The UI always reflects the current operation in real time. ### Improved UTXO Screen • Redesigned top summary card with glassmorphism styling matching the home screen. • Proper text colours for both light and dark mode. • Derivation path now right-aligned next to the chain badge for cleaner layout. • UTXO refresh now benefits from the same retry and throttling as the rest of the wallet. ### Better Error Feedback • Sync failures show specific messages: "Could not fetch balance", "Could not fetch UTXOs", or "Could not fetch transactions". • Each message notes that cached data is being used as a fallback. • Replaces the previous generic "Sync failed" toast. ### Loading Screen • App version and build number now displayed at the bottom of the loading screen. ### Mempool Playground • New "GET Historical Price" endpoint — query BTC price at any past timestamp by currency. • Fixed dropdown background colour in dark mode for better readability. ### Fixes • Fixed fiat currency (EUR, GBP, etc.) being silently reset to USD on every cold start. • Fixed closing the signed transaction modal leaving you stranded instead of navigating back. • Fixed transaction syncer writing partial data to the database on non-OK API responses. • Fixed duplicate fetch races when the home screen regains focus. • Fixed balance briefly showing 0 after device unlock before the database has loaded. **_💛 No servers. No seed phrases. Just sovereign sats._** ---- 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP public key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) 📎 **SHA256: app-release.apk.sha256** `f8199ff7f9e1a5c42d08d8f112a5f2e60d5ecf5df1d1fac42bce776cfc47c704` 🔑 **SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmmz0kYACgkQ0mO1cs3o HIwoHw/6A2efL7keBR3Nu9Ai6pwccnPi2JAwxPyjwRUdXus+QB0mZQrX0+hoiFqq WXwNwz3CS2ISlyqlc3+g3Q7L/N9+dKntozC8gSIzfaybPm4cbrbFt5Ot797Kh7Tr 0D1mTauhxLPmOxpXfEkD9MXKLPcsAXaFka5RBwIDF8NECttN5BkzbXDuuyPF3mY4 WZM/V03byIVhuVuqn426SOskkB9skEYfxxr7GywfO6MaHm2si89ii5NGPQYOy77z gs0F5R315jXwAwPRazgT93UT68Nyfqjcw55z3Ns6buJXJpPVQY341qGsm0hsvVtV ubwigQGieVqmgTEiy8RsyqdWHvhnLi503k15ml2/XFi1r6CG6ckoNDvqtbDKyKOT fagyXen8ZQX1FfUzI8hBsyoNQdGHi4xhPm/Clyefa89m8JiGgY1bFkJA6/f3eIBs tRjbN3VD7avqjQYIXkKwUymljwKQ4iG7s8l/y3pkg/eAOnTQU4rEkvD236L6BNsG uX9mAvOQaFzq2fRMQD3dQIVq5YbitukMjJZB3FPak06KANqIMa0bCyhPjRL3ymkG R6SVmXtVKOynJozWDDAGRZ75Z+K+NQcGRvsfh5w1DxvFc4W/HsbE7+ndNe9hSYlo EFyGGfD+rlUfxJmn1jHuomE+k1fWew0Im3qEz1SgpBiGrCfBMiw= =kBCR -----END PGP SIGNATURE----- ``` **APK signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid/Zapstore or other stores signed build. Stick to one source for updates. - Mar 10, 2026 3.0.1# BoldWallet v3.0.1 – Multi-Path HD Bitcoin Wallet ## ✨ What’s new ### Smarter HD Wallet • No address reuse for better privacy. • Wallet now tracks activity across all your addresses automatically. • Receiving addresses only advance once they are used. • Improved wallet discovery when restoring or importing.
More…
### Faster & More Reliable Wallet Data • Wallet data now uses a local database, making the app faster and more reliable. • Your balances and transactions appear instantly when you open the app, even offline. • New transactions automatically sync in the background. ### Safer Network Switching & Reindexing • Switching networks or address types now performs a full and safe re-sync. • Clear progress indicators show what the wallet is doing during recovery or reindexing. • Prevents partial or incorrect balances. ### Better Transaction History • Transaction history now combines activity from all wallet addresses. • New labels make it easier to understand wallet activity: • Consolidation • Rebalancing • Transaction details now show a clear inputs → outputs flow. ### Improved Send Experience • More accurate fee estimation before sending. • Wallet automatically uses the best coins across all addresses. • Better handling of network conditions when preparing transactions. ### Improved Co-Signing & Device Pairing • Clear transaction preview when signing with another device. • Both devices now verify the same transaction inputs and change address. • More reliable signing sessions when using QR codes or Nostr relays. ### Cleaner Wallet Imports • Importing a wallet now starts from a clean state, avoiding leftover data. • Ensures balances and transaction history rebuild correctly. ### Performance & Stability Improvements • More reliable transaction syncing. • Improved handling of temporary network errors. • More consistent balances and transaction lists across the app. ### Fixes • Fixed balance showing 0 after refresh or unlock. • Fixed transaction list sometimes showing fewer items than expected. • Fixed UTXO list inconsistencies. • Fixed historical fiat values sometimes missing. • Improved wallet restoration reliability. **_💛 No servers. No seed phrases. Just sovereign sats._** ---- 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP public key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) 📎 **SHA256: app-release.apk.sha256** `70d5f8ba5bda973e30193cf6dbcff54f69bd0c77d1b94a5bf8aac9c06f2fac7a` 🔑 **SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmmu0c4ACgkQ0mO1cs3o HIz1rA/+Ia+xHcEsvf/TuZzAOscw74iVuS2k3wPceqtAAWBvE/LRKLHhIgg1nl1f OcVG4EUb7yUvNeW/ZFGuIeG0nxOQkWEFoBOSSpMnTJ8qPpHRoih3zIuHOXVaLD2h QqWvPk2+h38vGsjhptq66yEurAh3NDJhOW7I26wBHvKhWJYDQR3A11b15H3Akpaj avHkd+DOjXF80iuDjVqps9EppqJ3FAVWYQd5fF6NOUUU7uOa71xhDUbndzPc2kCZ UJcZ2tUS+BqQJ2kiA4pvef9tNmOmn4bNno5nzrRJGLFjb67hdV4F/70tOr0o+SKY S+80QKn9F/U+X9/GlB8bvJ5ZP7edCQopCN3JVEyOJnDI/60GfFA0MmfS+o8hnxwr rIz/lV4RDf5Whi9F+hw45PMY+B8CFPU9s0NTY09CP9hsUnhbGxhfC1BbWuYnZw2Y BY3NjGWKikxG2PhKWk+upsgSP7s8aXpm5f/PWp+Nt65XM77Y7eCK5xXt5KVq6n1x T82FaiTXqwVWTdt1CcRmLsUSMTq0HGRgpGsGRCGAHLoyP0t2KT4dI4L1QZw0ZwVI iVdav0vEDGnQpz18wgSI4ww0/lDQBvPW7kCHD3TQ2FYaznvM6OfyED0SByaSbIYI OnzMmPxLiVsBzVUJj+I8bx7w15fiaO4VSSEsIrCccUSA9DeX/Jc= =wlqs -----END PGP SIGNATURE----- ``` **APK signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid/Zapstore or other stores signed build. Stick to one source for updates. - Feb 17, 2026 2.2.0### BoldWallet v2.2.0 – FIPS 140-3 Compliance, Extension Pairing, Build Hardening ✨ **What's changed** ### Security: FIPS 140-3 Compliance * **FIPS-Approved Build**: Optional FIPS-approved build for BBMTLib and Docker — ensures high-assurance cryptographic operations * **Enhanced Randomness**: Uses SP 800-90A DRBG with mixed entropy for critical security operations * **Platform Support**: Native FIPS-aware builds supported for Android, Docker (Red Hat UBI9-based), and CI pipelines ### Bold Web Extension
More…
* **Dedicated Pairing Modal**: Replaced standard alerts with a new **Extension Pairing** modal — features step-by-step setup guidance, Confirm/Cancel actions, and theme-aware typography * **Extension Store Link**: Direct link to install the Bold Wallet Chrome Extension added to the "Bold Web • Extension" section in the Device tab ### BBMTLib: Build Hardening * **Reliable Builds**: Hardened `build.sh` with environment validation and stricter failure handling (`set -euo pipefail`) * **Dependency Management**: Integrated `go mod tidy` and gomobile/gobind validation for clean and verifiable native binaries * **CI Integration**: Automated pipeline checks for FIPS capability and module cleanliness ### Fixes and Cleanup * **UI Polish**: Resolved inline-style warnings in `ExtensionPairingModal` and `KeyshareInfoContent` for better performance and maintainability * **Code Optimization**: Removed unused imports across several key screens including `MobilesPairing`, `SignedPSBTModal`, and `UserPreferenceScreen` ### Technical * **Version**: 2.2.0 (package.json); iOS MARKETING_VERSION 2.2.0; Android versionName 2.2.0 * **Build**: Updated iOS Xcode project and Android build configuration to support FIPS-aware native builds; Go 1.24+ required for FIPS mode **💛 _No servers. No seed phrases. Just sovereign sats._** — 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP public key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) 📎 **SHA256: app-release.apk.sha256** `cf0bdcff6376bc3425a66d4d6334665b22bbf620a1cad2d950614cae3049f897` 🔑 **SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmmUEL8ACgkQ0mO1cs3o HIwXUw/+IaTeidqL0mWRXzzKTlMElupcfVaY4h93CdPvzr3pskrWxZBzhchYha/S xZI9m77Mp/j5yqbcm7NO1YS2AiuAEw1+YZ7OyWAi4XNlNm5BTweAgyA94DK24GrW v2YwTwF8HVlb0PBunhEnfGxf0mMn5OHhFdXvG1OxS6kOQcWHj/5ytDgnVTM9NBj+ H/z4hEO13G/0HrGlzVF36LL21PEKlI6BxxmkR2BQqub1OjhTKNAT7adZ+LxRrMa4 JOvF26o9w9XkjGveo7ZBFGcSWW0LULE3UetoYAkoqorhSsRpX3OC01fPU0/Noqc5 O/s7AcabyxrB8qQmoWL9k3B2Yxj6MDrpgbv90bjW+j5iMa3Q60qgbOU62gSrNKv3 m3zY4rmz0+XcaBOBp3n4FhwuwOFxgRDWVzn8BDZGtfhXszH6gy/DNSQoGwcJd3hy LwV/auz1ECSKzdeaAiYnk52dQwrc+RF0Xp2pDuN2I5nor7K7txO0t+U2tsj+DQH9 sR8ygQ3KVlvP2ZbnuJP61aBmbsR9Tl1wc17OMMXFMOYnOITiut5yU1/JnWSR4FA9 gzHiWMDlt2pHH3wldrgVkOVMOfgN04cgC3onDdmETUzL+OI5y9hUZeLCE1F4Iji6 CA/CujcTYwSh0KasAaq5/feSdv7q/B/yDlHEnySmDdC3HM6evpo= =JPtI -----END PGP SIGNATURE----- ``` **APK signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid/Zapstore or other stores signed build. Stick to one source for updates. - ### BoldWallet v2.1.15 – Send modal sats mode, fee UX, address validation, Extensions Binding Prep ✨ **What's changed** ### Bold Web Extension * **Wallet Extension Preparation**: anticipated private **"watch-only"** pairing/binding for Bold Web Extension ### Send Bitcoin: amount and unit * **Sats-aware input**: SendBitcoinModal respects the BTC/Sats toggle from Wallet Home — label/placeholder (“Amount in sats” vs “Amount in BTC”), numeric keyboard selection, and Max behavior aligned with the chosen unit * **Internal consistency**: All internal math remains in BTC; sending uses sats when in sats mode — correct amounts every time
More…
### Send Bitcoin: fee estimation * **Unified error handling**: “Fee Estimation Error” dialog with Retry/Cancel — no scattered alerts * **No overlapping requests**: Max is disabled while fee estimation is in progress — avoids race conditions * **Clean teardown**: No alerts or side effects after the modal is closed or unmounted — predictable behavior ### Send Bitcoin: address validation * **Network-aware validation**: Uses `validateBitcoinAddressEnhanced` so fee estimation, Max, QR imports, and send confirmation all require an address valid for the currently selected network * **Inline errors**: Invalid-address messaging shown inline — clear feedback before sending ### QR and copy behavior * **Static pairing QR**: The “Scan on another device to auto fill” QR in TransportModeSelector is non-copiable via `copyDisabled` — other QR usages remain copiable by default ### Fixes * **Device QR toasts**: Resolved Toast host conflict so QR-related toasts on the Devices screen appear above their modals — no longer hidden underneath overlays ### Technical * **Version**: 2.1.15 (package.json); iOS MARKETING_VERSION 2.1.15; Android versionName 2.1.15 * **Build**: Updated iOS Xcode project and Android build as applicable **💛 _No servers. No seed phrases. Just sovereign sats._** — 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP public key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) 📎 **SHA256: app-release.apk.sha256** `31f2aab454d152e28464f3e4b72b81d2b3cff5a363587398515a211073b83559` 🔑 **SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmmIQ3wACgkQ0mO1cs3o HIyDKw/6As/XxHKmHyXFS6isgT+uVRtcXWAM1ddA1OvN8AiCKwKGoFnE1DWAR8D8 Of9WiXvjlU9fILfd8OlgRBl2qliyQySAXExAIP8BI026geMRy0uiveq56ZyPrkPe bE+brMsXyN2YAkTubiK0R11DPCK2h4q0UM0DcmrX26/sJFA+sd8XTdJ+5piGjFOO jIDJvuzzHavj4e6jh6V4f6jjo6TbIett+69oE5D0y5Zdq49ofX4oVbo8RIaMSXkW p2Ce9YOFm6kxLUgYLVCDquggmfBEmPr+gmhj67ivx5NwfpoxmldD8jOOgjcE9DSu Rs7LSsh807ePqT9AEHmryiPBZ3MXrcaX3MWghP6+wynI6l8qKLXJeoN9RqB1L10t Ru2FXX0/hdiZ4W90It8zd8vdczCk2e1ZlmlRnWDpUZb7D+fCoFWv0HP7QwQGVvWG KoYcI1z/k4RpX137NTTSrpvtGGb5Dr+D0W2IfMVfZTq26xYiIby0GoLUBpwN6X2P aWY/pbzRHV4fQ+gOGPSIFXTvTfR8XTVlDeAvSswlU1d9y8Y+ifrCjiX5PPEHJ3u3 p7apxlWpnSoUIaxh1oAceFe74gbrRl54N7CvwN4mQVUMzM7/alkADpoAUYOfN+Lz 0+AaBc6WOQmWO2161757eFJXC07phtVXN2yM8CEklYh/wg7NHvk= =cJ/U -----END PGP SIGNATURE----- ``` **APK signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid/Zapstore or other stores signed build. Stick to one source for updates. - ### BoldWallet v2.1.15 – Send modal sats mode, fee UX, address validation, Extensions Binding Prep ✨ **What's changed** ### Bold Web Extension * **Wallet Extension Preparation**: anticipated private **"watch-only"** pairing/binding for Bold Web Extension ### Send Bitcoin: amount and unit * **Sats-aware input**: SendBitcoinModal respects the BTC/Sats toggle from Wallet Home — label/placeholder (“Amount in sats” vs “Amount in BTC”), numeric keyboard selection, and Max behavior aligned with the chosen unit * **Internal consistency**: All internal math remains in BTC; sending uses sats when in sats mode — correct amounts every time
More…
### Send Bitcoin: fee estimation * **Unified error handling**: “Fee Estimation Error” dialog with Retry/Cancel — no scattered alerts * **No overlapping requests**: Max is disabled while fee estimation is in progress — avoids race conditions * **Clean teardown**: No alerts or side effects after the modal is closed or unmounted — predictable behavior ### Send Bitcoin: address validation * **Network-aware validation**: Uses `validateBitcoinAddressEnhanced` so fee estimation, Max, QR imports, and send confirmation all require an address valid for the currently selected network * **Inline errors**: Invalid-address messaging shown inline — clear feedback before sending ### QR and copy behavior * **Static pairing QR**: The “Scan on another device to auto fill” QR in TransportModeSelector is non-copiable via `copyDisabled` — other QR usages remain copiable by default ### Fixes * **Device QR toasts**: Resolved Toast host conflict so QR-related toasts on the Devices screen appear above their modals — no longer hidden underneath overlays ### Technical * **Version**: 2.1.15 (package.json); iOS MARKETING_VERSION 2.1.15; Android versionName 2.1.15 * **Build**: Updated iOS Xcode project and Android build as applicable **💛 _No servers. No seed phrases. Just sovereign sats._** — 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP public key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) 📎 **SHA256: app-release.apk.sha256** `31f2aab454d152e28464f3e4b72b81d2b3cff5a363587398515a211073b83559` 🔑 **SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmmIQ3wACgkQ0mO1cs3o HIyDKw/6As/XxHKmHyXFS6isgT+uVRtcXWAM1ddA1OvN8AiCKwKGoFnE1DWAR8D8 Of9WiXvjlU9fILfd8OlgRBl2qliyQySAXExAIP8BI026geMRy0uiveq56ZyPrkPe bE+brMsXyN2YAkTubiK0R11DPCK2h4q0UM0DcmrX26/sJFA+sd8XTdJ+5piGjFOO jIDJvuzzHavj4e6jh6V4f6jjo6TbIett+69oE5D0y5Zdq49ofX4oVbo8RIaMSXkW p2Ce9YOFm6kxLUgYLVCDquggmfBEmPr+gmhj67ivx5NwfpoxmldD8jOOgjcE9DSu Rs7LSsh807ePqT9AEHmryiPBZ3MXrcaX3MWghP6+wynI6l8qKLXJeoN9RqB1L10t Ru2FXX0/hdiZ4W90It8zd8vdczCk2e1ZlmlRnWDpUZb7D+fCoFWv0HP7QwQGVvWG KoYcI1z/k4RpX137NTTSrpvtGGb5Dr+D0W2IfMVfZTq26xYiIby0GoLUBpwN6X2P aWY/pbzRHV4fQ+gOGPSIFXTvTfR8XTVlDeAvSswlU1d9y8Y+ifrCjiX5PPEHJ3u3 p7apxlWpnSoUIaxh1oAceFe74gbrRl54N7CvwN4mQVUMzM7/alkADpoAUYOfN+Lz 0+AaBc6WOQmWO2161757eFJXC07phtVXN2yM8CEklYh/wg7NHvk= =cJ/U -----END PGP SIGNATURE----- ``` **APK signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid/Zapstore or other stores signed build. Stick to one source for updates. - ### BoldWallet v2.1.14 – Settings sections, tab toggles, lock persistence ✨ **What's changed** ### Settings sections and subsections * **App**: Theme, Balance Display, Haptics, Storage, App Icon (Android) — one place for app preferences * **Wallet**: Security, Address Type (with address-type icon), Network providers, Nostr Relays — wallet and network in one section * **Advanced**: Wallet tab, UTXOs tab, PSBT, Mempool Playground, Dev Debug, Font Testing — power-user options grouped * **Info**: Legal and About under a single “Info” header — simpler structure
More…
### Tab visibility toggles (Advanced) * **Show/hide tabs**: Wallet (default on), PSBT, UTXOs, Mempool Playground (default off) — less clutter * **Persisted preferences**: Toggles saved via LocalCache — choices kept across restarts * **Active tab on load**: Priority Wallet → PSBT → Device (only if toggled on) — predictable startup ### Lock and reopen * **UserProvider wraps lock + main**: Tab preferences and last-active tab persist across lock/unlock — e.g. reopening stays on PSBT when PSBT was active * **No lost context**: Last tab and which tabs are visible are restored after unlock — consistent experience ### Tab bar and icons * **Address Type**: Uses `address-type-icon.png` in Settings — clearer icon * **UTXOs tab**: Uses `utxo-icon.png` in the tab bar (replacing out-icon) — distinct tab identity * **Tab bar labels**: Auto-shrink to fit (bounded width, `adjustsFontSizeToFit` on iOS); smaller base font on Android — no overflow * **Icon inset**: Slight inset so UTXO and other icons are not trimmed at the top — cleaner look ### Android pairing * **Hardware back during discovery**: Android hardware back button is blocked while peer discovery is active in MobilesPairing — avoids accidental exit ### Technical * **UserContext**: `showWalletTab`, `showPsbtTab`, `showMempoolPlayground`, `showUtxosTab`; load/save via LocalCache * **App.tsx**: Tab.Screen for Wallet/PSBT conditional on toggles; `initialRouteName` = first available of Wallet, PSBT, Device; UserProvider wraps lock + main content * **WalletSettings**: `SettingsSectionGroup` for section headers; Advanced and Info sections as above * **MempoolPlayground**: Header price button no longer navigates to Settings * **Version**: 2.1.14 (package.json); iOS MARKETING_VERSION 2.1.14; Android versionName 2.1.14 * **Build**: Updated iOS Xcode project and Android build as applicable **💛 _No servers. No seed phrases. Just sovereign sats._** — 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP public key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) 📎 **SHA256: app-release.apk.sha256** `73769ffd19e9c394157093db92dbaff78721a0f079bfa0006f8471b77662f456` 🔑 **SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmmCYp4ACgkQ0mO1cs3o HIxE9A/7Bo18GqaiAxMHX+ApzSdfTrV3DTrjub9Bn1hgCn3Rv7D3XQur7uu2aoCl F+tDUz5RAChnDTNYmGVBCZRfq03OlXFhfMFTQ2PSCWY63yA/YqOI2Kax2DyjvwnZ xZRch7j7yrBNjKm48oQ0huTnQDbupJw/7WkPNtY1D+AzTVMmYj2ISGv7qyJmMTCV omDT17nhBBeYurOEhLcmMEhbmI0ntc96X9r3N5YQPqJ3oV29V+921rnYdBWdv18A 0Awq9SrkEpr8B9cIIMQJIr0IlW8fu8m3Tu/V1ppKmOvEzV70/N2vZpUZOhpUlNzu 29PrdFDy9+22ycwLi+vhJZteUXgAk8CFY2jxLVKytqly9KjxTcyjUUq1Ypx+0t2l fE+7Bv5yroTSPJ+pQIcDwCod/8emkFmT+ikx8G1Q7pdz9OpsAuNdb3h/sy8s045l 4nRX4xV7ndG6xEqsGIUFsGHJ0r64CkKEzqxoyhqoPUTfb8rWQAKx+tqvPNieKE13 7sd7hW4h8Lxcruvdt2ImgEU/z+PWdlewKpDhmiEo+HyruEqSYDiutxtfhtcitppX LqTRhaqAIjNdxwAPX66QPUq+H4+XMIces7j7A9+N2N4M7v/82+NUmS0uhIC7iNqR KggLb7y2triIXjIJDCPOPr1sZq2LOMdaPQfVr0dTYip7P4vaims= =ylNE -----END PGP SIGNATURE----- ``` **APK signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid/Zapstore or other stores signed build. Stick to one source for updates. - ### 🚀 BoldWallet v2.1.13 – Bottom Tabs, Device Screen, Toast UX, Keyshare Refactor **✨ What's Changed** ### 📱 Bottom Tab Navigation * **Four Main Tabs**: Device, Wallet, PSBT, and Settings — direct access without drilling through the stack * **Custom Tab Bar**: Theme-aware icons (Device, Wallet, Cosign, Settings) for clear navigation — polished interface * **Floating Lock FAB**: Quick lock from bottom-right with platform-specific styling — fast security * **Stack + Tabs**: Main content lives in tabs; Welcome, Pairing, and User Preferences stay in stack — logical flow * **Per-Tab Headers**: Each tab keeps its own header for context — consistent experience
More…
### 📲 Device Tab & DeviceScreen * **Dedicated Device Tab**: First-class destination for keyshare info, backup, and device-related actions — easier access * **DeviceScreen**: New screen for device and keyshare management — no more deep navigation from Wallet/Settings * **Streamlined Flow**: Replaces deep navigation for device operations — intuitive management ### 🍞 Toast Notifications * **App-Wide Feedback**: Integrated `react-native-toast-message` with theme-aware config — consistent feedback * **Copy Confirmations**: Toast for copy-to-clipboard actions — clear confirmation * **Success & Error**: Toast for success/error and debug badges — immediate feedback * **Root Integration**: Toast wrapper in App root with correct z-index and pointer-events — reliable display ### 📍 Address Type Modal * **Dedicated Modal**: `AddressTypeModal` for choosing or viewing address type — clearer choices * **Address Types**: Legacy, SegWit Native, SegWit Compatible — full control * **Network-Driven Updates**: Integrates with `updateAddressTypeModal` after network change — accurate display * **WalletHome Integration**: Used in WalletHome and flows that depend on address type — consistent UX ### 👆 AppPressable Component * **Reusable Pressable**: New `AppPressable` with variants (default, strong, none) and optional haptic feedback — consistent touch UX * **Replaces TouchableOpacity**: Unified across modals, settings, pairing, and wallet screens — cohesive feel * **Opacity & Feedback**: Unified opacity and feedback behavior app-wide — polished interactions ### 🔑 Keyshare UI Refactor * **BackupKeyshareModal**: Dedicated modal for keyshare backup — clear backup flow * **KeyshareInfoContent**: Detailed keyshare information display — complete info * **KeyshareModal Removed**: Functionality consolidated into BackupKeyshareModal and KeyshareInfoContent — simpler codebase * **Clear Separation**: “Backup” vs “info” use cases clearly separated — better UX ### 🧭 Navigation Structure * **MainTabs in Stack**: Stack now wraps MainTabs (Device, Wallet, PSBT, Settings) — modern navigation * **Stack-Only Screens**: Welcome, Devices Pairing, Nostr Connect, User Preferences remain stack-only — clear hierarchy * **Per-Tab Headers**: Home/PSBT/Settings moved into tab navigator with per-tab headers — consistent layout ### 📡 Header & Network Provider * **Tappable Network Row**: `HeaderNetworkProvider` supports `onPress` and `onSettingsPress` — quick access * **Layout Symmetry**: Side button width standardized (`SIDE_BUTTON_WIDTH`) — balanced header * **Provider/Settings Access**: Optional callbacks for provider and settings — flexible UI ### 🎨 Theme & Controls * **Switch Colors**: Switch uses theme palette for light/dark mode — consistent theming * **Warning Colors**: Consolidated in theme; removed hardcoded values and `warningBg` — maintainable styles * **WalletSettings Reactivity**: Styles reactive to theme changes (fixes Android theme switch) — correct display ### 🛠️ Debug Logging * **Session-Based Debug**: When enabling debug, original console methods restored before use — safe logging * **Exported API**: `setDebugLoggingEnabled` / `isDebugLoggingEnabled` for WalletSettings — controllable from UI * **No Dropped Messages**: “Logging enabled” message no longer dropped when console was previously disabled — reliable feedback ### 🐛 Fixes * **Network Routing for QR**: Correct routing when opening QR scanner from different contexts (Send vs Receive) — reliable scanning * **Android Exit Button**: Styling and behavior of exit/back button in pairing/QR screens corrected — consistent buttons * **WalletSettings Theme**: Force re-render on Android when theme changes so styles update immediately — no stale UI * **TSS / Nostr**: LocalStateNostr type restored; mutex deadlock fixes in Nostr/TSS layer — stable co-signing * **Docs**: Removed obsolete `docs/BITCOIN_DISPLAY_PLAN.md` — cleaner repo ### Technical * **Navigation**: `@react-navigation/bottom-tabs`; MainTabs with tab bar, lock FAB, Toast wrapper in App.tsx * **New Components**: DeviceScreen, AddressTypeModal, AppPressable; BackupKeyshareModal + KeyshareInfoContent * **Toast**: `react-native-toast-message`; theme-aware `utils/toastConfig.tsx` * **Debug**: Debug logging tied to `debugLoggingEnabledRef` and native log listeners * **BBMTLib**: btc.go, hooks.go, interfaces.go, mpc.go, mpc_nostr.go, relay.go, logs.go updates; localstate_nostr cleanup * **Version**: 2.1.13 (package.json); iOS MARKETING_VERSION 2.1.13, CURRENT_PROJECT_VERSION 46 * **KeyshareModal**: Removed; functionality in BackupKeyshareModal and KeyshareInfoContent * **Build**: Updated iOS Xcode project and Android build as applicable **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `b69e0cb745b2b98e42850dc4b1c0b6ccd729da65ab4e5c84fc345037c6194597` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmmBtYkACgkQ0mO1cs3o HIxRURAAuKNRwb0KjxWUqnjDhBRf6QArn8oMD9+XZZbbzKmXPVnMECXwsel73R0R K+39xYDvHc5WRrsjRDWoI+i52+3iWfnr1J7czGV/0lslMRIMGXEJply1uDBIFoVY gumII3ViswH6YBhmYTEhTSDUeEfw4p7L4DwRQQuYP/hQ67RZMX1NaP1uoW9lBK8d YY8j50+ZWZ2jeYiFCOQiOJkIaPF3fXXXm4Zf9YC2ejiNyTzztgJ0dINIbiqud/Qo MY4gOBvzshuBI9Q5oVD/U6HHEeOYkE3wBu5fdaInL4ZtJWI+LPAtAIBPNaXAVM0M gGgM+1R7E0cr+V68dljlzcrefIpKw8BEy940yRKBberD2EHqYqua5Nlf6ESjBpx1 uaI22p4rg0t83n30tEn2T7hKVOkBGbG3Vxcuw8Gp+jTaUwYnrPcuF6F2k7wfwlFy RndhAUmzDsAo2THEWncAR7/E6WsE9yfmgLFx5bI8xgWIi9FM/mT/hwJ5ob1HkOrp d9t+tUAmMFMhWIP1mPgWvy4p+MMwjfkkS+HpV4BQnDD5l81zn1STnnC5xq0Vbmu8 Ch2Dt/vHZnJRePFvFJnGpzZZIg06BSH6NJfzsiBuuFPi1wA8OQFRArPf6SH2tpcV w4nqWc17/CooWdobff1a+2fyY6uqE7l97jQZf3Ueq/QGR79P6so= =yu3/ -----END PGP SIGNATURE----- ``` ⚠️ **APK Signature** This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.1.12 – Consolidated Fonts, UIUX Enhancements, Optimized Stability **✨ What's Changed** ### 🔤 Custom Font System * **Professional Typography**: Migrated to custom Inter and JetBrains Mono fonts for enhanced readability — polished interface * **Inter Font Family**: UI text now uses Inter (Regular, Medium, SemiBold) for improved clarity — better readability * **JetBrains Mono**: Technical content like Bitcoin addresses uses JetBrains Mono (Regular, Medium, Bold) — clearer address display * **Cross-Platform Consistency**: Enhanced font rendering consistency across iOS and Android platforms — unified experience * **Font System Architecture**: New `theme/fonts.ts` module with comprehensive font utilities and mappings — maintainable typography
More…
* **Proper Font Selection**: Font weight to font family mapping ensures correct font file selection — accurate typography * **Monospace Rendering**: Enhanced monospace font rendering for Bitcoin addresses and technical content — better code readability * **Theme Integration**: Font styles integrated with theme system for consistent theming — cohesive design ### 🔒 Mempool Privacy Configuration * **Custom API Endpoint**: Configure custom mempool.space API endpoint during wallet setup — enhanced privacy * **Privacy-Focused Feature**: Reduce third-party tracking of Bitcoin addresses with self-hosted mempool servers — better privacy * **API Endpoint Validation**: Automatic URL normalization and validation with timeout handling — reliable configuration * **Flexible Setup**: Option to skip configuration and use default public mempool servers — user choice * **Settings Integration**: Change API endpoint after wallet creation from settings — flexible management * **Educational Information**: Privacy benefits information about self-hosted mempool servers — informed decisions * **User Preference Screen**: Clean, professional onboarding screen for privacy configuration — intuitive setup ### 🎨 Comprehensive Icon Asset Library * **50+ New Icons**: Added comprehensive icon assets for improved UI consistency — polished interface * **Settings & Actions**: Icons for settings, actions, network status, and wallet features — complete iconography * **Theme-Aware Support**: Inverted icon variants for dark mode compatibility — consistent theming * **Organized Structure**: Better asset management with organized directory structure — maintainable assets * **Consistent Styling**: Unified icon styling across all screens and components — cohesive design ### 💰 Wallet Balance Formatting Option * **Formatting Toggle**: Toggle between raw numbers and formatted display with thousand separators — better readability * **Large Amount Display**: Enhanced readability for large Bitcoin amounts and satoshi values — clearer information * **Persistent Preference**: Formatting preference persists across app sessions — consistent experience * **Decimal Precision**: Enhanced visual clarity for decimal precision verification — accurate display ### 🛠️ Dev Debug Mode (Advanced) * **Hidden Developer Tools**: Developer debug section accessible via build number (7 clicks on Android) — advanced features * **Debug Logging Toggle**: Android-only debug logging for logcat visibility — development support * **Session-Only Logging**: Debug logging resets on app restart for security — safe debugging * **Visual Indicators**: Progress indicator with badge and toast notifications — clear feedback * **Enhanced UI**: Card-based layout with status indicators and improved styling — professional tools ### 📝 Typography System Refactoring * **Complete Font Overhaul**: Migrated from system fonts to custom Inter and JetBrains Mono fonts — modern typography * **Component Updates**: All components updated to use new font families — consistent typography * **Screen Refactoring**: Improved code organization and font integration across all screens — maintainable code * **Font Normalizations**: Enhanced cross-platform font consistency for iOS and Android — unified experience * **Asset Management**: Font assets properly linked via manifest files for both platforms — reliable loading ### 🔄 Better Network Handling * **Reduced Error Alerts**: Fewer annoying UI error alerts for network issues — better UX * **Background Retry Logic**: API retry logic with exponential backoff for reliability — resilient networking * **Graceful Degradation**: Better error recovery and user feedback when network is unavailable — smooth experience * **Improved Timeouts**: Enhanced timeout handling and connection management — reliable connections ### ⚡ Performance Optimizations * **React Native Refactoring**: Code refactoring for better maintainability and performance — optimized codebase * **Reduced Re-renders**: Improved state management to reduce unnecessary re-renders — faster UI * **Memory Management**: Better memory management and resource cleanup — efficient resource usage * **Asset Loading**: Optimized asset loading and caching for faster startup — quick launch * **Nostr/TSS Enhancements**: Enhanced Nostr transport layer and TSS library performance — faster operations ### 🔧 Nostr Pairing UI Flow Simplification * **Streamlined Experience**: Simplified pairing flow with clearer step indicators — easier pairing * **Reduced Complexity**: Reduced UI complexity and improved user guidance — intuitive flow * **Better Error Messaging**: Enhanced error messaging and recovery paths — helpful feedback * **Visual Feedback**: Improved visual feedback during pairing process — clear status ### 📋 Enhanced Device Keyshare Modal * **Better Organization**: Enhanced wallet information display with improved organization — clearer information * **Feature Indicators**: Clearer capabilities and feature indicators — informative display * **Web Extension Info**: Bold Web Extension connector information — complete details * **Watch Wallet Export**: Output descriptor support for watch wallet export — flexible export * **Visual Hierarchy**: Better visual hierarchy and information architecture — polished modal ### 🐛 Co-Signing Timeout Fix * **Session Validation**: Added validation to ensure all npubs are fully converted before enabling co-signing — reliable pairing * **Session ID Matching**: Prevents session ID mismatch between devices during pre-agreement phase — consistent sessions * **Button State**: Button properly disabled until all device npubs are loaded and converted — clear feedback * **Cross-Platform Fix**: Fixes timeout issues when Android and iOS devices have different session IDs — reliable co-signing ### 🎯 Final Step UI Improvements * **Cleaner Layout**: Removed card container wrapper for cleaner layout — simplified design * **Better Organization**: Moved "All devices ready" checkbox and "Start Key Generation" button to appropriate sections — logical flow * **Improved Spacing**: Enhanced spacing and visual hierarchy in Final Step section — polished UI * **Participant Display**: Better participant device information display — clearer information * **Typography Updates**: Updated typography for participant titles — consistent styling ### Technical * Enhanced **Typography System** with custom Inter and JetBrains Mono fonts for professional appearance * Added **Mempool Privacy Configuration** with custom API endpoint support for enhanced privacy * Expanded **Icon Asset Library** with 50+ new icons for improved UI consistency * Added **Balance Formatting Option** for better readability of large amounts * Implemented **Dev Debug Mode** with hidden developer tools for advanced debugging * Refactored **Font System** with new `theme/fonts.ts` module and comprehensive font utilities * Updated **All Components** to use new font families for consistent typography * Improved **Network Handling** with background retry logic and graceful degradation * Enhanced **Performance** with code refactoring, reduced re-renders, and optimized asset loading * Streamlined **Nostr Pairing UI** with simplified flow and better error messaging * Fixed **Co-Signing Timeout** issues with proper session validation and npub conversion * Updated **144+ files** with 6,026+ insertions and 3,817+ deletions * Enhanced **Components**: TransactionList, TransactionDetailsModal, Header, QRScanner, TransportModeSelector, CacheIndicator, CurrencySelector * Updated **Screens**: MobileNostrPairing, MobilesPairing, PSBTModal, PSBTScreen, SendBitcoinModal, ReceiveModal, SignedPSBTModal, WalletHome, WalletSettings, ShowcaseScreen, LoadingScreen * Improved **Font Consistency** across iOS and Android platforms * Enhanced **Nostr/TSS Performance** with optimized transport layer and library stability * Updated **Native Libraries**: TSS framework binaries for iOS and Android **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `b9edc5671f03f1c8a1635b2e619b63cbcc00abec9d9b03d6b3854aeaef3c30db` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAml34FAACgkQ0mO1cs3o HIydJA/8CRkPAOQP13Gv71SPI24ztRdzwd3vEUfWjAFIdd77RVTikKKCJwsT81Sk JYsprYrOuqevufIle1u+X3GmSJvpnWl2P+bmiBs+NkNcECZr8O+oFhkOFVzuhq7P uVLBClqadrPBWfSnurem72isw73pX4bL3kIU6dKQVVxlbML9hZBQNV1uPikuSawa 0nN3chQ/IsNhRZrCBe5P7xHGT0BTM1fZlVAFtzB26j1iKwEFbHuFitZku4JiflJC GJqVZZJVeTvpkcCof304zpzay1NG3C/g7nCQzL0+YKP9fKdBqYOaB+IPrG2WVh8h ltD3u+0JAOfBqKhGa5psFZ6c1rauCKdi117UYbmXXW2nCqvknDvZOzHe/3rTNS7u 4530D89UXUT5Q1XDwkZfJf7Ajsnn4NJYVhttIPG3YplM3o5Vf7jmzPTOsVWOs0ft QkhIMg3DfJg7DjDlyKSAHo4cYBMMj2WKjafPEcPfXpu09GpuFjShHogfMIGdXspV qg1t0qP7qw2YMt2Jslc2dpQ3rScKK25nutHcG+EBcFhP64CrJ4XlkU+NDGEhqDQf KADZv4UgF6/vBDoCUNRoRBsIjcJwBxKM+CpKz2SCfxkr4giV7EBHPL+e3ZuaiOvR YgRH5y7lxqiCJtadya8QlUAPgMJdruElyYD2Ypy6Ns0Pl3nsQOE= =swD+ -----END PGP SIGNATURE----- ``` ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.1.11 – Transaction UI Improvements & Dark Mode Enhancements **✨ What's Changed** ### 📝 Transaction List Typography Improvements * **Enhanced Readability**: Status text increased from 13px to 16px (lg) for improved readability — clearer transaction status * **Better Accessibility**: Fiat amount increased from 12px to 13px (base) for better accessibility — easier to read amounts * **Consistent Sizing**: Address labels and transaction IDs standardized to 13px (base) for consistency — unified appearance * **Visual Hierarchy**: Improved typography hierarchy following mobile financial app best practices — better information structure * **Balanced Layout**: Better visual balance between primary, secondary, and tertiary information — cleaner transaction list
More…
* **Professional Typography**: Enhanced font weights and sizes create clearer information hierarchy — polished interface ### 🎨 Dark Mode Color Theme Enhancement * **Bitcoin Orange Accent**: Replaced yellow accent colors with Bitcoin orange (#F7931A) in dark mode — authentic Bitcoin branding * **Consistent Dark Mode**: All accent colors across screens and components updated to Bitcoin orange in dark mode — unified dark theme * **Light Mode Preservation**: Maintains yellow accent in light mode for consistency — familiar light theme * **Status Badge Updates**: Transaction status badges now use Bitcoin orange instead of yellow in dark mode — better visual consistency * **Component Updates**: Updated TransactionDetailsModal, TransactionList, TransportModeSelector, CurrencySelector, CacheIndicator, Styles — comprehensive theming * **Screen Updates**: Updated WalletSettings, ShowcaseScreen, SendBitcoinModal, PSBTScreen, MobilesPairing, MobileNostrPairing — consistent dark mode experience * **Theme Consistency**: All interactive elements now use Bitcoin orange in dark mode — cohesive design language ### ⚖️ Header Visual Symmetry * **Balanced Layout**: Price button width now matches combined width of lock and settings buttons for visual symmetry — harmonious header * **Visual Balance**: Better visual balance between left and right header elements — professional appearance * **Consistent Spacing**: Enhanced header component consistency with proper width calculations — polished header design * **Improved UX**: More balanced header layout improves overall app aesthetics — better user experience ### 🔧 Transaction Details Font Sizing Fixes * **Consistent Sizing**: From/To address font sizes aligned with transaction ID font size (14px) — unified typography * **Label Standardization**: Address index labels standardized to 14px for consistency — cleaner details view * **Improved Readability**: Improved readability and visual consistency across transaction details — better information display * **Visual Harmony**: All transaction detail elements now use consistent font sizing — polished details modal ### Technical * Enhanced **Transaction List** typography with improved font sizes and weights for better readability * Updated **Dark Mode** color theme with Bitcoin orange (#F7931A) replacing yellow accents * Improved **Header** visual symmetry with balanced button widths * Fixed **Transaction Details** font sizing inconsistencies * Updated **14 files** with 341 insertions and 219 deletions * Enhanced **components**: TransactionList, TransactionDetailsModal, Header, Styles, CacheIndicator, CurrencySelector, TransportModeSelector * Updated **screens**: WalletSettings, ShowcaseScreen, SendBitcoinModal, PSBTScreen, MobilesPairing, MobileNostrPairing * Improved **typography hierarchy** following mobile financial app best practices * Enhanced **dark mode** theming with consistent Bitcoin orange accent color * Improved **visual balance** and consistency across all UI elements **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `8db3bd8abfc8b6ca4e72e49cb226fd7b088b58518fc063409dfdfcac967cf9f1` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmlk3n0ACgkQ0mO1cs3o HIzEPxAAuNMsi4SIgfHvrLr5fKlRQ9AYuq7drO74NX6d352NerEjpRgb/MQnAEkI Nw7M4CUOQT5afIr+ORqXNX+kMBlBQEULb+TUTUSULO2ZA0f8AF+BUq63GNf3KI+V 5wGOICjbQ/2Uq6yKzFWonsOOmQod5UuCWx268fujqtnQCD7DbB2mBT9x2Yotxi83 3zP4t3Yn7WvJmyaWnoZvtJmoTaDqA8nAEUHKtIfqeFIXsJ8UsmCUQgHZr0z2+m2l Z0MZ3X8DYAMOp1XWKA9RpWyIeh2T3gHVBUml1EXHz/CPY1tJTZ2sifoZ6hKPFQCN BabFGRQCdlGaBXeAq0oFiWWFe5PkYQjldaaOx154i0ykW5jUXQnBzKDvwoyk0FuX JuX2GUQbtVOYkY7zGtkO2NS2vgtaBlBMqpN2XixNXPDC6gmJ94yCp/RN3+YzT3E5 evaemHnwAxPD8bE86z0TysRTqidsZKPyqUhO0+wjnfyNN315dd2T+b7+m5AlzG4I kHWtaYtFJRZuV07CuJVnyQ5l1XGV5TrsNJXU4rfpsBN08YFH/OlJEyBf64KRIgye bRGVtrlk7F/PVrqu5hYu3auAHt+30VEl+XlvLFzELTvwn2ANBQRfc0z6y6NvS4F5 EQKxDwwsZoDdns3Y57xuJy9Lo7kAMN02S2VRyTuGRkrw6dAJoOg= =3LcM -----END PGP SIGNATURE----- ``` ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.1.10 – Nostr Transport Improvements & UI Enhancements **✨ What's Changed** ### 🛡️ Comprehensive Panic Recovery in Nostr Transport * **Enhanced Error Handling**: Comprehensive panic recovery added throughout the Nostr transport layer — prevents crashes and improves stability * **Chunk Assembler Protection**: Panic recovery in chunk operations (`ChunkAssembler.Add`, `ChunkPayload`, `ParseChunkTag`) — reliable message chunking * **Message Pump Resilience**: Panic recovery in message pump operations and query goroutines — robust message processing * **Session Coordinator Safety**: Panic recovery in session coordination (`AwaitPeers`, `PublishReady`, `PublishComplete`) — stable device pairing * **Stack Trace Logging**: All panic recoveries include stack trace logging — better debugging and issue tracking
More…
* **Improved Reliability**: Enhanced stability of Nostr-based device pairing and transaction signing — smoother user experience ### 🎨 Theme-Aware Typography System * **Font Size Consistency**: Font sizes now use `theme.fontSizes` (xl, lg, base) instead of hardcoded values — consistent typography * **Font Weight Theming**: Font weights use `theme.fontWeights` (bold, semibold, normal) with proper type casting — unified text styling * **Font Family Support**: Font families use `theme.fontFamilies` (regular, monospace) for better theming — flexible typography * **Cross-Component Consistency**: Enhanced typography consistency across all screens and components — polished appearance * **Theme Integration**: All text elements now adapt automatically to theme changes — seamless theming ### 🔧 Nostr Transport Layer Refactoring * **Enhanced Chunk Handling**: Improved chunk metadata parsing and validation — more reliable message delivery * **Better Message Processing**: Improved message processing with better error recovery — robust communication * **Session Management**: Enhanced session management with better peer coordination — smoother device pairing * **Client Connection Handling**: Improved client connection handling and relay communication — better connectivity * **Enhanced Logging**: Better error messages and logging throughout the transport layer — easier debugging * **Code Organization**: Improved code structure and organization — more maintainable codebase ### 🎯 Major Screen Refactoring * **MobileNostrPairing Improvements**: Significant refactoring (1,102 lines changed) with improved error handling and code formatting — cleaner code * **MobilesPairing Updates**: Refactored with better code structure (474 lines changed) — improved maintainability * **PSBTModal Enhancements**: Enhanced with improved UI and error handling (217 lines changed) — better user experience * **WalletSettings Refactoring**: Updated with better organization (251 lines changed) — cleaner settings interface * **ShowcaseScreen Updates**: Improved layout and functionality (118 lines changed) — better showcase presentation * **WalletHome Refactoring**: Refactored for better maintainability (168 lines changed) — improved home screen * **Additional Screen Updates**: Enhanced PSBTScreen, SendBitcoinModal, and SignedPSBTModal — consistent improvements across all screens ### ✨ Component Theme Integration * **Header Component**: Updated with theme-aware typography (47 lines changed) — consistent header styling * **TransactionList**: Improved theme integration (47 lines changed) — better transaction display * **QRScanner**: Enhanced with theme constants (18 lines changed) — better scanning experience * **KeyshareModal**: Updated with improvements (14 lines changed) — cleaner modal presentation * **Styles Refactoring**: Refactored Styles.tsx for better organization (153 lines changed) — improved style system * **Universal Theming**: All components now use theme constants consistently — unified appearance ### 📱 TSS Library Updates * **iOS Framework Updates**: Updated TSS framework binaries for all iOS architectures — improved native performance * **Android Library Updates**: Updated TSS AAR library for Android — better Android support * **Go Library Enhancements**: Enhanced Go library with improved error handling and panic recovery — more reliable operations * **Native Improvements**: All native libraries updated with latest improvements — better overall performance ### 🐛 Nostr Transport Stability Fixes * **Crash Prevention**: Fixed potential crashes from unhandled panics in transport operations — more stable app * **Error Handling**: All critical operations now have panic recovery with proper error handling — graceful error recovery * **Debugging Support**: Better error messages for debugging transport issues — easier troubleshooting * **Chunk Assembly Reliability**: Improved reliability of chunk assembly and message processing — consistent message delivery * **Better Recovery**: Enhanced error recovery mechanisms throughout the transport layer — resilient communication ### 🎨 Code Formatting and Consistency * **Improved Readability**: Better indentation and line breaks for improved code readability — cleaner codebase * **Consistent Style**: Consistent code style across screens and components — easier maintenance * **Code Cleanup**: Removed unused code (LoadingScreen.tsx cleanup) — leaner codebase * **Better Organization**: Improved code organization across multiple files — more maintainable structure ### Technical * Enhanced **Nostr Transport Layer** with comprehensive panic recovery in chunker, pump, session, client, messenger, and relay * Refactored **multiple screens** for better code organization (MobileNostrPairing, MobilesPairing, PSBTModal, WalletSettings, ShowcaseScreen, WalletHome) * Updated **components** with better theme integration (Header, TransactionList, QRScanner, KeyshareModal) * Enhanced **typography system** with theme-aware font sizes, weights, and families * Improved **error handling** throughout the transport layer with panic recovery and better logging * Updated **native libraries** (iOS TSS framework, Android TSS AAR) with improvements * Enhanced **Go library** with better error handling and panic recovery * Improved **code formatting** and consistency across 39 files * Updated **Android version** to code 43, version name 2.1.10 * Enhanced **iOS Xcode project** and Android build configuration * Changed **39 files** with 2,213 insertions and 1,152 deletions **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `0efd34a9736f86b567e933e7a1b52738b788a89ab68b5be16c83b95c5c8fcda6` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmlkMhAACgkQ0mO1cs3o HIznZg/9FOrZUZDAhU9zbNQuSP8rKezUNHKpx7RUOKdHJfVsdyXcx9UqfglOY/nO fWxEWBEXH6kMNyRODl0oNYlGThMcUjunDGXEMom9e4FcEy8evsTN5aAmnupsSJ45 N259kRvbyF43Ii4QbtgXIMYI2nNYUI2QlI2YNfAbfAwNFZqxJ6nMPQwffMBJmC5B 8GY173mj8pvjyh1dAz/bwiGceTJnFKNGTSS5vi2ttBDVSYB17IPowr6gKzBk8q9j INoiqxNynkPsvw4aMSpsaMRDclketYYuB6sgrFCfCXzpFPYEAbPIVfM1kTh8q8aQ AWMyAbYUTq3OiWwh7d+L5Q7v+Y2ZWoteJsxVIJHG4KuWiYIcLusbZYhyWzpNDbAi wSM2+boBo6MNkpMV0i3EHn8wfjiDVTEmXWD2royfv6EwC1QrZTnavg89lOsoA5IB xgqPumpZJMlY9XkL9y+N2A5fZG+6kpMsyfZ0zKsVouDk0+udvTLa6Vj2j0d78ghD sqac+Kr8jqpjo2lDpcB03588BBLEx6wIStBgoZ+NWl8C1PPqns0a3LRpu8KrpjbI C6CM2fbRPCFm+ZcbwgHU/jRKua+h1yNg60mnrHAHEZdC4TvT9gsHOTh+Wq8Z2Cfa 9K8inXluHigC6XRZIJesoyTiMheq8cBA/c42kSMPN0ayG69/s7k= =K0tm -----END PGP SIGNATURE----- ``` ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.1.9 – UI Refactoring & Theme Color Consistency **✨ What's Changed** ### 🎯 Modular Header Components * **Reusable Header System**: New modular header components for better code organization — cleaner architecture and easier maintenance * **HeaderPriceButton Component**: Standalone BTC price display component with currency selector integration — quick access to market info * **HeaderNetworkProvider Component**: Network and API provider information display component — always know your connection status * **Improved Modularity**: Better component separation and reusability across the app — more maintainable codebase * **Enhanced Flexibility**: Components can be used independently or together — flexible header configurations
More…
### 🎨 Extended Theme Color System * **Comprehensive Overlay Colors**: New glassmorphism overlay color system — better visual depth and layering * **Bitcoin Orange Constant**: New `bitcoinOrange` color constant for consistent Bitcoin branding — unified color scheme * **Status Color Overlays**: New warning, success, and status color overlays — clearer visual feedback * **Black & White Overlays**: Complete set of overlay colors (blackOverlay02-50, whiteOverlay08-30) — precise opacity control * **Primary Overlay**: New `primaryOverlay95` for enhanced glassmorphism effects — polished visual depth * **Skeleton Loading Colors**: New `skeletonGray` for consistent loading states — smoother loading experience * **Better Visual Depth**: Enhanced support for layered UI effects — more sophisticated design ### 🔧 Theme Color Consistency * **No More Hardcoded Colors**: Replaced all hardcoded color values with theme constants — consistent theming throughout * **Modal Backdrop Consistency**: All modals now use `theme.colors.modalBackdrop` — unified modal experience * **Error Boundary Colors**: Error boundaries use theme colors (`danger`, `white`) — consistent error display * **QR Scanner Theme Support**: QR scanners use theme colors for all elements — better scanning experience * **Currency Selector Theming**: Currency selector uses theme-aware backdrop colors — seamless integration * **Legal Modal Theming**: Legal and legacy modals use theme colors — consistent modal styling * **Future-Proof Design**: All colors now adapt automatically to theme changes — easier theme updates ### ⚡ Dark Mode Detection Improvements * **Simplified Logic**: Streamlined dark mode detection from complex string checks to simple comparison — more reliable * **Better Performance**: Faster dark mode detection with optimized logic — smoother theme switching * **Consistent Behavior**: Unified dark mode detection across all header components — predictable behavior * **More Reliable**: Less prone to edge cases and theme detection errors — better user experience ### 🎨 Header Component Styling * **Consistent Light Mode Styling**: Unified use of `blackOverlay06` and `blackOverlay10` for light mode — cleaner appearance * **Better Border Consistency**: Consistent border colors across all header elements — polished look * **Improved Visual Hierarchy**: Enhanced styling for better visual hierarchy — clearer information * **Theme-Aware Buttons**: All header buttons adapt to theme changes — seamless experience ### ✨ Enhanced Glassmorphism Effects * **Refined Wallet Header**: Wallet header uses `primaryOverlay95` in light mode and `whiteOverlay15` in dark mode — better contrast * **Consistent Borders**: Unified border colors using `whiteOverlay30` — better visual definition * **Improved Visual Depth**: More refined layering effects with new overlay system — sophisticated design * **Better Contrast**: Enhanced contrast for better readability in all themes — clearer information display ### 🐛 Color Consistency Fixes * **Modal Backdrops Fixed**: Replaced `rgba(0, 0, 0, 0.5)` with theme colors — consistent modal appearance * **Error Colors Fixed**: Replaced `#ff6b6b` with `theme.colors.danger` — consistent error styling * **White Color Fixes**: Replaced hardcoded `#FFFFFF` with `theme.colors.white` — proper theme support * **Bitcoin Orange Fixed**: Replaced `#F7931A` with `theme.colors.bitcoinOrange` — consistent branding * **QR Scanner Colors**: All QR scanner colors now use theme constants — better theme integration ### 📱 QR Scanner Theme Support * **Complete Theme Integration**: All QR scanner text colors use theme constants — consistent appearance * **Progress Bar Theming**: Progress bars use theme colors — better visual consistency * **Dark Mode Support**: Enhanced dark mode support across all QR scanner variants — better scanning in dark * **Proper Opacity**: Text colors use theme colors with proper opacity variants — better readability ### Technical * Refactored **Header component** into modular sub-components (`HeaderPriceButton`, `HeaderNetworkProvider`) * Extended **Styles.tsx** with 30+ new color constants for comprehensive theming * Enhanced **overlay color system** for advanced glassmorphism effects * Updated **multiple components** for theme color consistency (Header, ErrorBoundary, CurrencySelector, LegalModal, LegacyWalletModal, QRScanner) * Improved **dark mode detection** with simplified and more reliable logic * Enhanced **glassmorphism effects** with new overlay color system * Fixed **color consistency** across all components by replacing hardcoded values * Updated **Android version** to code 42, version name 2.1.9 * Improved **component architecture** with better separation of concerns * Enhanced **TypeScript type safety** with extended theme definitions **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `000898e867c94e08c9d68dffda5e2e41007c123dd756cb8b234a0e21028fffea` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmliD00ACgkQ0mO1cs3o HIz4ZA/9FyNCeyXgVRt9c0ZjI7mb42l9q9kog/6a0JJiCtOcYDmhGQgg6/iiHXtz iZwVt7mdMCD5GHlngQ1Hrzw7PiONKfWjmeM4SpOmtZ1RZxEHpnCCqSP/QcF4D6AB oa2G8tuwM+DlQ0LjOdZitKX4rwKBpvPu1LBliDZYVZw6ZmFJvUNnqQvWZ6W/U9t+ FIhvlsYqORQiQra/RZ2LgzUBSb2adFGC/wj9uzTaYwvELG+mBnE1ASLhdtaxQ/H6 muVyqjhD5P/SUkOUISvR4xwYWaSSgks+uwQO/T/3BtcuTAl1D9X2sLaDiJXY/59y pxha+3D/e18j3sUCoYLoqrrPdauskAXMIptm7goGZKuQ01PW1oSEVK9O+MlABD7I XGSNixSb56FgftvTPsuMlcKtnQvVcLxh1TvxBq1SelrHEVqJvhHJi48eRd/jRlGc BjLObuvtD8cYJAlz13HeiE1OrE/lXpSTBkKnYoyrdLYSugkGwOsqvrCbkrIi0ORO QPTVNn0s8pJZcRV2IqNbzv/YcfTV191XX33shY0IcR/QieLykZp59Sc7MkwJpJW7 GAPCoZvOT402i4pI1zwS9ee8XvHT20X6qDyijduWvxqj1HnK1U8N9K3vpg07so8+ UhdZSnnLA69JpTQtZErTPUbauDdA62xo6Zoua/ht2S+b4VfzAHU= =4pYs -----END PGP SIGNATURE----- ``` ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.1.8 – Dark Mode Support & Wallet Home Revamp **✨ What's Changed** ### 🎯 Dark Mode Support * **Complete Dark Mode Implementation**: Full dark mode support with system theme detection — automatically matches your device theme * **Theme System Overhaul**: New modular TypeScript theme system with light and dark themes — better code organization and maintainability * **OS-Based Theme Detection**: Automatic system theme detection with manual override options — seamless experience * **Theme Mode Selector**: New theme selector in wallet settings (OS Default, Light, Dark) — full control over your experience * **Optimized Color Palette**: Dark mode optimized colors with improved contrast and readability — easier on the eyes
More…
* **Persistent Preferences**: Theme preference persists across app sessions — your choice is remembered * **Legacy Theme Migration**: Automatic migration from legacy theme system — smooth transition for existing users ### 🎨 Wallet Home UI Revamp * **Enhanced Visual Hierarchy**: Redesigned wallet home screen with improved visual structure — cleaner and more intuitive * **Improved Balance Container**: Enhanced balance container styling with dark mode support — better visibility in all themes * **Glassmorphism Effects**: Enhanced glassmorphism effects for better visual depth — modern, polished look * **Updated Wallet Header**: Improved wallet header with better contrast and visibility — clearer information display * **Refined Action Buttons**: Refined action button styling and positioning — better touch targets and visual balance * **Theme-Aware Components**: All UI elements adapt seamlessly to light and dark modes — consistent experience throughout ### 📊 Enhanced Header Component * **BTC Price Display**: BTC price now displayed directly in header with currency selector integration — quick access to market info * **Custom Header System**: New header system with configurable height and styling — flexible and consistent * **Improved Button Styling**: Enhanced header button styling with dark mode support — better visibility and interaction * **Visual Integration**: Better visual integration of price and currency information — cohesive design * **Quick Currency Access**: Easy access to currency selector from header — switch currencies without leaving the screen ### 🔧 iOS Framework dSYM Generation * **Automated Crash Reporting**: New automated dSYM generation for embedded frameworks — better crash symbolication * **Framework Support**: Automatic dSYM generation for Tss.framework and hermesvm.framework — complete debugging support * **Xcode Integration**: Integrated into Xcode build process for release builds — seamless workflow * **Improved Debugging**: Enhanced crash symbolication support for faster issue resolution — better developer experience ### 🎯 UI Components Dark Mode Support * **Transaction List**: TransactionList and TransactionListSkeleton with full dark mode styling — consistent transaction display * **Transaction Details**: TransactionDetailsModal with improved dark mode contrast — clearer transaction information * **Transport Mode Selector**: TransportModeSelector with theme-aware styling — better visibility in all modes * **Loading States**: WalletSkeleton with dark mode loading states — polished loading experience * **QR Scanner**: QRScanner components with dark mode support — better scanning experience * **Currency Selector**: CurrencySelector with theme-aware UI — consistent currency selection * **Modals**: LegalModal and LegacyWalletModal with dark mode styling — complete modal support ### 🛠️ Theme System Refactoring * **Modular Architecture**: Migrated from single `theme.js` to modular theme system — better code organization * **TypeScript Support**: Improved type safety with TypeScript theme definitions — fewer bugs, better IDE support * **Separated Concerns**: Separated theme types, definitions, context, and utilities — cleaner architecture * **OS Default Support**: Better theme mode management with OS default support — smarter defaults * **Developer Experience**: Improved developer experience with better tooling and type checking — easier to maintain ### 🐳 Docker Build Optimizations * **Fixed Working Directory**: Fixed working directory context in Dockerfile — more reliable builds * **Better Path Handling**: Improved path handling for Go module downloads — fewer build errors * **Build Reliability**: Enhanced build reliability and consistency — smoother CI/CD pipeline * **Cross-Platform Support**: Maintained cross-platform support with better error handling — build anywhere ### 🐛 Theme-Related Fixes * **Loading Screen**: Fixed loading screen background for dark mode — no more white flash * **Error Boundary**: Updated error boundary with theme support — consistent error display * **Cache Indicator**: Improved cache indicator visibility in dark mode — better status visibility * **Showcase Screen**: Updated showcase screen with dark mode styling — consistent onboarding * **PSBT Screen**: Enhanced PSBT screen with theme-aware components — better PSBT experience * **Receive Modal**: Improved receive modal styling for dark mode — clearer receive interface * **Send Modal**: Enhanced send modal with dark mode styling — better send experience ### Technical * Created new **theme architecture** with modular TypeScript structure (`theme/` directory) * Implemented **ThemeProvider** with React context for global theme management * Added **lightTheme** and **darkTheme** definitions with optimized color palettes * Updated **41 files** with 3,872 insertions and 1,854 deletions * Enhanced **Header component** with BTC price display and currency selector integration * Refactored **WalletHome** with improved balance container and glassmorphism effects * Updated **all major UI components** for dark mode support (TransactionList, TransactionDetailsModal, TransportModeSelector, etc.) * Added **iOS dSYM generation script** for automated crash reporting support * Created **inverted icon assets** for dark mode compatibility * Improved **Docker build process** with better path handling and working directory context * Enhanced **WalletSettings** with theme mode selector and preference persistence * Updated **Xcode project** with dSYM generation build phase * Migrated from **theme.js** to modular TypeScript theme system for better maintainability **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `7ab27a95d54deaaaff5e9c091290c8e027b250c4b200d916156fd9133955192a` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmle204ACgkQ0mO1cs3o HIxHRQ/+KKVmWrr03oDqiwQIgowv+LjTE2Fl40ddz7LWXVi6CX1D8mZqBM0GPLvL bZsciFmkyvA6i+L2aox334TLcyPitY3eF7czDovHzezpWTjUGcr9+bwD07R5xuCT 7M+e+negKDxzQPn9tXFjusXGqQa3WvZV+S6vfoJAf4dQmnt78Um675Kim3LRmFkE gY3YyLiepGNPTIBGfkx/FU2RezHGjMwCGyucIfFZfMvlP8oFshWJ8eG9QaAPe/nb 4SGuFplT7O0dclURNt6teFOo4qNjKHVOwLguWP4KBJRJWzcoJDCA2XofK8x/kUD6 +cU7t56HQIVvJdiE9qdjAm4Md/OGhOx4Iy19A0P01W/RSF4k6eGRbxG4LelakDUn V/xrtMI1Qr4jPt489y3ftRLlVU+kY1kwV5alz6GJAAnSmGDHieRNKWeJTZm+Sjy4 6+o61yLPyrU7KRE582ZjwQqCn4YsWw5cHVZ+9uLD5Stk9euqDIQDKRnBCdLf/cDK TiFAEXakhAwIod2PzhHOjRffIEpKUpxqQL4AyhyrxH1P0lMmu/IFLDfYw1x7/mLU NUAfRz1nvl/7oBs6iPjBTt//xneA7rhoYltkW4s6ONTdqfDIqKRFJxHm0B/qZQ0z idfydrxTq1kZVoorlollXQIuV/hmsaju6xx/ZrSqkQo3XNF2C0s= =w+Ta -----END PGP SIGNATURE----- ``` ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.1.7 – Docker Build System & Enhanced UIUX/Stability **✨ What's Changed** ### 📊 Transaction Display Improvements * **Multiple Address Support**: Transaction details now show all recipient addresses for sent transactions and all sender addresses for received transactions * **PSBT Transaction Support**: Sent transactions with multiple outputs (e.g., PSBT transactions) now display all recipient addresses with individual amounts * **Individual Amount Display**: Each address shows its BTC amount and fiat equivalent — see exactly how much went to each recipient * **Smart Count Indicator**: Transaction list shows count indicator for multiple recipients: "To: address... (+2 more)" — quick overview at a glance * **Received Transaction Clarity**: Received transactions with multiple inputs display all sender addresses with the received output amount — know where your funds came from
More…
* **Better Transaction Context**: Full visibility into complex transactions with multiple parties — no more missing recipient information ### 🐳 Docker Build System * **Complete Build Infrastructure**: New Docker-based build system for Android APK compilation with full cross-platform support * **Organized Build Scripts**: All Docker scripts moved to organized `docker/scripts/` directory for better maintainability * **Cross-Platform Support**: Works on both macOS and Linux with QEMU emulation for macOS/ARM — build anywhere * **BuildKit Optimizations**: Advanced layer caching, cache mounts, and inline cache for faster builds * **Comprehensive Documentation**: Complete documentation in `docker/README.md` with usage examples and troubleshooting * **Build Automation**: Comprehensive build automation with F-Droid support, git reference selection, and verbose logging * **Helper Scripts**: Utility scripts for APK extraction, Docker cleanup, and disk usage monitoring ### 📱 Enhanced QR Code for Send Bitcoin * **Extended QR Format**: QR codes now include address type, derivation path, and network information * **Session Timeout Prevention**: Prevents session timeouts when scanning QR codes between devices — reliable multi-device transactions * **Network Consistency**: Enables second device to use exact same source address and network as first device — perfect synchronization * **Backward Compatible**: Fully backward compatible with older QR code formats — works with existing wallets * **Address Matching**: Both devices automatically use identical parameters from QR code — eliminates address mismatches ### 🔍 From Address Display * **Source Address Visibility**: Transaction details now show the source (from) address in pairing screens * **Device Verification**: Helps users verify both devices are using the same source address — prevents errors * **Multi-Transport Support**: Shown in both Nostr and Local WiFi pairing screens — consistent experience * **Transaction Clarity**: Clear visibility into which address will be used for the transaction — better understanding ### 📤 Watch-Only Wallet Export * **Streamlined Export**: Simplified to output descriptors only — removed xpub/tpub export for better compatibility * **Multi-Address Type Support**: Focus on output descriptors (Legacy, SegWit Native, SegWit Compatible) for universal compatibility * **Taproot Warning**: Added Taproot support warning in export UI — clear guidance for users * **Better Compatibility**: Output descriptors are the recommended method for watch-only wallet import — industry standard ### 🛡️ Co-Signing Stability & Reliability * **Enhanced Panic Recovery**: Improved panic recovery in co-signing operations with better error handling * **Better Error Messages**: Enhanced error messages for debugging relay connection issues — easier troubleshooting * **Nil Pointer Safety**: Improved nil pointer safety when extracting relay URLs — prevents crashes * **Resilient Message Delivery**: Enhanced resiliency documentation in code comments — better maintainability ### 🔄 Network & Address Management * **Network Reset on Import**: Network always resets to mainnet when importing a keyshare to ensure clean state * **Address Flickering Fix**: Fixed address changing/flickering after lock/unlock by making UserContext the single source of truth * **Network State Consistency**: Improved network state consistency across the app — all contexts properly synchronized * **Proper Address Derivation**: UserContext now properly derives network-specific btcPub for both mainnet and testnet * **Race Condition Elimination**: Eliminated race conditions in address derivation — reliable address display ### 🐛 Transaction List Improvements * **Loading State Fix**: Fixed infinite "Loading..." state and network errors when restoring wallet for the first time * **Smart Initialization Guards**: Added guards to skip transaction fetch when address or baseApi are not initialized * **Immediate State Clearing**: Immediately clear loading state when URL is empty — no more stuck loading indicators * **Proper Error Handling**: Prevents spurious network errors and keeps loading state properly updated during wallet initialization ### 🔧 Build & Development Improvements * **Android Build Configuration**: Enhanced build system with Docker-specific Gradle settings and improved ProGuard rules * **Better Code Obfuscation**: Updated ProGuard rules for better code obfuscation and security * **R8 Mapping Support**: Added `android/mapping.txt` for R8/ProGuard mapping — better debugging * **Improved Release Scripts**: Enhanced release script with better error handling and validation ### 🔧 Reliability & Stability * **Legacy Wallet Migration**: New modal appears for users with legacy wallets, advising migration to new wallet setup * **Session Timeout Prevention**: Fixed session timeouts when scanning send Bitcoin QR codes from second device * **Cache Management**: Comprehensive cache clearing on wallet setup and import screens — fresh state on import * **Balance Calculation Fix**: Fixed balance fetching from correct derived address (not activeAddress) to ensure session ID matching * **Explicit Parameter Checks**: Explicit empty string checks prevent fallback to computed values when QR code provides empty strings ### Technical * Enhanced **TransactionDetailsModal** to show all recipient/sender addresses with individual amounts * Updated **TransactionList** to collect and display all recipient addresses with count indicator * Added **address amount containers** with BTC and fiat display for each address * Fixed **received transaction amount calculation** to show output amounts instead of input amounts * Created **Docker build infrastructure** with multi-stage builds and BuildKit optimizations * Enhanced **QR code encoding/decoding** to include address type, derivation path, and network * Updated **TransportModeSelector** to include extended parameters in QR code generation * Improved **UserContext** to derive separate btcPub values for mainnet and testnet * Added **network reset logic** in ShowcaseScreen on keyshare import * Enhanced **cache management** with comprehensive clearing on wallet setup/import * Updated **WalletHome** to use UserContext as primary address source * Added **initialization guards** in TransactionList to prevent fetching with empty parameters * Improved **fetchMore guard** to prevent attempting fetches with null lastSeenTxId **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `d5b3c41d438fe830e98375eb9287cfb0d755ee30f50f3bc207b8d9ab75048a59` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmlcOaAACgkQ0mO1cs3o HIxXJw/9F6cr7/Kjn7jjnyVn8Sh5uTOgSo910pWyqdkEKUnLtzcU2swB+/KBw5cQ KhAYOJccBG/zxzvbqA77I7uObPDamFYDLfwW1ePYuV2j5y5auYwyE12oHtk+pbIm 0PpLBSr8d745DGuoWoKNeK7OIRuZjpWTvAuWwhEpVfqeoPjhrjxhB8HETGroJ5p1 c8PGKvoPf/J2NnsAjzVQY8O7ESKKPSdFTOkbDDWvFqltuS/xP6j+CsAoQIKCIeXi tPbgqfX2YDP3hxQBW+pNizJ7MT4LGX+kBerfESsq8xA8Xoq6FGAyl0hCp31fiLQj 9eg+iuTarxFxbtABkbZ6U0KMwJebPelp2EaV2YVQxml7R8NMUg5C1+whr8Tg1Gi6 X/zposx4vD9yGRkJAlt+HTeeqX1f0P42s2CqMw0ZUlVyyn+lyJlTcm2r4FeazDpH XprNj0TUk4QcGuvO0RoyVFJWJqtcLo44RQ7nUNZAO2nHdPXBsrfzg+AoV965672i 7qQdMSPo2oijIMQWdxgFoW0AQgqu8znI9sQOIPKT+8MtoL8uT+vm/Rty66bx3Eyk w16atazcumVJ+QEkFjVB6SusEpyk64thxddu0Xzl+NDN6zEupD8E91e2aIEoD8we gehkgUNu7X4aAeiH6tm0NsaeHGGYw7DCzMUYLUx3yv0EEkqFt/g= =l4Qd -----END PGP SIGNATURE----- ``` ⸻ ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.1.6 – Enhanced Send UX, Balance Visibility & Co-Signing Stability **✨ What's Changed** ### 💰 Send Experience Improvements * **Prominent Balance Card**: New balance card displayed prominently above amount input in Send Bitcoin modal * **Clear Balance Visibility**: Shows available balance in both BTC and fiat currency at a glance — no more guessing your wallet balance * **Integrated Max Button**: Quick "Max" button integrated directly into the balance card for seamless balance selection * **Professional UI Design**: Clean, card-based styling with better visual hierarchy and spacing for a more polished experience * **Better Balance Context**: Always see your available balance before entering send amounts — improved decision-making
More…
### ⚡ Smart Balance Check * **Intelligent Send Button**: Automatic balance refresh when clicking Send with zero balance — no more premature "Insufficient Balance" alerts * **Loading State Feedback**: Visual loading spinner on Send button during balance check — clear indication that the app is working * **Smart Modal Opening**: Automatically opens send modal if balance is found, or shows alert only if balance is truly zero * **Prevents Spam Clicks**: Button automatically disables during balance check to prevent multiple rapid clicks * **Graceful Timeout Handling**: 5-second timeout with proper error recovery — user can retry if needed ### 🛡️ Co-Signing Stability & Reliability * **Panic Recovery Protection**: Fixed potential panic crashes in Nostr transport layer during co-signing operations * **Enhanced Error Logging**: Added panic recovery with detailed stack trace logging in `Client.Publish` goroutine for better debugging * **Improved Nil Pointer Safety**: Better handling when extracting relay URLs — prevents crashes from nil pointer dereferences * **Better Error Messages**: Enhanced error messages for debugging relay connection issues — easier troubleshooting * **Multi-Relay Resiliency**: Enhanced co-signing message delivery across multiple relays — more reliable transaction signing ### 🎯 Send Button Race Condition Fix * **Eliminated Flickering**: Fixed issue where Send button would show "Insufficient Balance" alert even when balance was still loading * **No More Double Clicks**: Eliminates the need to click Send button multiple times — works correctly on first try * **Immediate Feedback**: Better UX with immediate visual feedback during balance check — users always know what's happening * **Smooth User Experience**: Seamless transition from balance check to modal opening — no interruptions or confusion ### 🎨 UI/UX Enhancements * **Improved Balance Display**: Balance card replaces inline "Max" text link for better visibility and accessibility * **Visual Hierarchy**: More prominent balance display with better visual hierarchy — important information stands out * **Consistent Iconography**: Updated QR scanner icon to use scan-icon.png for consistency across the app * **Better Layout**: Improved spacing and alignment in Send modal for a more professional appearance ### 🔧 Reliability & Stability * **Dedicated Balance Fetching**: New `checkBalanceForSend()` function for dedicated, optimized balance fetching * **Enhanced Error Handling**: Improved timeout and error recovery mechanisms for balance checks * **Better State Management**: Improved balance state updates during async operations * **Panic Recovery**: Comprehensive panic recovery in Go transport layer prevents app crashes * **Robust Error Recovery**: Better error handling throughout the balance check and send flow ### Technical * Added **`checkBalanceForSend()`** function in WalletHome for dedicated balance fetching with 5-second timeout * Created new **balance card component** in SendBitcoinModal with integrated Max button * Enhanced **`Client.Publish`** in client.go with panic recovery and stack trace logging * Improved **nil pointer safety** when extracting relay URLs in Nostr publish operations * Added **loading spinner state** (`isCheckingBalanceForSend`) to prevent multiple rapid clicks * Updated **QR scanner icon** to use scan-icon.png for visual consistency * Enhanced **error handling** with graceful timeout and retry mechanisms for balance checks * Improved **balance state updates** during async operations for better UX **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `883120f38afe97c8722f18bec5a5eade1f3a2c13aa80bb033ca1775b656dd5be` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmlVIxUACgkQ0mO1cs3o HIyVLRAAhG8/ngpfX5ylwL6oIsese7Jnx+iqU63kY5IRpzamrMXOLk4MAH82oBt9 85/Z6q6nwpNgAuSrEOD3qYoi8URnsWAXapBJ04NFo1K+ycNXGYIFLyeN/xPGP5xU DaF32UAUeJrkmWye81YsVlssMElPHCOSPzGINdTp9p16AkHjBRRlmltkxcOflQGZ t4a0X51oU6hshuYkR4tuJ5fXkwgcf6USJJZYeKPRmuqZXgqYXBYC00xsRBPqNH/5 +m6FUIUZsNL9VnKikeEBswNfOZ4j6G3OeVRNhMnNfO7+OWZvzpB23tzYnorGz2IN Fkl1nvLwYXXhhKiX7T1Fvt0RDlkiuGhdlPE2pHv6UMvD8D8E0IKPDUP0/rOXtpUe enCsv+oFxQCZ1ibfY039LlkwD2U75dM78+s0Quok4CqITR6MS4+jseB2VUX5a3MK q7E1wd7NctnLHzq2A18GYwSAKDWt6/XnbSqeyranuM2w7vBaQ1buesYj7h7gRUe6 ntBYT3qBTx5zBVXwIXTe4XTYUpSmNC/POg69TroaCH3hAjqxbkrq9vIF9YIuK+zN TsGI4qumw86q+Fx5r1nhZ2wZ1EjVhv2wXKkW9EVOgyhn0QB1F3giUqU638q6gsGl TB4P5gTw+eij5nu81XqzJRHuay3UietRaI+S37n31wvNEVOAA3Y= =UC/y -----END PGP SIGNATURE----- ``` ⸻ ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.1.5 – Enhanced Nostr Resilience, Overall Stability, Legacy Wallet Support & Network State Improvements & Android UX Fixes **✨ What's Changed** ### 🌐 Nostr Relay Resilience * **Fault-Tolerant BTC Sends**: BTC sends now work reliably even if some Nostr relays are down or fail during the signing process * **Parallel Relay Connections**: Automatically connects to multiple relays in parallel for faster establishment and better redundancy * **Background Recovery**: Continues working seamlessly if relays fail mid-process — no interruptions to your signing workflow * **Smart Connection Handling**: Improved connection establishment with better timeout handling and automatic retry mechanisms * **Message Delivery Guarantees**: Enhanced handling of messages sent just before subscription starts — no more missed communications
More…
### ⚡ Performance Improvements * **Faster Failure Detection**: Reduced pre-agreement timeout from 2 minutes to 16 seconds for quicker error feedback * **Optimized Subscription Flow**: Improved subscription connection handling with parallel establishment and better event processing * **Retroactive Event Querying**: MessagePump now queries for existing events before subscribing to catch messages sent just before subscription starts ### 📱 Android UX Enhancements * **Navigation Bar Fix**: Fixed bottom navigation bar overlapping system navigation on Android devices (e.g., Samsung) — proper safe area handling * **Consistent Background Styling**: Added consistent white background color across all navigation screens for a cleaner, more polished look * **Improved Screen Transitions**: Better visual consistency when navigating between screens ### 🔒 Address Stability & State Management * **Fixed Address Flickering**: Completely resolved address changing/flickering after lock/unlock by making UserContext the single source of truth for addresses * **Network-Specific Address Derivation**: UserContext now properly derives separate btcPub values for both mainnet and testnet, eliminating race conditions * **Consistent Address Display**: WalletHome now prioritizes userActiveAddress from UserContext over local state, ensuring you always see the correct address * **Eliminated Race Conditions**: Improved address derivation flow prevents address mismatches during state updates and network switches ### 🎯 Legacy Wallet Migration Support * **Migration Advisory Modal**: New modal appears for users with legacy wallets, providing friendly guidance on migrating to new wallet setup * **Better PSBT Compatibility**: Advises users that new wallet setups offer improved PSBT compatibility and interoperability with modern wallets * **User Preference**: "Do not remind me again" checkbox allows users to dismiss the modal while keeping the option to see it again on new wallet imports * **Smart Reset Logic**: Modal flag automatically resets on wallet import if the imported wallet is legacy, ensuring users are always informed ### 🌐 Network State Management * **Clean State on Import**: Network always resets to mainnet when importing a keyshare, ensuring proper address derivation and clean wallet state * **Synchronized Contexts**: All contexts and providers properly synchronized with network changes for consistent state across the app * **Proper Address Derivation**: Network reset on import ensures addresses are correctly derived for the imported wallet's network ### 🧹 Cache Management * **Comprehensive Cache Clearing**: Automatic cache clearing on wallet setup and import screens for fresh, clean state * **Stale Data Prevention**: Removes stale btcPub from EncryptedStorage and clears WalletService cache when setting up or importing wallets * **Setup Mode Detection**: Cache clearing only occurs during wallet setup (duo/trio modes), not during signing operations, preserving existing wallet state ### 🎨 UI/UX Improvements * **Transparent Balance Display**: Balance rows (BTC and USD) now have transparent background while maintaining tap-to-hide functionality for a cleaner look * **Button Alignment**: Send and Receive buttons now vertically align with Device and Address Type buttons above for consistent, professional spacing * **Improved QR Scanner**: Updated subtitle text to "Point camera to Sending Device QR" for clearer user guidance * **Visual Consistency**: Better alignment and spacing throughout the wallet home screen for a more polished appearance ### 🔧 Reliability & Stability * **Enhanced Event Processing**: Unified event processing logic for both query results and subscription events * **Comprehensive Logging**: Added detailed logging for debugging subscription issues and event forwarding * **Better Error Recovery**: Improved error handling and recovery mechanisms throughout the Nostr transport layer * **Enhanced UserContext**: Improved refresh() function to derive network-specific btcPub values correctly for both networks * **Better State Synchronization**: WalletHome now uses UserContext as primary address source with local state as fallback * **Cache Management**: Added useEffect hooks to clear all cache on wallet setup/import screens for fresh state * **Network Reset Integration**: ShowcaseScreen now properly resets network to mainnet on keyshare import using setActiveNetwork() ### Technical * Enhanced **`UserContext.refresh()`** to derive separate btcPub values for mainnet and testnet * Updated **WalletHome** to prioritize userActiveAddress from UserContext over local state * Added **network reset** to mainnet on keyshare import in ShowcaseScreen * Implemented **comprehensive cache clearing** on wallet setup/import screens * Updated **balanceRowWithMargin** style to use transparent background * Applied **flexOneMinWidthZero and partyGap** styles to action buttons for consistent alignment * Created standalone **`LegacyWalletModal`** component for reusability * Enhanced **`Client.Subscribe()`** for better relay connection handling with parallel connections * Added **retroactive event querying** in MessagePump to catch existing messages * Improved **subscription resilience** with background retry mechanisms * Fixed **SafeAreaView** bottom edge handling in WalletHome for Android devices * Added **navigation container styling** for consistent background colors across screens * Reduced **pre-agreement timeout** from 2 minutes to 16 seconds in `runNostrPreAgreementSendBTC` **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `8fdc10c57a141f2ec735bbfea27026dfd0201a4dd04512aedbff8122585ef6c5` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmlTwZcACgkQ0mO1cs3o HIzhHRAAmvoqS9Y4fIhy0pcddZzVPF71K+nyD1OsUZsc+2pK70xSmk3gr259sMou 7WZ5o8RkJ0xKVMspGLUaxeHPoo7tlvjaNq3yEPGkvtogkIKoClbolpvSNiFfqz7i t+caGT8o52zjDnQMKPKCW/sWrCBD1afJihgYCccKtti1tLJEKb48GFFxmfFzTT8o ts3sv3yaZvkr+oDiLyLhjVLtxot0D2sN6ahHRNWSQe8udBxlLw6gSVacMIAQVDoh 0JqHuSPulyXLBmAf05DdvqwxVB+7ICvl5s1KYciuXQ+yGBRHV0ZOCZlYX5X8J4yN 6dOtb+D2oMmeQzlrBSfVzf5Zf87eYWyUh8CMS2YiUFGwie6FLeXspVDVI9OoVJ0T 1Cr554ah9PvmRa7lPpykFbJmatax3sbEeJWdcryzJ85lkkgJjxHRhjAecJViFMw0 I5ntvXI+yBYjZUNDkMhY9Ooh1PLPxtm0X/sY9GoGXuIc5q4mESbMSTCU0NUGDdHg 8SEIP7h2zDOBdoRZ2yvsrLOQSs4Pb4aZOj1LaEkpFd8TJPQC1ykiQ4Cm3LRVI7te KB5JC1BKEk3TGxoVBzVq2Df5UGgAjKloqvOhvdIUaqOLiPEkU0pvA1J80XpeCQOH Cy/BmWSHpGTCklf6LKzn98tc/zgMH9ofCeI8GSoYwl8cYat4FNk= =wqXa -----END PGP SIGNATURE----- ``` ⸻ ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.1.4 – Enhanced Nostr Resilience & Android UX Fixes **✨ What's Changed** ### 🌐 Nostr Relay Resilience * **Fault-Tolerant BTC Sends**: BTC sends now work reliably even if some Nostr relays are down or fail during the signing process * **Parallel Relay Connections**: Automatically connects to multiple relays in parallel for faster establishment and better redundancy * **Background Recovery**: Continues working seamlessly if relays fail mid-process — no interruptions to your signing workflow * **Smart Connection Handling**: Improved connection establishment with better timeout handling and automatic retry mechanisms * **Message Delivery Guarantees**: Enhanced handling of messages sent just before subscription starts — no more missed communications
More…
### ⚡ Performance Improvements * **Faster Failure Detection**: Reduced pre-agreement timeout from 2 minutes to 16 seconds for quicker error feedback * **Optimized Subscription Flow**: Improved subscription connection handling with parallel establishment and better event processing * **Retroactive Event Querying**: MessagePump now queries for existing events before subscribing to catch messages sent just before subscription starts ### 📱 Android UX Enhancements * **Navigation Bar Fix**: Fixed bottom navigation bar overlapping system navigation on Android devices (e.g., Samsung) — proper safe area handling * **Consistent Background Styling**: Added consistent white background color across all navigation screens for a cleaner, more polished look * **Improved Screen Transitions**: Better visual consistency when navigating between screens ### 🔧 Reliability & Stability * **Enhanced Event Processing**: Unified event processing logic for both query results and subscription events * **Comprehensive Logging**: Added detailed logging for debugging subscription issues and event forwarding * **Better Error Recovery**: Improved error handling and recovery mechanisms throughout the Nostr transport layer ### Technical * Enhanced **`Client.Subscribe()`** for better relay connection handling with parallel connections * Added **retroactive event querying** in MessagePump to catch existing messages * Improved **subscription resilience** with background retry mechanisms * Fixed **SafeAreaView** bottom edge handling in WalletHome for Android devices * Added **navigation container styling** for consistent background colors across screens * Reduced **pre-agreement timeout** from 2 minutes to 16 seconds in `runNostrPreAgreementSendBTC` **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `d47bb1dafb1fc1f2ac2da9223e88f7071d9f5db1085eceee4d04183068b2adf2` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmlTiEgACgkQ0mO1cs3o HIw2VA//b8JQ+zdF9z5gwvqTv2UYCN0Ow1ze0OT5VsCzn/WE/ltmnx0J5z4MqHY2 +L1r0G6Ae9Nc7vKgvm9IxUlvpJ/AGzKivCj19ObENNJdJvv7oFeyDHfSNH4m0gSC TKnccYhNEBcI6zqLQ8MnM9X8k70uolKiXm7rID/yQI8Om750ry6ScpJNClBnJ5TY A+/gCK4IV1Fg1fROMDqkgwbG/QymvmqMaUmyVBmEwDaVwAO2WpIhKg/5xOaVIcIw TJ0G778GxyebnASjE/3vIEGmX/XdLUDXgulOZTWaIL5+bsJQSklCIan6kOYHQwaL uZ/ZW20ZEtJNhYRkgOcqvJB6TGkStW6YTfrW4Gu+mRQtJESQJd6qXIsEePJ6u9To Ltcg9qtIQjQPt4owV5kBaMDEr6HgLEfFWZz4DNKTefsZPGlII8FccxGnJvZofCLU b6FXcUajhnwzGG1nDU1SjF2H2XzNs5ufGcFs1rjGTPkYePvAhWVzLfJzElE/Qsch 9ScJ07FEdgVYnkDBJ9ynsw9quejKsfHDxxsJOwkX+k2nQspVCgEddY6mkaydAZXZ WO6WXM/ePtQ+Oa1Xm0RygY+ePNDiEv+pLrhTSzCHGucpErXhsZPED/K7s47Ofgig tOJosSl56Re4EM7fTDoE/zblD6WEP/pzrvvusu3J+BmTU7V4yIA= =wMFS -----END PGP SIGNATURE----- ``` ⸻ ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.1.2 – Recovery Tools & PSBT UX Refinements **✨ What's Changed** ### 🔐 Emergency Recovery Capability * **Cross‑Platform Recovery Binary**: New `bold-spend` standalone binary for Windows, Linux, and macOS (AMD64 and ARM64) enables emergency Bitcoin recovery when the mobile app is unavailable * **Self‑Contained Recovery**: No external dependencies — spawns itself as separate processes for secure multi‑party signing workflows * **Enhanced Recovery Script**: Improved `spend-bitcoin.sh` with named arguments (`--passphrase1`, `--passphrase2`, `--keyshare1`, `--keyshare2`) for clearer, safer recovery operations * **Mobile Backup Compatibility**: Direct support for mobile app backup files (`.share` format) — use your existing backups without renaming or conversion * **Comprehensive Recovery Guide**: Complete documentation with platform‑specific instructions, security warnings, and step‑by‑step workflows for all address types
More…
### 🎨 PSBT Experience Improvements * **Refined PSBT Screen**: Improved collapsible sections with consistent expand/collapse animations and clearer visual hierarchy * **Modal Consistency**: Fully aligned `PSBTModal.foss.tsx` with `PSBTModal.tsx` for consistent styling across FOSS and standard builds * **UI Polish**: Fixed expand icon rotations, updated button labels ("Load PSBT File"), and removed redundant borders for cleaner nested card layouts * **Smart Section States**: Enhanced default behavior for collapsible sections in PSBT mode ### 📚 Documentation & Discoverability * **Enriched README**: Added App Store link, comprehensive feature list, and app overview based on fastlane metadata * **Recovery Documentation**: Complete recovery guide with critical security warnings emphasizing the risks of loading both keyshares on the same machine * **Security Best Practices**: Clear guidance on post‑recovery actions: move all funds immediately, do not reuse keyshares, create new wallet for future use ### ⚠️ Critical Security Warnings * **Recovery Tool Risks**: Prominent warnings in recovery documentation about both keyshares being loaded on the same machine * **Mandatory Post‑Recovery Actions**: Clear instructions to move all funds immediately and never reuse keyshares after CLI recovery * **Trust Requirements**: Emphasized need for trusted, secure recovery environment ### Technical * Implemented **cross‑platform `bold-spend` binary** for emergency recovery (Windows, Linux, macOS) * Enhanced **`spend-bitcoin.sh` script** with named arguments and improved error handling * Added **comprehensive recovery documentation** with platform‑specific examples and security warnings * Aligned **PSBTModal.foss.tsx** styling with **PSBTModal.tsx** for consistent UI across builds * Updated **README** with App Store listing, features, and recovery guide references **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `e399a08f5c263a21e58ce185685de87ee6f6969fd5210f4d0f1e3b37dc381499` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmlFaMMACgkQ0mO1cs3o HIy7UhAAqr8rldsOi1cs/b/mUlU6s1RA2+r6yB/EUAsPfbTiHqSIcK6In+WA+wcF cZI57nLJILDUaAvl1gwlG27HW0uNt2PRDKDO3PRQDY6SWneuCX9BH8QJek2cHqoa v/8hZ7oi156ZkaGsPYv3LLrKyn3YwR6M9xVKnz5WamHh/BPk1LCoc0ciFj0ilh7q x384IWASBtxzkgCCoTKVBu4mGweAkjY7FkA8xAwl+AG/6ugqBWeKmFlVzxytMuEa NaYjrL9cDUB5rLFoEyAsuaGzPqIc7Crh3Yw8D7YWnnK2w4QF/juNYln/0EmgoHsy Ia4V0V8llqgunC7MxzKaW5isZh7Fu6guQqWL/g3TqKui6r6oZDuk3JrJQfvuNCFr nA8A2C0T3rZ9LR+cknBMqHonLV28YSQGa1Y6Z3IV3ut5r8J3XfOR/xNLnsehrwRX dRdjwj7HsviX143+Sh4fLoZqr93pEj/w3w9XWRMQkSiVB4QsBKea9EK1FwX6vft5 Z2I02431pOKW4aDWC8qU+dKpi6TplVBUUyZqPXNFvyHfGXhG4wbQfbAVYZHRrdsc bq5Z9EezesasuBbrcy3qH4vknYxOGlFYJc9jrTC5B2ivq0qmIKm3AOOcIbJY1zVA XIRqi5ipzy9pwVzxlPUDIpp95qNO84HWznp49HvLzuYhzieZY9Y= =xPX9 -----END PGP SIGNATURE----- ``` ⸻ ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.1.1 – Air‑Gapped PSBT & Wallet Interop **✨ What's Changed** ### 🌉 Bitcoin Interoperability * **Air‑Gapped PSBT Flows**: Craft transactions on your desktop, move PSBTs via QR / file, and sign safely with Bold while keeping keys off networked devices * **File‑Based PSBT Support**: Import/export PSBTs as files for flexible offline signing workflows and multi‑step transaction pipelines * **Watch‑Only in Sparrow & Electrum**: Import Bold wallets into **Sparrow** and **Electrum** as watch‑only using **extended public keys (xpubs)** or **output descriptors** for richer analysis and transaction construction ### 🧰 Advanced Wallet Workflows
More…
* **PSBT Signer Mode**: Use Bold purely as a **PSBT signer**, ideal for advanced, off‑app setups, multi‑device flows, and hardened security postures * **Normal In‑App Wallet Mode**: Keep your everyday **send/receive** experience unchanged with the standard in‑app wallet mode for simple, fast transactions * **Separation of Concerns**: Cleanly separate **transaction construction** (desktop) from **key usage** (Bold), without sacrificing UX ### 🔐 Security & Sovereignty * **Offline‑First Design**: Reinforces Bold’s model of **no servers, no seed phrases**, with added optionality for fully offline signing * **Descriptor‑Friendly**: Output descriptor support makes Bold play nicely with modern Bitcoin wallet architectures and recovery schemes * **Ecosystem‑Native**: Treat Bold as a **first‑class component** in your broader Bitcoin stack instead of a siloed mobile app ### Technical * Implemented **air‑gapped and file‑based PSBT** signing pipelines * Added support for **watch‑only exports** to Sparrow and Electrum via **xpubs** and **output descriptors** * Introduced explicit **PSBT signer mode** alongside normal **in‑app wallet mode** **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `1e93f0cdc7822fdc15caefa1046641df700d028481eebea6614c817d03afcd43` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ```text -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmlD0y8ACgkQ0mO1cs3o HIyZXg//QFn5padglPrbd++0X20YZcnAzP4tFSwS7eiMN0P+TvbEWweKvzL7eNIW +VB++TPxKAzhvxHL30zwztGjzR128a9RxeEkWIHgABDLdGP7oaEBABmq+IR9dvNg m3ryj4mRVfj+4ays6VwlXAVVQTP3mwaq3bjR8K8HRz8jLcijsw/Cc8dvJf2ULCYX WHLfYr2Z2xisgoz8FGoVYtm/ojprj+OwzqTh4Tf8byH5JWo0bzz2nZq2K90nG1AY 3ZdigSEIOxfvccJdCGMve9qQqIlsRcVCwX97XFX/aP4IOBJwJuWb0e9yWCg7/YLb Aub5OAXxyWYojrasXBlAAQA17h6K7Jbj3a9Qi3OCM9f7zK16FF+lswgdUKZanUE4 subX0B4XguMKAG/ZVvXbSeowfT+NiRoluph28vycnD5mX7m+zLhCvEJolqElAM8r JtbclK6h6nDOuZo0O4mPLE9qEPAIDFtTrjajTnyhnioaP3aK0yqauxR1XMpAFKO0 FJZrlln8esGp7WhNYromyIbJx1fKnlrFc3QW9efsazXJ+5BgMYvxd39HKXJLhtv5 PMNK5EtQSQAwM55WM4GM05Q68nHx5bP9mFBGx/xp8rMU4ggoI2lLG6Oj1KNVy7J9 2gpuAARgmjTzVD3hYUtqCzYWxNVVWIlaCX1i+fj4upkHKhHuy0g= =PFQj -----END PGP SIGNATURE----- ``` ⸻ ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.0.2 – F-Droid Compatibility & CI/CD Enhancements **✨ What's Changed** ### 🔓 F-Droid Compatibility * **FOSS Version for MobileNostrPairing**: Added `MobileNostrPairing.foss.tsx` for F-Droid builds * **Removed react-native-vision-camera Dependency**: Replaced iOS camera with `BarcodeZxingScan` for both iOS and Android platforms * **F-Droid Build Support**: MobileNostrPairing now passes F-Droid open source restrictions, similar to SendBitcoinModal ### 🎨 UI Improvements
More…
* **Loading Screen Background Fix**: Added proper background color to safe area container for consistent theming ### 📱 App Icons * **Android Launcher Icons**: Updated and optimized Android app launcher icons across all density variants * **Icon Optimization**: Reduced file sizes while maintaining visual quality ### 🔧 CI/CD Improvements * **Docker Caching for Nostr Relay**: Added Docker image caching for nostr-rs-relay in GitHub Actions to speed up test runs * **Improved Test Pipeline**: Updated GitHub Actions workflow to require local Docker-based Nostr relay for testing * **Test Script Enhancements**: Enhanced test-all.sh with better error messages and local relay requirements * **Test Optimization**: Removed redundant tests that are already covered by the local relay ### Technical * Created FOSS-compatible version of MobileNostrPairing screen * Unified QR scanning implementation using BarcodeZxingScan across all platforms * Maintained full feature parity with standard version * Version code bumped to 32 (Android) and build 32 (iOS) **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `32fdd3b52fc167d3302c30d86997804d31e24dca1c7d5db666c37af26e85921d` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ``` -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmk4l7UACgkQ0mO1cs3o HIwAZw//Q2h4Cf9RP4AC63bhBftQRTpOuXyXwU2yBoRyQwLJT0xZQ9+t7QLHklx+ yThC4EvUj5QA/jWnFN02TTbNNbjgu0ovpQK/OI4qG3YTBahgAPnXzZEn5C+g/Swg eXsAXfR3tB8Fd9iYqQGcXpkJz9OcIaV4rA8PEsyTiVllOyxBY0YVRpgo9J8tF/MD rI6hczEtBlURzHCbf9ePbuTiaHvC2ZWNuvxzG1S3keaMk8jud5JPat/YoGuTatHs BtdwBPdv1TRyGgibjyc1X52SUE9RH50XecqOGPaPPOFFzrplj0eC0fJrgVYoYslR X8FQDQMfQ2PHeAl/FDl7d+0PJsC15PaAYngCt15sRFM8Vcoz/Y6uTrFawqQsGvvE iqV5S4LqDXDHvzfHVsuBUiiuspCvzmV5EQzQ0t6AzGWhdXP4P/Tc0d16x/PJgK3Q S5oO5QoGP1vTsXimy5bAtqAvDt/M7F2O/7edXPnMohHjIpKHmlAJCbAJv8HTmHB+ 19PxNgtx6mL9ZeG8Cu75wkS59Qi7wi1KV6nXznReL/fgkCqCSyg6cVuWLqi+e8Fa a5UwOVakckfn9a3VcUdWqfqNYKDbZRF9PsLLBNFAWGToDfefSbuPOYMD0JOTVdVV tXewmz/RAbi8NegHd3S6etOn72N6o9hAmxTAiWPBejRLvWeZVjM= =LC5S -----END PGP SIGNATURE----- ``` ⸻ ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.0.1 – Nostr Integration & Decentralized Pairing **✨ What's Changed** ### 🐛 Bug Fixes - **Fix Double Promise Callback Crash**: Prevented SIGABRT crash caused by double promise resolution in native modules ### 🔄 Transaction Broadcast Reliability - **PostTx Retry Logic**: Transaction broadcasting now automatically retries up to 4 times with exponential backoff (1s, 2s, 3s delays) if the initial broadcast fails
More…
### 🎨 Nostr Pairing UI Enhancements - **Redesigned Header Layout**: Help button moved to the left, title centered, abort/cancel button aligned to the right - **Consistent Button Styling**: Cancel/Abort buttons now use pill-shaped outlined style matching local pairing screen - **Icon-Based Help Modal**: Replaced emoji icons with consistent app asset icons - **Improved Text Labels**: "Your Device" → "This Device", shortened step labels - **Compact Copy/QR Buttons**: Icon-only buttons for copy and QR actions - **Relay Config Repositioned**: Advanced Nostr relay settings moved for better flow - **Reduced Padding**: Tighter spacing for a more compact layout ### Technical - Refactored `PostTx` with retry logic and exponential backoff - Added new button styles for consistency across screens - Updated header alignment styles **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `356da4de3445f4404fbe9f552246b2bb1b286d4b1e1b9871f643125e82341354` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ``` -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmk3OngACgkQ0mO1cs3o HIz7tRAAxpqKoxV2IeCBpWknkKR3L2LEvyM7iRooU23kpAWKaEnrm5Hnb3aBOYbm Oa/6lIsfWQtimctuvZtWKgnDWlT+8uMwaeVr7w2Hpc/CZxhFQmcYMwBlkjxCS6Cq Md0l84D3KpetVaotdtooB7M32UKV1H1wpebjhx4ZyqpEWxFqIhTGa0WZBtLiLOl9 i7MdXzJIsHzCb//gAglZXaZeCXjv9eBChY8txqnvs+dG6+TUGzuRTf6YKiDeAIbo jBtRTMCODysmyumSL5UYRL/yWcvi4A3b6pmaaojO10av97pTS1xY/gv9SFOXYo/k 4IEWu6IMiOq604J0j04xOn0siVTy6tAXbizAD/KAoFT9NWP46B6TejteF9THBK30 j1UNqOiCr8yUJtUPcSVB2d/6ZJgBsgCHP0ccMPGvoer/lXhyNYyF4vf9wkTg4lPC 8T4nCePHVfCMc6g7ZKY/YTxlOQM4UfFkHY4RVvw69QjM70ffVpDfPH7yq3Oq1UVR hRUuVNS2TtEaJ3/KA45nzwR2zvUHnNi014CNIjvrtS7fdaYWxTrbD0jEUXoO4crk eTJqHHdSaHm9cpR9ZLUGXVbbsfCipzo1ki9gTFZBHojsYVmsa4aM9FLwsPopMpiB +pbR8+/z5T4ZmIXLRRgvoaf9r0fKgdyAcWaOb50F6kV9SfzHavI= =jOj/ -----END PGP SIGNATURE----- ``` ⸻ ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v2.0.0 – Nostr Integration & Decentralized Pairing **✨ What's Changed** **🌐 Nostr Integration – Pair Devices from Anywhere** Revolutionary decentralized device pairing using Nostr relays. Connect your devices from anywhere in the world – no local network required. Perfect for remote setups, distributed teams, or when devices are on different networks. **🎨 App Icon Switch**
More…
Go low profile and hide your app icon! Switch app icon options directly from wallet settings. **📱 Overall App Enhancements** Pairing modes: • Local WiFi/Hotspot: Fast and reliable for nearby devices • Nostr: Connect through decentralized relays from anywhere ***🛡️ Enhanced Resiliency*** Improved session management, resilient multi-relay connect, better error handling. **🎯 UI/UX Polish** Refined interfaces across the app, better validation, shareable connection QR codes, and improved home screen layout. **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `75fadbc68ca579951e081768726c387c638ddca07555d7962c69adc827450b4c` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ``` -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmkx6MgACgkQ0mO1cs3o HIzxaQ//bBe+jrlIEIgVWCxhsPwoIPpCD+Ccz09tNY8VSwNSMZg//C2kTi1mKm8w HeKUNm/tzQrGn8cBIL1BJM7vwxzGAKyMvKV94tsphUmgiH1lpDU2z9d1BfPwH/1l 7qL+lKa27vMJNpQeymdorJhV4owy1B62FnVj3uPxxsYLWMLmPu9AJaniYrryFUHS Hh9yYjtnbzmhZ8jpFhrWsxVglJTVFEPA68U/pNHFrsgdObeb7Oat27dlOuhSioCW UWzthkLAdcWoHzwPqzXybdtfY06K2l21/7NvKQv7Ags0rKiWyxkyv8f563QKilPB Llzdb7HJm4XbHGMfFavIkLEBaYwgInnWrguzxAKvsS9R/3uyNTLkmjAWS9POUYQH 9UDZl9ne2Y+JiXQY8cxpZkyEpuxlPCXnW/Smka3dEvxTgvnez/HVEmUN4Ydnbt31 5a4b10Q9Bjo/0ZPBtlcdxi1QWUAN3Mig9N1uu7TwlsYhbYA6JM+t5dPkNL1A7YGq u5KZTYeCAH5ujWJAE1O16GTD+WbkvjRTR2ep+SrC5bjRdbn59B7MgB4edu7Y6hua zwODS16mNPcMkCzSn2t2K5cfm2N7m7B8thPykBYlYU9DGSznw0UBBeeDq1oi5Y+4 9u+Qv+QkplANey36S9sB2zI9o1bvdRHBMzcNLrugBWY5Zj1L5Es= =xfTt -----END PGP SIGNATURE----- ``` ⸻ ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. - ### 🚀 BoldWallet v1.5.4 – Flexi Mode, UI Overhaul & Faster Core **✨ What’s Changed** **🔑 Flexi Mode (2/3) – Next-Level Resilience** A brand-new wallet mode enabling three-device setup where any 2 devices can approve transactions. Perfect for backup devices, families, teams, and frequent travelers. **🌐 Mempool Provider Selector** Choose from multiple public mempool.space providers or plug in your own self-hosted mempool API for maximum privacy.
More…
**📲 Enhanced Wallet Setup Flow** Smoother onboarding with intuitive mode selection: • Basic 2/2 - Two devices for wallet setup, Two devices for spending. • Flexi 2/3 - Three devices for wallet setup, Two devices for spending. **🛠 Tech Stack Upgrades** • React Native: 0.76.9 → 0.82.0 • React: 18.3.1 → 19.1.1 • Android Play Store 16KB alignment support **🎨 UI/UX Improvements Everywhere** • Updated app icons • Refined typography, spacing & layout • Enhanced Mobiles Pairing • Polish across all screens: animations, hierarchy, spacing, accessibility **_💛 No servers. No seed phrases. Just sovereign sats._** ⸻ 🔗 **Learn more** at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/) 🔐 **PGP Public Key** at [boldwallet-publickey.asc](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `90f636f74a72e5e37b5a6c226124f0cd2a487eb67c8f9699fe7d2f759aaae432` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ``` -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmkeOJAACgkQ0mO1cs3o HIzMwg//XJAScQ9Mkaf4NbpyKpuXHQ9n1vF5Y8GbBmiSCDSDBy7rBxiAYfsyp5Cm /07wMc3QyC5WYZ5uQ4rIePWGPOXjCSAnwB4wJ3+PoMYBs9AtAzOiL1vD5UjU/RUj t/H7Wm49MvWRstl0cCjCsrTNqKVyu5unkjfr9WYAMO69qySJm+ts4zPcWc2XJltx n1DWqSPmvlmH9ZCRCAeY2ZIAvWVTfui/tjEqsennbfJb9xVK6PS+PaByWguG5ADt nvY/zp4UxZomUx+0/DtPisIJ3x27Go8nxX3uRZffMjDHi7QdfaigPRL89wgg3/9H 49+EfV+eaBZyQtJ7gKzrgIdMhsgNj2XSjR8hKy/R70WkIveiQWYfpZ076krqcYiz BYKmW89fF30Hxhd24hv+UgecmxNlo/qhCSirKIaAv8Zeeh09WYTnV/4/IBRlfDnY YXBhBcofCdduYKDAKMZyvaI4AkKqGkwpQKVIeExhYRSEhleYi5FeaQgZUqUOnPPa ssJahJrFR+D0eI7Ov1eE9GFJBstTy43HBpZOybJkSnCZCYbkzpzq8So0zpT+sd2r 2FNQJ7Rig2uQVvmk+Jmm/x/FW1cXGwnN6TCKbj16YylhMJYjzgWsInmLmfTJ1blg JtZrPhgzAez4H0jVBqcmyhciPtc4ESJTCt5MphbYuQlP7HPfb/0= =YbE7 -----END PGP SIGNATURE----- ``` ⸻ ⚠️ APK Signature This APK is signed with the official BoldWallet keystore. Do not mix it with the F-Droid build. Stick to one source for updates. ⸻ - 🚀 BoldWallet v1.3.2 – Power at Your Fingertips ## What's Changed * V1.3.2 store alignment updates by @boldbitcoin in https://github.com/BoldBitcoinWallet/BoldWallet/pull/18 _**💛 No servers. No seed phrases. Just sovereign sats.**_ **🔗 Learn more at [boldbitcoinwallet.com](https://boldbitcoinwallet.com/)**
More…
🔐 [PGP Public Key](https://github.com/BoldBitcoinWallet/.github/blob/main/PGP/boldwallet-publickey.asc) **📎 SHA256: app-release.apk.sha256** `61beb679a04e7bc0687605a3cb676143bf7f9dc4120f1fa020491d76e7c4db6c` **🔑 SHA256-PGP-Signature: app-release.apk.sha256.asc** ``` -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEmqm9HSMiBJd7uQil0mO1cs3oHIwFAmiNE0kACgkQ0mO1cs3o HIwJMhAAtLAYpGZuPGsispF4uaEZeAz0taN7alBEJ2Gg3691nsZJdPJtJk7D4ZQ1 M+lsDBWv9pOQB6sqhHvGSrfAcGQ+qx+e313C1HwJIXvSSMafmXEqPXPHpHw55jdi FyUbyoIJpKKDz2KRrwA5CAlHGPJ+LWaz7Q/3w8gixMNqxBxbIQZrL1e50/VI5aZ/ lJiCrhI9zv53cPOet0D9CKtl4yRe/2QUjQBdj3zogaSWTlK3/YTiJwAYv8v8F573 m04oUVPB/NNWqDRg1xkBlRd9P9h3CL9q7Pz/EfZnT5QsA4161CetJj6fpeifIjHT xM4j3zsztm0E6/DAkfl+Dg2Zb3CwbE/iURzJtzjXwepdEHfI8VqgIws1Dvq5V97f FooRbAKsWUOvlcdR5J5ucNjThH8tZLSOxtwAXq8GiTGxq20H7P8X0shgVJZGz2EZ IK6iuaFt8mFiT/Bbphsys9+/8iuyNrCsaUMq0hRQwYlOFjoB/X8JrdOYPTIbC2zl W0gvqRYGSdJ/Kv84oRrL3uQ561EdTgjq7U3AGDnLeYhJzlClFeZSIo4hgtYM3Cx7 JhHlEk6YPmOil/RBFKWu21mqm+YZn3vG4XmeP5pkizLOd5WDpC2Tc4N6dI8ejBB/ 5s19vp4XJ67I/KsabMjJyZv0LxgCyJC7UflttSkjR50K4a5u/C4= =+n5a -----END PGP SIGNATURE----- ``` **⚠️ APK Signature:** This APK is signed with the official BoldWallet keystore. Do not mix with the F-Droid build. Stick to one source for updates.