BULL BITCOIN
Finance
Free
Secure And Private Bitcoin Wallet
BULL by Bull Bitcoin is a self-custodial Bitcoin wallet for iOS, designed for secure, private, and efficient management of Bitcoin, Lightning, and Liquid Network transactions. Ideal for both everyday payments and long-term storage, it empowers users to get paid, buy Bitcoin, spend Bitcoin, manage wallets, and securely hold assets with ease. Built on cypherpunk principles, BULL prioritizes user sovereignty, open-source transparency, and trustless operation, integrating cutting-edge technologies to make self-custody safer and simpler without compromising privacy or security. From a single BIP39 seed backup, it creates two interoperable wallets: an Instant Payments Wallet on the Liquid Network for seamless daily Lightning transactions and a Secure Bitcoin Wallet for on-chain payments and robust long-term storage.BULL is Bitcoin-only, segwit-native, and optimized for performance, with no clutter or distractions. It leverages cutting-edge technologies like PayJoin, Liquid’s confidential transactions, and atomic transfers to make self-custody accessible and secure while upholding cypherpunk values of privacy, sovereignty, and decentralization. Free and open-source, BULL is the ultimate platform for managing Bitcoin payments and securing assets for the long haul.
more Just watched the TFTC interview and wanted to say I appreciate the fight you’re mounting in the courts. You should consider taking donations for the legal battle, I’d like to donate if given the option. This is my favorite mobile wallet, and I really think Recover-A-Bull is an incredible concept. It’s my number one go to get people to download and open a wallet. My favorite of the mobile wallets, and looking forward to the continued privacy focused innovations. You guys should market Recover-A-Bull harder by setting up random booths and advertising BTC wallet set up in 90 seconds. Thanks for everything. Tu ne cede malis, sed contra audentior ito.
Just watched the TFTC interview and wanted to say I appreciate the fight you’re mounting in the courts. You should consider taking donations for the legal battle, I’d like to donate if given the option. This is my favorite mobile wallet, and I really think Recover-A-Bull is an incredible concept. It’s my number one go to get people to download and open a wallet. My favorite of the mobile wallets, and looking forward to the continued privacy focused innovations. You guys should market Recover-A-Bull harder by setting up random booths and advertising BTC wallet set up in 90 seconds. Thanks for everything. Tu ne cede malis, sed contra audentior ito.
Perfect wallet. It has all I need. Self custody, lighting, liquid. I can connect it to y own node.Amazing!
Perfect wallet. It has all I need. Self custody, lighting, liquid. I can connect it to y own node.Amazing!
It was rolled out as “The best mobile bitcoin wallet of all time.” It can’t even load balances of existing wallets. With such big talk I expected waaaaay more from this wallet.EDIT: The recent 6.4.0 update fixed this. The wallet now talks to my server and updates balances. It’s got some more tweaks needed, but I wanted to correct this ☝️
It was rolled out as “The best mobile bitcoin wallet of all time.” It can’t even load balances of existing wallets. With such big talk I expected waaaaay more from this wallet.EDIT: The recent 6.4.0 update fixed this. The wallet now talks to my server and updates balances. It’s got some more tweaks needed, but I wanted to correct this ☝️
Truly an incredible wallet made by an incredible team. Very grateful for Bull Bitcoin
Truly an incredible wallet made by an incredible team. Very grateful for Bull Bitcoin
Bull Bitcoin 6.15.0
NEW
- Swap recovery: swaps waiting for a claim or refund now show a Retry button in transaction details. It completes the swap directly on-chain through your own Electrum server, so a stuck swap can be recovered even when the swap provider is unreachable.
- Payjoin controls: Send and Receive each have their own Payjoin switch, off by default. Updating keeps your previous setting. Advanced settings use simple numeric fields, with minimum amounts in sats and session expiry in minutes.
SECURITY AND PRIVACY
- Safer transaction acceleration: before offering to speed up an unconfirmed transaction (Replace-By-Fee), the app checks that the transaction in your history carries valid signatures from your own wallet. This blocks an attack where a malicious Electrum server shows a look-alike transaction that pays the attacker. If the check fails, acceleration is refused and you can report the transaction to support.
- Payjoin requests go through a relay on a different domain from their directory and reject redirects, so your IP address is not exposed to the directory.
- Payjoin 1.2.0 strengthens validation of proposals, fees, amounts and server responses.
RELIABILITY
- Fixed a startup error ("App Init Error") that could affect users updating from older versions: affected devices recover on their first launch of 6.15.0, with no data loss. Database upgrades now run only in the app, each step completes fully or not at all, and an interrupted upgrade or first launch finishes cleanly on the next launch.
- Payjoin now uses new directory and relay servers, replacing one that is shutting down, and shows the Bitcoin QR code faster when a server is unavailable.
- Payjoin results are detected in seconds instead of waiting for a full wallet sync.
- Encrypted vault backup and recovery keep one verified Tor connection across screens, wait until Tor can carry traffic, and give the first onion connection more time.
- When prices are unavailable, Send and Receive offer bitcoin units without fiat amounts instead of showing outdated rates.
- Clearer Payjoin diagnostics in exported logs.
- Updated design components across wallet, send, backup, PIN and settings screens.
TRANSLATIONS
- Improved Italian translations, thanks to @loop-btc.
- Updated German translations, thanks to @bsn21m.
6.15.0 4d ago
## New Features
- **Rebuilt Tor integration**: Tor now runs as an isolated infrastructure package. Key-server connections for encrypted vault backups use isolated Tor sessions, custom onion Electrum servers route through it, transport preferences persist across restarts, and vault screens explain Tor connection progress. External SOCKS proxy routing was hardened.
- **In-app keyboard for recovery phrases**: seed entry replaces the OS keyboard with an in-app keyboard, keeping recovery words away from third-party keyboards; smart punctuation is disabled on the passphrase field.
- **Screen Privacy toggle**: screen-capture and app-switcher privacy protections can be controlled from Settings.
- **Settings search**: Settings are now searchable.
## Security And Privacy
- Kept the recovery phrase out of presentation state during the backup test.
- Added server domain validation, disabled for custom servers by design.
- Reduced what the app writes to the on-device log; logs can be exported for support.
## Reliability And UX
- Fixed fiat-price loading after starting offline, retrying once connectivity returns and when refreshing wallet screens. Wallet sync errors and server warnings are now separately accessible in a swipeable carousel.
- Fixed back navigation through encrypted-vault flows: returning from the key flow reaches Settings, and system back follows nested flow pages.
- Fixed label-file import on iOS.
- Replaced raw developer errors with clear, translated messages across wallet creation, loading, deletion and synchronization, transaction history and details, notes and labels, CSV export, startup, Receive, backup verification, onboarding, hardware-wallet signing (PSBT and Ledger), and Send.
- Moved recovery-phrase derivation off the UI isolate and reduced onboarding completion delays.
- Transaction details gained a copy button for swap order numbers, and label edits now show immediately after leaving details.
- Restyled wallet deletion prompts as bottom sheets, and kept numeric input fields to a single line.
- Improved log diagnostics and the in-app log viewer.
- Reduced idle rendering work.
- Refined the corner radius of the Settings search bar and toast messages, and fixed bottom-sheet content overflowing rounded corners.
- Updated French and German translations and standardized ellipses across locales.
## Bug Fixes
- Fixed a long press on an input field's trailing icon opening the text magnifier.
- Fixed the physical backup verification screen getting stuck on a spinner while the selected wallet loads or when no wallet is available.
- Restored access to Tor settings from Settings and search.
- Improved SeedSigner compatibility: older exports without network info are classified correctly, combined PSBTs are finalized before broadcast and incomplete ones rejected, and watch-only imports report network mismatches and duplicates with clear messages.
- Send reports insufficient funds when the fee does not fit, and rejects coins that became unavailable before broadcast.
- Fixed manual coin selection and the RBF toggle, and corrected RBF fee handling with better Electrum connectivity checks in Settings.
- Fixed Lightning address validation in Send.
- QR imports accept fountain parts with a sequence number above the sequence count.
- The transfer screen pops back instead of closing the app.
6.14.0 Oct 12
This update makes coin control and payments more dependable.
Coin control
• Sends, MAX sends and transfers now spend only the coins you selected
• Stale or unavailable selections are rejected before broadcast
• Clearer errors for frozen balances and insufficient selections
Payments and transfers
• Fixed fee shortfalls in transfers, and failed Payjoins can now be retried
• The Receive QR now updates when Payjoin is toggled off
• Replace-by-fee now prefills a valid replacement fee
• Fixed stale payment-request handling on Send
• Fixed back navigation and transaction details for transfers
Hardware wallets
• Fixed Passport QR scanning and updated import instructions
Security
• Recovery phrases are kept out of app state, and passphrase punctuation is preserved exactly as typed
6.13.1 Sep 2
Payjoin
• Send and receive Payjoin transactions directly from your wallet, with configurable minimums and
automatic recovery of interrupted sessions — even after an app restart.
Wallet Improvements
• Liquid UTXO consolidation: get warned when your wallet approaches confidential-transaction input
limits, with a guided self-transfer to consolidate.
• Smarter recovery phrase entry: BIP39 word suggestions are now checksum-valid, with improved
inline validation and screen-capture protection.
• New Liquid risk disclosures covering custody, privacy, and fees.
• Explore places that accept Bitcoin with the new BTC Map in Settings — no location access
requested.
Wallet Improvements
• Liquid UTXO consolidation: get warned when your wallet approaches confidential-transaction input limits, with a guided self-transfer to consolidate.
• Smarter recovery phrase entry: BIP39 word suggestions are now checksum-valid, with improved inline validation and screen-capture protection.
• New Liquid risk disclosures covering custody, privacy, and fees.
• Explore places that accept Bitcoin with the new BTC Map in Settings — no location access requested.
Security & Privacy
• Hardened transaction review and broadcast: payloads are invalidated if details change.
• PIN retry cooldowns persist across restarts, with re-authentication required before revealing recovery phrases.
• Wallet imports now reject private keys and validate network, descriptor, and ownership.
• Stricter certificate, URL, timeout, and Tor handling.
• Enhanced parsing protections for QR, UR, BBQR, BIP21, and PSBT formats.
• Less sensitive information in logs, and warnings before sending to unconfidential Liquid addresses.
Reliability
• Wallet deletion no longer orphans seeds that block reimport.
• Startup failures can now share or export logs.
• Translations completed across 26 languages.
6.13.0 Aug 21
• Coins view — See every coin (UTXO) in your Bitcoin wallet with its amount, label, and confirmation status. Freeze coins you don't want to spend; frozen coins are excluded from all transactions until you unfreeze them.
• Coldcard NFC — Import and sign with Coldcard Q and Mk4 over NFC. Fully airgapped, no cables or SD cards.
• BitBox02 Nova on iPhone — Pair, import, and sign over Bluetooth. BitBox02 support is now available to everyone.
• Swap recovery — Swaps can now be restored and rescued even if the app loses its local data, using a dedicated swap key derived from your wallet seed.
• General reliability improvements in swaps and liquid wallet
• Fees below 1 sat/vB — Take advantage of a quiet mempool with fractional fee rates.
• Fixes — QR scanning restored on iOS; better handling of unusual payment QR codes; Lightning invoice memos shown before sending; sync indicator improvements; dark-mode fixes.
6.12.2 Jul 15
• Coins view — See every coin (UTXO) in your Bitcoin wallet with its amount, label, and confirmation status. Freeze coins you don't want to spend; frozen coins are excluded from all transactions until you unfreeze them.
• Coldcard NFC — Import and sign with Coldcard Q and Mk4 over NFC. Fully airgapped, no cables or SD cards.
• BitBox02 Nova on iPhone — Pair, import, and sign over Bluetooth. BitBox02 support is now available to everyone.
• Swap recovery — Swaps can now be restored and rescued even if the app loses its local data, using a dedicated swap key derived from your wallet seed.
• General reliability improvements in swaps
• Fees below 1 sat/vB — Take advantage of a quiet mempool with fractional fee rates.
• Fixes — QR scanning restored on iOS; better handling of unusual payment QR codes; Lightning invoice memos shown before sending; sync indicator improvements; dark-mode fixes.
6.12.1 Jul 9
• Smarter Wallet Sync
• Export transaction history to CSV by date range
• Improved error handling in Send and Transfer
• Optimisations to electrum client
• Better warnings and translations
• Dismissible number pads
6.11.1 Jun 15
New Features
Wallet & Storage
New onboarding/startup wizard
Ledger hardware wallet support
Increased Electrum stopGap — now allows values up to 5000
Wallet Support Chat
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
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 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)
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
Transfers
Transfer watcher race condition that could cause status update issues
MRH transfer — uses transaction ID to fully resolve as a transfer transaction
Transfer 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 transfers
Autotransfer 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
Backup & Security
Physical backup verification — fixed backup test status not updating after completing verification
Backup-before-PIN safety gate
Backup wallet warning on home now updates correctly after a backup is complete
"Vault created successfully" snackbar no longer covers the "Test Recovery" button
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, Recoverbull button, custom Electrum server widget
PIN light theme readability
Custom fee dark mode
Light mode exchange banner
Delete logs dark mode fix
Transfer fees dark/light mode and text color fixes
Fade-to-background gradient no longer covers the title/description above the button
Pull to sync loader no longer lands behind the Bull logo
6.10.6 May 20
Fixes startup issue regarding secure storage access
6.5.4 Jan 13
Secure Storage UpdateMinor Theme Fixes
6.5.3 Jan 10
Autoswap triggered only after warning acknowledgement
Minor fixes in Send
6.5.2 Jan 8
- Improved Labelling
- Price Graph
- Dark Mode (Experimental)
- Localizations (Experimental)
- Various Bug Fixes
- Custom Mempool Server
- Autoswap On By Default
6.5.0 Jan 7
Secure Storage Patch (Fixes Red Screen Error)
6.4.1 12/18/2025
Background Sync & Pull to SyncNew Onboarding Flow - Allows setting custom electrum on startupBitcoin Electrum via OrbotCustom Recoverbull Server OptionImproved Electrum Server Configuration options and URL HandlingNew Hardware Support: Jade & PassportVarious Minor Bug Fixes
6.4.0 12/02/2025
Verify amounts before transfer
Add 3 sats to liquid transfer refund to ensure we do not go below 0.1 sats/byte fee and fail to broadcast
Show transfer to external wallets in transaction list
Proper transition to success screen on send flow
6.3.8 11/18/2025
Fix in receive transfer status update
Always allow max and disable recieve exact amount if max enabled
6.3.5 11/16/2025
More stability in transfers
Minor UI Updates
6.3.4 11/11/2025
More stability in Transfers
6.3.3 11/10/2025
Ark prototype improvements
Transfer improvements
Bip329 labels import/export
Recoverbull integration rewritten
Address over-generation bug fix
Various bug fixes and improvements
6.3.0 11/05/2025
Input formatter in swaps for BTC values with decimals
Duplicate watch only wallet entries is Transfer flow
Complete transfer without recieveTxid should retry
Better background quality and correct orientation
Fix in PaymentMethod enum preventing OrderSummary parsing
Ark v8
Default currency is now USD
Add support to external descriptors
6.2.1 10/22/2025
Various Minor Fixes
6.1.0 10/17/2025
Send, Receive, Transfer between wallets, Payjoin, Liquid, Hardware Support (Coldcard, Passport, Ledger)
6.0.0 10/14/2025
Fixes in KYC & E-TransferMinor UI Fixes
5.4.5 09/29/2025
Bull Bitcoin 6.15.0
NEW
- Swap recovery: swaps waiting for a claim or refund now show a Retry button in transaction details. It completes the swap directly on-chain through your own Electrum server, so a stuck swap can be recovered even when the swap provider is unreachable.
- Payjoin controls: Send and Receive each have their own Payjoin switch, off by default. Updating keeps your previous setting. Advanced settings use simple numeric fields, with minimum amounts in sats and session expiry in minutes.
SECURITY AND PRIVACY
- Safer transaction acceleration: before offering to speed up an unconfirmed transaction (Replace-By-Fee), the app checks that the transaction in your history carries valid signatures from your own wallet. This blocks an attack where a malicious Electrum server shows a look-alike transaction that pays the attacker. If the check fails, acceleration is refused and you can report the transaction to support.
- Payjoin requests go through a relay on a different domain from their directory and reject redirects, so your IP address is not exposed to the directory.
- Payjoin 1.2.0 strengthens validation of proposals, fees, amounts and server responses.
RELIABILITY
- Fixed a startup error ("App Init Error") that could affect users updating from older versions: affected devices recover on their first launch of 6.15.0, with no data loss. Database upgrades now run only in the app, each step completes fully or not at all, and an interrupted upgrade or first launch finishes cleanly on the next launch.
- Payjoin now uses new directory and relay servers, replacing one that is shutting down, and shows the Bitcoin QR code faster when a server is unavailable.
- Payjoin results are detected in seconds instead of waiting for a full wallet sync.
- Encrypted vault backup and recovery keep one verified Tor connection across screens, wait until Tor can carry traffic, and give the first onion connection more time.
- When prices are unavailable, Send and Receive offer bitcoin units without fiat amounts instead of showing outdated rates.
- Clearer Payjoin diagnostics in exported logs.
- Updated design components across wallet, send, backup, PIN and settings screens.
TRANSLATIONS
- Improved Italian translations, thanks to @loop-btc.
- Updated German translations, thanks to @bsn21m.
more Version 6.15.0 4d ago
Data Not Collected The developer does not collect any data from this app.