Bitcoin uses the UTXO model: Unspent Transaction Outputs. Every transaction consumes one or more existing outputs as inputs and creates one or more new outputs. A wallet's 'balance' is simply the sum of every UTXO it can spend, computed by scanning the ledger, not a number stored in one place.
Each output specifies an amount and a spending condition, usually 'whoever can produce a valid signature for this public key'. To spend an output, the owner constructs a transaction referencing it as an input and provides a digital signature proving control of the corresponding private key, without revealing that key itself.
Because outputs are indivisible, if you want to send less than an input's value, the transaction creates a second output paying the difference back to you (minus the fee). Forgetting to do this, or sending change to the wrong place, permanently loses funds, wallets automate it so it is normally invisible to the user.
Explain more simply
There is no bitcoin 'account balance' stored anywhere. Instead, your wallet holds a pile of unspent pieces from past transactions, each with a specific value.
To pay someone, your wallet picks pieces that add up to enough value, sends the payment amount to them, and sends the leftover back to you as change, just like paying with a banknote and getting change back.
Real-world analogy
A UTXO is like a cash banknote, not a bank balance. You cannot spend half a €20 note directly, you hand it over and receive change.
Key facts
- Bitcoin has no stored account balances; wallets sum unspent outputs (UTXOs) they control.
- A transaction consumes existing outputs as inputs and creates new outputs, including change.
- Fees are paid in sat/vB and depend on transaction size, not on the amount sent.
Common misconception
“Sending bitcoin moves coins out of your wallet file into someone else's.”
Nothing physically moves. A new transaction is broadcast that reassigns which public key can spend a given output; the ledger of who-can-spend-what is updated by consensus, not by transferring a file.[3]
Go deeper
Transaction size is measured in virtual bytes (vbytes), not raw bytes, because SegWit witness data (signatures) is discounted relative to other transaction data. Fees are quoted in satoshis per vbyte (sat/vB), so a transaction with many inputs, each needing its own signature, is larger and costs more than one with fewer inputs, regardless of the amount transferred.
A transaction is invalid unless every input's unlocking condition (the 'scriptSig' or witness) is satisfied and the sum of outputs does not exceed the sum of inputs; any surplus not assigned to an output is claimed by the miner as a fee. Nodes verify all of this independently before relaying or including a transaction in a block.
Quick check
Answer every question correctly (100%) to complete this lesson.
1.What does a Bitcoin wallet's 'balance' actually represent?
2.Why do transaction fees depend on size in vbytes rather than the amount sent?
Counts towards your streak in this browser.
Extra exam questions
Every question here counts towards your accuracy, XP and rank. No guessing: every answer is explained.
Quick check
Answer every question correctly (100%) to complete this lesson.
1.What are the two main components of a Bitcoin transaction?
2.What proves the right to spend a transaction input?
3.What cryptographic technology allows spending without revealing the private key?
4.What does a transaction output specify?
5.What must the sum of a transaction's outputs be relative to its inputs?
6.What is a Bitcoin address derived from?
7.What script type does a typical modern transaction output use to lock funds to an address?
8.Why can a single transaction have multiple inputs?
Counts towards your streak in this browser.
Sources
- Bitcoin developer documentation, bitcoin.org / Bitcoin Optech glossary
- Bitcoin Core documentation, Bitcoin Core project
Reference implementation documentation, including validation and release notes.
