Home › Glossary › UTXO

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.

BIPs that define UTXO

  • BIP 30: Duplicate transactions: Deployed. Added a rule forbidding a block from including a transaction with the same ID as an earlier one whose outputs are not fully spent. Such duplicates can overwrite earlier coins and make them…
  • BIP 174 (PSBT): Partially Signed Bitcoin Transaction Format: Deployed. Defines PSBT (Partially Signed Bitcoin Transaction), a standard file format for a transaction that is still collecting signatures. It lets different wallets, hardware devices, and co-signers pass a…
  • BIP 341: Taproot: SegWit version 1 spending rules: Deployed. Taproot introduces a new kind of Bitcoin output that can be spent either with a single signature or by revealing just one of many possible alternative spending conditions, kept hidden in a tree…
  • BIP 451: Dust UTXO Disposal Protocol: Draft. Specifies a standard way for wallets to get rid of 'dust', tiny unwanted amounts often sent to track users, by spending them entirely as miner fees. Doing so carefully, without mixing the dust with…

Related terms

  • TXID: A TXID (transaction ID) is the 32-byte hash that identifies a Bitcoin transaction, shown as 64 hex characters in wallets and block explorers.
  • Satoshi (sat): A satoshi (sat) is the smallest unit of bitcoin: one hundred-millionth of a bitcoin, or 0.00000001 BTC. 1 BTC = 100,000,000 sats.
  • Dust: Dust is a bitcoin output so small that spending it would cost more in fees than it's worth. Nodes don't relay transactions that create it by default.
  • CoinJoin: A CoinJoin is one transaction that combines inputs from several people, usually with equal-value outputs, so observers can't tell who paid whom.
  • PSBT: A PSBT (Partially Signed Bitcoin Transaction) is the standard format, from BIP 174, for passing a not-yet-signed transaction between wallets and signers.

Learn more

Guides