9.1 Introduction
Building a Bitcoin wallet isn’t just about cryptography or clean architecture. At the product level, you must translate Bitcoin’s real constraints into an experience normal people can actually survive without losing their money. Bitcoin is powerful, but unforgiving. Users are human: they forget passwords, ignore warnings, fall for scams. Wallet product design must balance safety, usability, education, and empowerment. This module will cover how to design:- Onboarding flows
- Backup flows
- Receiving flows
- Sending flows
- Fee handling
- Transaction tracking
- Privacy protections
- Recovery processes
9.2 First principles for wallet UX
9.3 Designing onboarding
The first user experience is critical. At onboarding, users must:- Generate a seed phrase.
- Understand its critical importance.
- Backup securely before they can receive bitcoin.
- Welcome → Explain Bitcoin wallet basics
- Generate Seed → Show 12 or 24 words
- Backup Flow → User must record the seed
- Seed Verification → User must re-enter certain words to continue
- Wallet Ready → Only now allow address generation
9.4 Designing backup flows
Backup must be serious, unavoidable, and verifiable. Backup education must explain:- The seed phrase is not recoverable by your company.
- The seed phrase must never be shared with anyone.
- The seed phrase must be written down or secured somewhere offline.
- Pick 3 random words and ask the user to select the correct ones.
- Ask for specific word positions (e.g., “Enter word 5”).
9.5 Designing receiving flows
When a user wants to receive bitcoin:- Display a new Bitcoin address (QR code + text).
- Rotate address after it is used for a transaction.
- Label the address internally if needed (e.g., “Savings,” “Payment from Amina”).
- Notify user upon receipt of incoming transaction.
9.6 Designing sending flows
When a user wants to send bitcoin:- Show clear fields: amount, destination address, optional label.
- Validate destination address format immediately (catch typos).
- Allow users to set the fee: Fast, Normal, Economy.
- Display estimated confirmation time based on fee level.
- Confirm sending action clearly.
- Warn if users try to send with extremely low fees.
- Double-check if sending large amounts.
9.7 Handling fees
Because Bitcoin’s fee market fluctuates: Always fetch dynamic fee estimates. Offer simple options:- Fast (next block)
- Normal (1–3 blocks)
- Economy (3+ blocks)
9.8 Handling transaction confirmations
After sending bitcoin:- Show pending transactions immediately.
- Update status dynamically:
- Pending (0 confirmations)
- Confirming (1–5 confirmations)
- Finalized (6+ confirmations)
- Notify user when confirmations progress.
- Offer “Speed up” (RBF fee bumping) if supported.
- Warn clearly if stuck beyond reasonable times.
9.9 Privacy protection defaults
Wallets should automatically:- Rotate addresses after every incoming payment.
- Avoid showing user’s full balance publicly if not necessary.
- Avoid linking multiple transactions together unless explicitly grouped by the user.
- Encourage use of SegWit and Taproot addresses (better privacy + lower fees).
9.10 Designing recovery flows
When users reinstall or change devices:- Offer clear “Recover Wallet” option.
- Require full seed phrase entry.
- Guide user gently through recovery.
- Welcome → “Recover existing Bitcoin wallet”
- Enter Seed Phrase
- Derive Wallet Keys
- Scan Blockchain or Register Addresses
- Show Wallet Dashboard
9.11 Example end-to-end user journey
Scenario: Kojo in Accra installs a Bitcoin wallet.- Kojo downloads the app.
- Kojo generates a 12-word seed phrase.
- Kojo backs up his seed, verifies 3 random words.
- Kojo receives 0.1 BTC from a friend using a fresh SegWit address.
- Kojo sees 0.1 BTC balance after 3 confirmations.
- Kojo sends 0.05 BTC to his cousin Amina.
- Wallet offers fee options. Kojo chooses “Fast” (~10 minutes).
- Transaction is broadcasted and confirmed.
- Kojo installs app on a new phone six months later.
- Kojo recovers wallet using his seed phrase, regains access to his Bitcoin.
9.12 Summary of module 9
Real Bitcoin wallet UX must:- Force and verify backup at onboarding.
- Rotate addresses automatically.
- Explain sending and fees clearly and responsibly.
- Show transaction status accurately.
- Protect user privacy by default.
- Handle stuck transactions intelligently.
- Offer clean, trustworthy recovery flows.