Skip to content

Releases: SatoshiPortal/bullbitcoin-mobile

6.10.1

17 May 05:44
0d026b1

Choose a tag to compare

6.10.1 Release Notes

New Features

Wallet & Storage

  • FSS hybrid storage strategy — Flutter secure storage hybrid strategy without migration; better handling of FSS10 migration failure on Android with fallback to legacy storage
  • New onboarding/startup wizard
  • Ledger hardware wallet support
  • Electrum timeout and retry via bdk-dart
  • Increased Electrum stopGap — now allows values up to 5000

Exchange

  • Colombia (COP) deposits — new COP payment link deposit flow
  • SINPE receipt on tx details — reusable card on success + details screens
  • Enhanced exchange settings menu — new functional screens: Recipients, Transactions, Default Bitcoin Wallets, App Settings, Secure File Upload, Statistics
  • Email notifications toggle — enable/disable email notifications in App Settings
  • Secure file upload — KYC document upload screen with status indicators (Upload, In Review, Accepted)
  • Trading statistics dashboard — buy/sell ratio, trade volumes, trade counts, average prices, and biller statistics
  • Preferred currency improvements — exchange home handles empty balance currency; deposit/withdraw/pay screens default to preferred currency
  • Announcement banner improvements — truncated descriptions with ellipsis; tap to open full details in a bottom sheet
  • Scam consent warning — explicit consent required before funding exchange account

Real-time & Notifications

  • Real-time WebSocket notifications — balance, KYC status, and group membership updates arrive instantly instead of polling every 5 seconds
  • Real-time support chat — support messages appear immediately via WebSocket push

UX

  • Pull-to-refresh on wallet home — can be triggered from anywhere on the screen
  • Backup warning overlay — bottom sheet hard escalation warning for backup when wallet has funds and no backup is detected
  • Close button on broadcasting screen — added since the app no longer auto-progresses when autosync is disabled

Privacy & Payjoin

  • Randomized OHTTP relay selection — relay randomly selected per payjoin call via Random.secure() to prevent network fingerprinting
  • Payjoin self-transfer detection — detects self-spent transactions and shows a "Self-transfer" row on confirmation; self-spends bypass payjoin

Internationalization

  • 11 new languages — Arabic, Bulgarian, Bengali, Czech, Greek, Persian, Hindi, Korean, Brazilian Portuguese, Thai, Turkish
  • Detailed German translations — community contributions from @bsn21m
  • Updated translations for new warning and wizard pages

Observability

  • Opt-in error reporting — optional, self-hosted Sentry (disabled by default) - only collects error reports and stack traces, no telemetry, no IP.
  • Detailed Sentry configuration to ensure user privacy
  • No app restart required after providing Sentry consent

Removed / Changed

  • Removed Boltz testnet support
  • Removed Recoverbull sync page
  • Server status page now makes more realistic calls

Bug Fixes

Wallet Core

  • Address index issue — fixed via update to bdk-dart (bdk 2.0)
  • Crash for unknown script transactions
  • Prevent duplicate mnemonic import
  • Mnemonic import freeze/crash
  • Capital letters in mnemonic — no longer accepted (was causing errors)
  • Correct Testnet electrum URLs
  • LWK database initialization — fixed Liquid wallet database init issues
  • Spam create wallet on startup
  • Startup lag — fixed lag during wallet and seed loading on startup
  • Startup error screen — gracefully handles and displays startup failures instead of freezing
  • Always ensure both instant and secure wallet are created - Should be atomic

Swaps

  • Swap watcher race condition that could cause status update issues
  • MRH swap — uses transaction ID to fully resolve as a swap transaction
  • Swap flow wallet autoselect — prevents self-spends or same-network sends in the transfer flow
  • Amountless invoice handling — throws a more descriptive error for amountless invoices on swaps
  • Background tasks cleanup — removed unnecessary background tasks causing unexpected swap states and LWK db corruption
  • Autoswap notice/warning fixes
  • Testnet fix for recoverbull

Send / Receive

  • LN receive success screen crash fixed
  • Insufficient balance navigation — Continue on send amount page with insufficient funds no longer navigates to confirm page
  • Sell/Pay flow — fixed "Could not fetch fees" bug
  • Route unauthenticated users to login via buy/sell/withdraw

Backup & Security

  • Physical backup verification — fixed backup test status not updating after completing verification
  • Backup-before-PIN safety gate
  • Backup completion flow via FSS Warning — after completing a backup, the warning lands directly on the "Reinstall" title instead of flashing "Backup and Reinstall"
  • Backup wallet warning on home now updates correctly after a backup is complete
  • "Vault created successfully" snackbar no longer covers the "Test Recovery" button

Exchange

  • Exchange statistics — linear progress indicators, integer trade counts, currency conversion, thousands separators
  • CA KYC sell limit — enforced $999 CAD buy/sell limit for Canadian users with limited KYC
  • Argentina recipients
  • Routing to support via "Get Help"
  • Support chat attachments — improved image picker with better permission handling and clearer errors
  • WebSocket reconnect loop — fixed infinite reconnect loop for unauthenticated users

Pricing & DCA

  • Price graph refresh — users can now manually reload Bitcoin prices if automatic loading fails
  • DCA confirmation text color in dark mode
  • DCA UI fixes

Labels & Persistence

  • Labels feature refactor — complete architecture refactor with database migration v11→v12; fixed upsert constraint failures, SQLite concurrency, and multiple related issues
  • Transaction note persistence
  • SQLite migration safety — catch blocks around label migration to prevent crash on failure

Network / Connectivity

  • Custom mempool server — SSL toggle (auto-detected from URL), improved URL parsing/normalization, server status indicators, dark mode fixes, and hidden service support via Orbot
  • Recoverbull Orbot detection — checks if Orbot is actually running on port 9050 instead of relying on user settings, preventing Tor-over-Tor errors

Input & Keyboard

  • iOS price input keyboard — fixed to show correct number pad with decimal settings
  • Keyboard lag — fixed lag when importing mnemonic passphrase or typing in label input fields

Theming

  • Dark theme fixes — QR code backgrounds, PSBT flow, exchange logout sheet, Recoverbull button, custom Electrum server widget, exchange home KYC status card
  • PIN light theme readability
  • Custom fee dark mode
  • Light mode exchange banner
  • Delete logs dark mode fix
  • Swap fees dark/light mode and text color fixes
  • Storage warning screens dark mode background now matches the wizard
  • Fade-to-background gradient no longer covers the title/description above the button
  • Pull to sync loader no longer lands behind the Bull logo

Wizard / Onboarding Polish

  • Removed translation bottom warning sheet in wizard
  • Replaced next button with inline YES / NO continue button in the wizard (reporting program)
  • Transparent chrome so small screens can see there is more to scroll

6.10.0

11 May 13:22
1a32a22

Choose a tag to compare

6.10.0 Pre-release
Pre-release

6.10.0 Release Notes

New Features

Wallet & Storage

  • FSS hybrid storage strategy — Flutter secure storage hybrid strategy without migration; better handling of FSS10 migration failure on Android with fallback to legacy storage
  • New onboarding/startup wizard
  • Ledger hardware wallet support
  • Electrum timeout and retry via bdk-dart
  • Increased Electrum stopGap — now allows values up to 5000

Exchange

  • Colombia (COP) deposits — new COP payment link deposit flow
  • SINPE receipt on tx details — reusable card on success + details screens
  • Enhanced exchange settings menu — new functional screens: Recipients, Transactions, Default Bitcoin Wallets, App Settings, Secure File Upload, Statistics
  • Email notifications toggle — enable/disable email notifications in App Settings
  • Secure file upload — KYC document upload screen with status indicators (Upload, In Review, Accepted)
  • Trading statistics dashboard — buy/sell ratio, trade volumes, trade counts, average prices, and biller statistics
  • Preferred currency improvements — exchange home handles empty balance currency; deposit/withdraw/pay screens default to preferred currency
  • Announcement banner improvements — truncated descriptions with ellipsis; tap to open full details in a bottom sheet
  • Scam consent warning — explicit consent required before funding exchange account

Real-time & Notifications

  • Real-time WebSocket notifications — balance, KYC status, and group membership updates arrive instantly instead of polling every 5 seconds
  • Real-time support chat — support messages appear immediately via WebSocket push

UX

  • Pull-to-refresh on wallet home — can be triggered from anywhere on the screen
  • Backup warning overlay — bottom sheet hard escalation warning for backup when wallet has funds and no backup is detected
  • Close button on broadcasting screen — added since the app no longer auto-progresses when autosync is disabled

Privacy & Payjoin

  • Randomized OHTTP relay selection — relay randomly selected per payjoin call via Random.secure() to prevent network fingerprinting
  • Payjoin self-transfer detection — detects self-spent transactions and shows a "Self-transfer" row on confirmation; self-spends bypass payjoin

Internationalization

  • 11 new languages — Arabic, Bulgarian, Bengali, Czech, Greek, Persian, Hindi, Korean, Brazilian Portuguese, Thai, Turkish
  • Detailed German translations — community contributions from @bsn21m
  • Updated translations for new warning and wizard pages

Observability

  • Opt-in error reporting — optional, self-hosted Sentry (disabled by default) - only collects error reports and stack traces, no telemetry, no IP.
  • Detailed Sentry configuration to ensure user privacy
  • No app restart required after providing Sentry consent

Removed / Changed

  • Removed Boltz testnet support
  • Removed Recoverbull sync page
  • Server status page now makes more realistic calls

Bug Fixes

Wallet Core

  • Address index issue — fixed via update to bdk-dart (bdk 2.0)
  • Crash for unknown script transactions
  • Prevent duplicate mnemonic import
  • Mnemonic import freeze/crash
  • Capital letters in mnemonic — no longer accepted (was causing errors)
  • Correct Testnet electrum URLs
  • LWK database initialization — fixed Liquid wallet database init issues
  • Spam create wallet on startup
  • Startup lag — fixed lag during wallet and seed loading on startup
  • Startup error screen — gracefully handles and displays startup failures instead of freezing

Swaps

  • Swap watcher race condition that could cause status update issues
  • MRH swap — uses transaction ID to fully resolve as a swap transaction
  • Swap flow wallet autoselect — prevents self-spends or same-network sends in the transfer flow
  • Amountless invoice handling — throws a more descriptive error for amountless invoices on swaps
  • Background tasks cleanup — removed unnecessary background tasks causing unexpected swap states and LWK db corruption
  • Autoswap notice/warning fixes
  • Testnet fix for recoverbull

Send / Receive

  • LN receive success screen crash fixed
  • Insufficient balance navigation — Continue on send amount page with insufficient funds no longer navigates to confirm page
  • Sell/Pay flow — fixed "Could not fetch fees" bug
  • Route unauthenticated users to login via buy/sell/withdraw

Backup & Security

  • Physical backup verification — fixed backup test status not updating after completing verification
  • Backup-before-PIN safety gate
  • Backup completion flow via FSS Warning — after completing a backup, the warning lands directly on the "Reinstall" title instead of flashing "Backup and Reinstall"
  • Backup wallet warning on home now updates correctly after a backup is complete
  • "Vault created successfully" snackbar no longer covers the "Test Recovery" button

Exchange

  • Exchange statistics — linear progress indicators, integer trade counts, currency conversion, thousands separators
  • CA KYC sell limit — enforced $999 CAD buy/sell limit for Canadian users with limited KYC
  • Argentina recipients
  • Routing to support via "Get Help"
  • Support chat attachments — improved image picker with better permission handling and clearer errors
  • WebSocket reconnect loop — fixed infinite reconnect loop for unauthenticated users

Pricing & DCA

  • Price graph refresh — users can now manually reload Bitcoin prices if automatic loading fails
  • DCA confirmation text color in dark mode
  • DCA UI fixes

Labels & Persistence

  • Labels feature refactor — complete architecture refactor with database migration v11→v12; fixed upsert constraint failures, SQLite concurrency, and multiple related issues
  • Transaction note persistence
  • SQLite migration safety — catch blocks around label migration to prevent crash on failure

Network / Connectivity

  • Custom mempool server — SSL toggle (auto-detected from URL), improved URL parsing/normalization, server status indicators, dark mode fixes, and hidden service support via Orbot
  • Recoverbull Orbot detection — checks if Orbot is actually running on port 9050 instead of relying on user settings, preventing Tor-over-Tor errors

Input & Keyboard

  • iOS price input keyboard — fixed to show correct number pad with decimal settings
  • Keyboard lag — fixed lag when importing mnemonic passphrase or typing in label input fields

Theming

  • Dark theme fixes — QR code backgrounds, PSBT flow, exchange logout sheet, Recoverbull button, custom Electrum server widget, exchange home KYC status card
  • PIN light theme readability
  • Custom fee dark mode
  • Light mode exchange banner
  • Delete logs dark mode fix
  • Swap fees dark/light mode and text color fixes
  • Storage warning screens dark mode background now matches the wizard
  • Fade-to-background gradient no longer covers the title/description above the button
  • Pull to sync loader no longer lands behind the Bull logo

Wizard / Onboarding Polish

  • Removed translation bottom warning sheet in wizard
  • Replaced next button with inline YES / NO continue button in the wizard (reporting program)
  • Transparent chrome so small screens can see there is more to scroll

6.9.108-Internal Release

29 Apr 12:46
6d6c414

Choose a tag to compare

Pre-release

This release is only for testers. It is a proposed fix to the android migration failure issue #1879 .

It does not fix a broken storage, it only ensures that updates are safer for users.

Please reference #1879 (comment) for Test instructions

The changelog stays the same as https://github.com/SatoshiPortal/bullbitcoin-mobile/releases/tag/v6.9.1, with the addition of:

  • Flutter secure storage hybrid strategy without migration
  • Removal of boltz testnet support
  • Prevent duplicate mnemonic import
  • New onboarding wizard
  • Server status page now makes more realistic calls

Update Log

29/04/26 11:31 PM IST : 6.9.102

  • Fixes fss initalization for new installs

30/04/26 10:10 PM IST: 6.9.103

  • Fixes mnemonic import bug causes freeze/crash
  • Route unauthenticated user to login via buy/sell/withdraw
  • Fixes crash for unknown script transactions
  • Fixes routing to support via Get Help
  • Dark mode fix for delete logs
  • Dark/Light mode fix for swap fees

04/05/26 10:01 PM IST: 6.9.104

  • Adds electrum timeout and retry via bdk-dart
  • Text color on swap fees
  • Text color on delete logs

05/05/26 10:01 PM IST: 6.9.105

  • Allows electrum stopGap upto 5000
  • New startup Wizard
  • New Storage Warning Screens
  • Pull to sync does not land loader behind bull logo
  • Fix: Spam create wallet on startup

06/05/26 11:11 PM IST: 6.9.106

  • Dark mode background on the storage warning screens now matches the wizard.
  • Backup warning bottom sheet only shown if balance is above 0
  • After completing a backup, the warning lands directly on the "Reinstall" title instead of flashing "Backup and Reinstall"
    for a few seconds.
  • "Vault created successfully" snackbar no longer covers the "Test Recovery" button.
  • Backup wallet warning on home now updates correctly after a backup is complete
  • Testnet fix for recoverbull
  • fixed: fade-to-background gradient covered the title/description above the button
  • remove translation bottom warning sheet in wizard
  • remove next button and put the YES / NO in the wizard (reporting program) as continue button
  • chrome is transparent so small screen can see there is more to scroll
  • updated translations for new warning and wizard pages
  • updated german translations

08/05/26 11:11PM IST: 6.9.107

  • Fixes Sell/Pay flow bug (Could not fetch fees)
  • Detailed configuration for Sentry logs to ensure user privacy
  • Sentry logs do not require restarting the app after providing consent

09/05/26 10:45 PM IST: 6.9.108

  • Remove recoverbull sync page

6.9.6-fss-rescue

27 Apr 11:58
d65a1c0

Choose a tag to compare

6.9.6-fss-rescue Pre-release
Pre-release

WARNING: This is a build that only performs secure storage rescue for users affected by a failed secure storage initialization.
Only use this release if the support team has recommended it.

6.9.1

21 Apr 11:35
2a85f58

Choose a tag to compare

6.9.1 Pre-release
Pre-release

⏺ New Features

  • Better handling of FSS10 Migration failure on android via FSS hybrid storage — apps that fail to migrate will fallback to legacy storage with a warning on home to backup and reinstall the app
  • Colombia (COP) deposits — new COP payment link deposit flow
  • SINPE receipt on tx details — reusable card on success + details screens
  • Pull-to-refresh on wallet home can be triggered from anywhere on the screen
  • Reproducible builds + dev containers
  • Real-time WebSocket notifications — balance, KYC status, and group membership updates arrive instantly instead of polling every 5 seconds
  • Real-time support chat — support messages appear immediately via WebSocket push
  • Enhanced exchange settings menu — new functional screens: Recipients, Transactions, Default Bitcoin Wallets, App Settings, Secure File Upload,
    Statistics
  • Email notifications toggle — enable/disable email notifications in App Settings
  • Secure file upload — KYC document upload screen with status indicators (Upload, In Review, Accepted)
  • Trading statistics dashboard — buy/sell ratio, trade volumes, trade counts, average prices, and biller statistics
  • Announcement banner improvements — truncated descriptions with ellipsis; tap to open full details in a bottom sheet
  • Preferred currency improvements — exchange home handles empty balance currency; deposit/withdraw/pay screens default to preferred currency
  • Backup warning overlay — bottom sheet hard warning for backup
  • Scam consent warning — explicit consent required before funding exchange account
  • Randomized OHTTP relay selection — relay randomly selected per payjoin call via Random.secure() to prevent network fingerprinting
  • Payjoin self-transfer detection — detects self-spent transactions and shows a "Self-transfer" row on confirmation; self-spends bypass payjoin
  • Close button on broadcasting screen — added since the app no longer auto-progresses when autosync is disabled
  • 11 new languages — Arabic, Bulgarian, Bengali, Czech, Greek, Persian, Hindi, Korean, Brazilian Portuguese, Thai, Turkish
  • Detailed German translations — community contributions from @bsn21m
  • Opt-in error reporting — optional, self-hosted (disabled by default); only collects error reports and stack traces, no telemetry
  • Ledger hardware wallet support

Bug Fixes

  • Fix address index issue via update to bdk-dart (bdk 2.0)
  • Swap watcher race condition — fixed race condition that could cause status update issues
  • MRH swap — uses transaction ID to fully resolve as a swap transaction
  • Swap flow wallet autoselect - prevents self-spends or same network sends in the swap/transfer flow
  • Price graph refresh — users can now manually reload Bitcoin prices if automatic loading fails
  • LN receive success screen crash — fixed UI crash on Lightning receive success screen
  • Insufficient balance navigation — Continue on send amount page with insufficient funds no longer navigates to confirm page
  • Amountless invoice handling — throws a more descriptive error for amountless invoices on swaps
  • WebSocket reconnect loop — fixed infinite reconnect loop for unauthenticated users
  • Exchange statistics — linear progress indicators, integer trade counts, currency conversion, thousands separators
  • Correct DCA confirmation text color in dark mode
  • Support chat attachments — improved image picker with better permission handling and clearer errors
  • CA KYC sell limit — enforced $999 CAD buy/sell limit for Canadian users with limited KYC
  • Argentina recipients fix
  • Labels feature refactor — complete architecture refactor with database migration v11→v12; fixed upsert constraint failures, SQLite
    concurrency, and multiple related issues fixed.
  • Transaction note persistence
  • Physical backup verification — fixed backup test status not updating after completing verification
  • Backup-before-PIN safety gate
  • Keyboard input — fixed price input keyboard on iOS to show correct number pad with decimal settings
  • Keyboard lag — fixed lag when importing mnemonic passphrase or typing in label input fields
  • Prevent using capital letters for mnemonic that was leading to errors
  • Correct Testnet electrum URLs
  • Custom mempool server — SSL toggle (auto-detected from URL), improved URL parsing/normalization, server status indicators, dark mode fixes and hidden service support via Orbot
  • Recoverbull Orbot detection — checks if Orbot is actually running on port 9050 instead of relying on user settings, preventing Tor-over-Tor errors
  • Dark theme fixes — QR code backgrounds, PSBT flow, exchange logout sheet, Recoverbull button, custom Electrum server widget, exchange home KYC status card
  • PIN light theme readability
  • Custom fee dark mode fix
  • DCA UI fixes
  • Light mode exchange banner fix
  • Startup lag fix — fixed lag during wallet and seed loading on startup
  • Startup error screen — gracefully handles and displays startup failures instead of freezing
  • LWK database fixes — fixed Liquid wallet database initialization issues
  • SQLite migration safety — catch blocks around label migration to prevent crash on failure
  • Background tasks cleanup — removed unnecessary background tasks causing unexpected swap states and lwk db corruption
  • Autoswap notice/warning fixes

Acknowledgements

Special thanks to @iosifpeterfi for his contributions to flutter_secure_storage to implement a backup mechanism prior to migration on android and for general consultation on how to handle this issue regarding seed storage. With this backup mechanism we dramatically decrease the risk of data loss.

Huge effort by the rest of the team as well in handling this highly sensitive issue with seed storage and coming up with a workable solution.

6.8.2-fss-hybrid

06 Apr 17:07
05f6775

Choose a tag to compare

6.8.2-fss-hybrid Pre-release
Pre-release

This version uses two forks of the mainline flutter_secure_storage - one targeting v9 and the other targeting the latest v10 with migrateWithBackup that is compatible with v9

For devices that are unable to migrate to v10, the app will fallback to fss v9, recover data from v10 backup and show a warning to the user to backup their wallet and reinstall the app.

A fresh install will initialize v10.

This is a fix to #1879

This release and successive releases will not fix an app with a broken secure storage as a result of failed migration, it will only ensure that devices that have not yet updated are able to either migrate safely or fallback to deprecated storage and give them time to backup their wallet and perform a clean reinstall.

Swap Rescue Tool

18 Mar 10:28
946ac94

Choose a tag to compare

Swap Rescue Tool Pre-release
Pre-release

WARNING: THIS IS NOT A PUBLIC RELEASE. DO NOT RUN THIS RELEASE UNLESS ADVISED TO DO SO BY THE BULL SUPPORT OR DEVELOPMENT TEAM

Secure Storage Rescue II

06 Mar 11:01
931a389

Choose a tag to compare

Pre-release

WARNING: THIS IS NOT A PUBLIC RELEASE. DO NOT RUN THIS RELEASE UNLESS ADVISED TO DO SO BY THE BULL SUPPORT OR DEVELOPMENT TEAM

Expires on 28th March, 2026

Swap-Rescue w/ Liquid Network Path Correction

27 Feb 16:29
05fdd3b

Choose a tag to compare

WARNING: THIS IS NOT A PUBLIC RELEASE! ONLY USE IF ADVISED BY THE SUPPORT TEAM.

BACKUP YOUR WALLET SEED WORDS BEFORE RUNNING THIS BUILD!

This is an update to https://github.com/SatoshiPortal/bullbitcoin-mobile/releases/tag/v6.5.4-swap-rescue for a specific user who was running an older version prior to running the 6.5.4-swap-rescue apk where the liquid wallet was updated to the new network path. Additionally the version is bumped to 6.7.22 because this user had also run the secure storage rescue build and now requires a version above 6.7.21

This build checks the receive wallet ID used and udpates the path to the the correct latest network path.

Secure Storage Rescue

23 Feb 18:21
4bde377

Choose a tag to compare

Secure Storage Rescue Pre-release
Pre-release

WARNING: THIS IS NOT A PUBLIC RELEASE. DO NOT RUN THIS RELEASE UNLESS ADVISED TO DO SO BY THE BULL SUPPORT OR DEVELOPMENT TEAM

Expires on 28th Feb, 2026