Bitcoin 101 — Initiate · Lesson 1 of 5

Bitcoin's mental model — UTXOs, sats, finality

5 min · read

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:

  1. Picks one or more of your UTXOs that together cover the amount + fee
  2. Builds a new transaction that spends those UTXOs entirely
  3. Creates an output for the recipient (the amount they receive)
  4. Creates a "change" output back to your address (the leftover, minus the fee)
  5. 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