BTC—ETH—SOL—XRP—BNB—ADA—DOGE—TRX—LINK—AVAX—DOT—LTC—
Live

What is a UTXO? How Bitcoin tracks coins without accounts

A UTXO is an unspent piece of bitcoin your keys can spend. Bitcoin keeps no account balances, so your wallet adds up its UTXOs to show a total. Here is how the model works, why it sets your fee, and how it differs from Ethereum.

By Zain

Published · 5 min read

A UTXO, short for unspent transaction output, is a piece of bitcoin that someone received and has not yet spent. Bitcoin keeps no account balances. The figure your wallet shows is simply the sum of the UTXOs your keys can unlock. Spend one, and it is gone, swapped for brand new outputs.

How a UTXO is created and spent

Every bitcoin transaction has at least one input and one output, according to Bitcoin's developer documentation. An input points back to an earlier output and spends it. That earlier output is a UTXO, and it can only be spent once. Every full node keeps the complete set of these unspent outputs and checks each new payment against it, which is what stops the same bitcoin being spent twice.

This is the part that trips people up. You cannot spend half of a UTXO. The whole thing has to be used as an input, and any amount left over comes back to you as a new output, your change.

Blockstream's education pages walk through a worked example. Say you hold a single output worth 0.30 BTC and you want to send 0.25 BTC. The full 0.30 goes in. The recipient gets 0.25, roughly 0.0499 returns to you as change, and the small remainder pays the miner. Your original output is now destroyed, and two fresh ones exist in its place.

Think of a $20 note. You buy a $12 lunch, hand over the whole note, and take $8 in change. You never tear the note in half. Bitcoin works the same way, except its notes can be any size.

Why your wallet has no stored balance

Bitcoin stores no balance for you anywhere. Your wallet works it out. As Blockstream puts it, the number on screen means the software has added up every UTXO your private keys can unlock.

Picture three separate outputs: 0.5 BTC, 0.3 BTC and 0.05 BTC. Your wallet reads them, sums them, and shows 0.85 BTC. Those are three distinct pieces, not one pooled balance. This is also why self-custody matters so much: whoever holds the keys controls the outputs, and nobody else can move them.

People call them coins. There are no coins. There are only outputs sitting on the public ledger, each one waiting for a valid key to spend it.

UTXO model versus the account model

Ethereum does it differently. It uses an account model, where each account has a balance field, defined in Ethereum's documentation as the number of wei owned by that address. The network keeps a single running state and adjusts that balance up or down. There are no change outputs to manage.

Bitcoin rebuilds value from discrete pieces every time. An account model edits one number. The UTXO model retires old outputs and mints new ones with each payment.

Each design buys something. The account model is simpler for smart contracts, because a program can read and change a balance in one place. The UTXO model lets every output be checked on its own, which keeps Bitcoin's rules tight and its scripting deliberately limited. That trade, flexibility for simplicity, is a big reason complex applications grew up on Ethereum rather than on Bitcoin.

How your UTXOs decide what you pay

Your fee depends on which UTXOs your wallet spends. Bitcoin Optech calls this coin selection, the method a wallet uses to choose which of its UTXOs to spend in a transaction. The choice is not cosmetic. It sets the size of the transaction, and size sets the fee.

Fees are charged on the byte size of the signed transaction, per the developer documentation, not on the amount you send. Each input adds bytes. Spend ten small outputs to make one payment and you pay for a large transaction. Spend one output of the right size and you pay far less. For how this plays out when the network is busy, see our guide to how a bitcoin transaction works.

Early wallets simply spent their oldest outputs first. As fees climbed, many switched to algorithms that try to keep transactions small, Optech notes. The value you do not assign to an output is not lost. It goes to the miner as the fee.

Consolidation, dust and privacy

When fees are low, some holders combine many small outputs into one. This is consolidation, and it buys a cheaper transaction later, because the next spend needs fewer inputs. Tiny outputs worth less than they would cost to spend are called dust, and they can sit unused in a wallet for years.

The model shapes privacy too. Optech points out that careful coin selection can help on-chain privacy by avoiding outputs linked to earlier, unrelated payments. Spend two outputs together and you tell the world they share an owner.

Here is the catch. Bitcoin is often praised as private, yet every output and every amount sits in plain view on the ledger. What the chain does not show is names. It records addresses and values, and anyone can read them.

What the UTXO model does not do

The UTXO model is a bookkeeping system, nothing more. It does not hide who you are, it does not stop you overpaying through clumsy coin selection, and it does not protect a wallet whose keys have leaked. Those are separate problems with separate fixes.

Understand the model and much of bitcoin stops being mysterious. The fees, the change, the privacy limits: they all follow from one idea. There are no balances, only outputs waiting to be spent.

Frequently asked

What does UTXO stand for?

UTXO stands for unspent transaction output. It is a piece of bitcoin that was received in a past transaction and has not been spent since. Your wallet balance is just the total of all the UTXOs your keys can unlock, added up by the software each time.

Can you spend part of a UTXO?

No. A UTXO has to be spent in full. If it is worth more than you want to send, the extra comes back to you as a new output called change. This is why one simple payment often creates two outputs on the chain, one to the recipient and one back to you.

Does Ethereum use UTXOs?

No. Ethereum uses an account model, where each address has a single balance the network adjusts directly. Bitcoin instead tracks many separate unspent outputs and rebuilds your balance from them. Both record who owns what, but they store it in very different ways.

Sources, and what is behind them

  1. Transactions (Developer Guide), Bitcoin ProjectDocumentation
  2. What are UTXOs?, BlockstreamDocumentation
  3. Accounts, Ethereum FoundationDocumentation
  4. Coin Selection, Bitcoin OptechDocumentation