Bitcoin is older than every other chain in the wallet, and the differences from Ethereum's account model are the source of most confusion. Three things to internalise:
UTXOs, not balances
Ethereum tracks balances. Bitcoin tracks unspent transaction outputs (UTXOs) — discrete coins of varying size, each created by a previous transaction. Your "balance" is just the sum of the UTXOs your address controls.
When you send Bitcoin, the wallet:
- Picks one or more of your UTXOs that together cover the amount + fee
- Builds a new transaction that spends those UTXOs entirely
- Creates an output for the recipient (the amount they receive)
- Creates a "change" output back to your address (the leftover, minus the fee)
- Signs + broadcasts
The selection is non-trivial — picking too few large UTXOs wastes privacy; picking too many small ones inflates fees. The wallet uses a simple "largest-first" algorithm by default; sophisticated branch-and-bound coin selection lands in a follow-up sprint.
Sats and BTC
1 BTC = 100,000,000 satoshis (sats). The wallet displays both. The ledger stores sats — never floating-point BTC — to dodge the rounding-error footgun.
A useful intuition: at €100k/BTC in 2026 prices, 1 sat ≈ €0.001 (one tenth of a cent). 100 sats ≈ €0.10. 1,000 sats ≈ €1. Most Lightning payments are 1k-100k sats.
Confirmations and finality
Bitcoin produces a block roughly every 10 minutes. A transaction is "confirmed" once it's in a block — but a single confirmation can be reversed by a chain reorganisation (in practice, rare beyond the most recent block but it has happened).
The wallet's policy:
| Send amount | Confirmations required |
|---|---|
| ≤ €100 | 1 |
| ≤ €1,000 | 3 |
| > €1,000 | 6 |
These are the same thresholds most exchanges use. Below €100, treating 1-conf as final is fine. Above €1k, wait the hour.
Lightning channel state is final the moment your counterparty acknowledges; the on-chain confirmation only matters when a channel closes.
What the wallet does for you
When you receive Bitcoin on-chain:
- The wallet polls Esplora every 30 seconds for the address
- New UTXOs surface in your balance with the appropriate "pending" indicator
- Once the configured confirmation threshold is reached, they're "spendable" in the UI
When you send:
- Coin selection runs locally (no external service sees which UTXOs you control)
- A PSBT (Partially-Signed Bitcoin Transaction) is built
- The wallet signs it locally with your BIP-84 key (the same XRPL mnemonic drives this; one seed, four chain families)
- Broadcast goes through the configured Esplora endpoint
What you commit to with this certification
- One Bitcoin address per Gopnik account, BIP-84 native-segwit
- Sats, not BTC, are the unit of accounting under the hood
- Confirmations are graded by amount — bigger transfers wait longer
- The XRPL mnemonic is the recovery; the wallet derives the Bitcoin key on first need