Bitcoin manages balances not as account totals but as sums of unspent transaction outputs (UTXOs). The coin model's principles and its privacy and security advantages.
import Mermaid from '@components/shortcodes/Mermaid.astro'; import InfoBox from '@components/shortcodes/InfoBox.astro'; import CompareTable from '@components/shortcodes/CompareTable.astro'; import ChartBar from '@components/shortcodes/ChartBar.astro'; import ChartLine from '@components/shortcodes/ChartLine.astro'; import KidsQuiz from '@components/shortcodes/KidsQuiz.astro'; import KidsStory from '@components/shortcodes/KidsStory.astro'; import KidsCert from '@components/shortcodes/KidsCert.astro';
UTXO (Unspent Transaction Output) is the fundamental way Bitcoin manages balances. Rather than recording an "account balance" like a bank, Bitcoin calculates your balance as the sum of individual outputs that have not yet been spent.
0.5 BTC"] U2["UTXO B<br/>0.3 BTC"] end subgraph Transaction TX["Transaction"] end subgraph Outputs O1["Recipient<br/>0.7 BTC"] O2["Change<br/>0.0999 BTC"] end U1 --> TX U2 --> TX TX --> O1 TX --> O2 FEE["Fee: 0.0001 BTC"] TX -.-> FEE style TX fill:#f7931a,stroke:#f7931a,color:#000 style FEE fill:none,stroke:none,color:#8b949e`} />
Think of a cash transaction. If your wallet holds two ¥10,000 notes and one ¥5,000 note, your balance is not a single number "¥25,000" - it is the sum of three separate bills. Bitcoin works the same way.
When a Bitcoin transaction occurs:
For example, if someone with a 0.7 BTC UTXO sends 0.3 BTC:
Ethereum uses a bank-like account balance model. Bitcoin chose the seemingly more complex UTXO model for good reasons:
The number and size of your UTXOs directly affect fees:
Desktop wallets like Sparrow Wallet provide features to inspect and manage individual UTXOs.