UTXO
Also called: unspent transaction output, unspent output, UTXO set, UTXOs, coins, outpoint.
A UTXO (unspent transaction output) is an amount of bitcoin locked to a script and not yet spent. A wallet's balance is the sum of its UTXOs.
A UTXO, or unspent transaction output, is a chunk of bitcoin that a transaction created and nobody has spent yet. Bitcoin doesn't keep account balances: a wallet's balance is simply the total of the UTXOs its keys can unlock.
How UTXOs work
Every transaction output has two parts: an amount in satoshis and a locking script (the scriptPubKey). An output is identified by its outpoint: the TXID of the transaction that created it plus its output index, 36 bytes in total.
A transaction always spends whole UTXOs. To pay 0.3 BTC from a 0.5 BTC UTXO, a wallet uses the full 0.5 BTC as an input and creates two outputs: 0.3 BTC to the recipient and the rest, minus the fee, back to itself as change. The spent UTXO disappears and the new outputs become UTXOs.
Every full node keeps the current set of all UTXOs, the UTXO set, to check that new transactions only spend coins that exist and haven't been spent. BIP 30 added a rule against duplicate transactions that would overwrite outputs that were not yet fully spent.
Why it matters
- Fees. Each input adds size, so many small UTXOs make transactions bigger and more expensive (see vbyte).
- Privacy. Spending several UTXOs together suggests they share an owner. CoinJoin and payjoin work against that assumption.
- Signing. Hardware wallets need details of the UTXOs they spend. PSBTs (BIP 174) carry them, and Taproot signatures (BIP 341) commit to the amounts of all spent outputs, so a signer can't be misled about the fee.
- Dust. Very small UTXOs can cost more to spend than they hold; see dust and the disposal method proposed in BIP 451.