Skip to content
buybitcoinsmart

Glossary / Transactions & fees

UTXO

Also known as Unspent transaction output.

Definition
A UTXO is one unspent chunk of bitcoin sitting at an address, created whole by an earlier transaction and spendable only in full, never in part.

Bitcoin has no accounts and no balances. Every node instead tracks a live set of unspent outputs, and your wallet's balance is just the sum of the ones it holds keys for. Spending destroys the coins you pick and mints new ones, which is why moving 100,000 satoshis can cost more than moving 10,000,000.

How it works

The ledger is a collection of coins, not a table of account totals. Each output records two things: an amount in satoshis, stored as an eight byte number, and a locking script naming what has to be presented to unlock it. Until something spends it, that output stays in the unspent set, which every full node holds and updates block by block.

A spend is destruction followed by creation. Your wallet picks whole outputs as inputs, proves it can unlock them, and writes fresh outputs. Nothing is subtracted in place, so paying 0.3 BTC out of a 1 BTC coin means creating a 0.3 coin for the payee and a change coin of roughly 0.7 for yourself. The coin you started with is gone from the set permanently, and two entries stand where one stood.

Bitcoin Core keeps the whole set in a LevelDB database called chainstate and caches part of it in memory, with -dbcache defaulting to 1,024 MiB, or 450 on machines with less than 4 GiB of RAM. That set, not the block archive, is what a node consults to answer the only question that matters when a payment arrives: does this input point at something that still exists? A pruned node can discard hundreds of gigabytes of old blocks and still validate perfectly, because the unspent set is the state.

Two curiosities live at the edges. The 50 BTC paid to the coinbase of the genesis block on January 3, 2009 was never written into the database, so it can never be spent. And in 2010, before BIP30 was enforced, two coinbase transactions duplicated earlier ones and overwrote them, erasing 100 BTC from the set; the rule forbidding duplicate transaction identifiers exists because of those blocks.

Freshly mined coins also arrive locked. A coinbase output cannot be spent for 100 blocks, roughly 16 hours, which is the protocol's own hedge against short chain reorganizations.

Why this matters when you buy bitcoin

Every withdrawal from an exchange creates exactly one coin in your wallet, so the shape of your holdings is decided by how often you press that button. A weekly buy withdrawn weekly leaves you with 52 coins after a year; the same buying withdrawn quarterly leaves four. Swan and River both structure recurring purchases around this, firing withdrawals on a threshold rather than on every order, and the reason is arithmetic: each of those coins later costs about 68 virtual bytes of block space to spend.

The second consequence is provenance. A coin is not anonymous cash. It carries the history of the transaction that made it, and a withdrawal from any identity-verifying platform, which covers nearly every exchange reviewed here, produces a coin documented as yours in a compliance database. Purchases through Relai, which delivers straight to your own wallet, land with the same paper trail. Keeping such coins apart from coins acquired elsewhere is possible only because they are separate objects to begin with.

Third, restoring a wallet does not restore coins. A seed phrase regenerates keys; the software then has to search the chain for outputs those keys can unlock. Use an unusual derivation path, or restore into software that does not check your address type, and the coins sit safely in the unspent set while your balance reads zero. Keeping an output descriptor alongside your seed words is what prevents that afternoon of panic.

Following one 0.02 BTC purchase through the set

Buy 0.02 BTC on Kraken and withdraw it. The exchange batches your payout with other customers, and one output of that batch, worth 2,000,000 satoshis, is locked to your address. Your wallet now holds a single coin.

Two months later you pay someone 500,000 satoshis while the next-block rate is 5 sat/vB. Spending one native SegWit input and creating two outputs takes about 141 virtual bytes, so the fee is 705 satoshis. Three things happen at once: the 2,000,000 satoshi coin leaves the unspent set, a 500,000 satoshi coin appears for the recipient, and a 1,499,295 satoshi change coin appears at a fresh address your wallet controls.

Your balance moved from 2,000,000 to 1,499,295 satoshis. The global set grew by one entry, which is the quiet cost of every payment anyone makes and the reason nodes need a database rather than a spreadsheet.

UTXO vs transaction output

Every UTXO is a transaction output; most transaction outputs stopped being UTXOs long ago. An output is a permanent line of history, still readable in the block that carried it a decade later. A UTXO is a claim on the present. The instant someone spends an output it drops out of the unspent set while remaining in the chain forever, and that gap is why a node can throw away old blocks but never the current state.

UTXO vs dust

Dust is a UTXO with an economics problem, not a different kind of object. Membership in the unspent set says nothing about whether a coin is worth moving. A 600 satoshi output is exactly as valid as a 6 BTC output, but at 30 sat/vB the input that spends it costs about 2,040 satoshis, more than three times what it holds. That is why a wallet can show a balance you cannot fully spend.

Not to be confused with

Frequently asked questions

Why can my wallet show a balance it will not let me send in full?

Because the balance is a pile of separate coins, and sending all of them means paying for every input. If some coins are small enough that the fee to spend them exceeds their value, the wallet leaves them behind rather than losing money on the move.

Is a UTXO the same thing as an address?

No. An address is a lock, and the same address can hold many coins or none. A UTXO is one specific coin sitting behind a lock, identified by the transaction that created it and its position in that transaction.

Do lots of small coins actually cost me money?

Yes, at spending time. Each native SegWit input adds roughly 68 virtual bytes, so a wallet holding thirty crumbs pays for thirty inputs when it finally spends them, and that bill lands at whatever fee rate happens to be current.

Read next

Related terms

More in Transactions & fees