What is a UTXO, and why does Bitcoin track money this way?
Bitcoin stores no balances, only chunks called UTXOs. That's why sending BTC hands you a new address and a fee set by your deposit history.
A UTXO — an unspent transaction output — is a discrete chunk of bitcoin you've received and haven't spent yet. Bitcoin has no account balances anywhere in it. What your wallet calls a balance is just the sum of your UTXOs, which is why sending 0.1 BTC can generate a brand-new address you've never seen and a fee that depends less on the amount than on how many chunks you're spending. This guide covers the model, what it changes in practice — change addresses, fees and dust — and how to keep your UTXOs healthy.
Last updated: August 2026
What is a UTXO?
A UTXO is an output from a past transaction that nobody has spent yet. Take the acronym apart, the way Trust Wallet's explainer does: a transaction moves value, an output is a specific amount that transaction created, and unspent means that amount hasn't been used as the input to a later transaction.
The part that trips people up is where the money sits. As learnmeabitcoin puts it, "bitcoins don't 'live' inside addresses" — they exist inside outputs, and an address is just the lock on an output. Your balance is a calculation your wallet runs, not a number stored on the blockchain.
If you hold BTC in a multi-chain app like Coin98 Super Wallet, the UTXO accounting happens under the interface. Bitcoin is one of the 150+ networks the wallet manages, and each deposit you receive arrives as its own separate UTXO rather than being added to a running total. If Bitcoin itself is new to you, our beginner's guide to how Bitcoin works covers the layer beneath this one.
The UTXO set: what every node actually stores
Every full node keeps the complete list of unspent outputs, called the UTXO set, and uses it for two jobs: confirming that a new transaction spends outputs that exist and haven't already been spent, and adding up what any address controls.
The set is large. In its UTXO Set Report snapshot at block 892,385 on April 14, 2025, mempool.space counted 173.19 million UTXOs occupying about 11 GB on disk under default node settings.
How a transaction spends and creates UTXOs
A transaction consumes UTXOs as inputs and creates new UTXOs as outputs. That's the whole machine. Each input points at one specific earlier output using an outpoint — the transaction ID plus the output's index number, written TXID:VOUT — and proves ownership with a signature.
The rule that surprises everyone: a UTXO has to be spent in full. River's framing is the clearest available — "you can't pay someone $5 by ripping a $10 bill in half". You hand over the whole bill and take change back.
So a typical send looks like this:
- You want to send 0.03 BTC. Your wallet holds UTXOs of 0.2, 0.15, and 0.17 BTC.
- Your wallet picks one — say the 0.15 BTC UTXO — as the input. That step is called coin selection.
- It creates two outputs: 0.03 BTC to the recipient, and roughly 0.12 BTC back to you as a change output.
- The gap between input value and output value is the miner fee.
The 0.15 BTC UTXO is now spent and gone from the UTXO set. In its place sit two new UTXOs, one of which is yours. When you send BTC from Coin98 Super Wallet, that's what the confirmation screen is describing, even though it shows you only the amount and the fee.
One transaction can have many outputs, which is what makes batching possible. A multi-send to several addresses at once costs less than the same payments sent separately, because they share one set of inputs and one lot of transaction overhead.
What the model changes in practice
Three things, and all three catch people out: an unfamiliar address appears after you send, your fee tracks your deposit history rather than your payment, and some UTXOs end up too small to be worth spending at all.
Why your wallet gave you a brand-new address
Nothing is lost — that new address is yours, and it holds your change. This is the most common panic in Bitcoin, and the Unchained help article on change addresses exists because so many people hit it. The change output is controlled by the same keys as the rest of your wallet.
It looks alarming on a block explorer because of the spend-in-full rule. Send 0.001 BTC from a 1 BTC UTXO and the explorer shows 1 BTC leaving and 0.999 BTC arriving at an unfamiliar address. Your wallet generated that address, holds its key, and counts the balance.
Fresh change addresses are a privacy default, not an accident. Reusing one address publishes your entire history at a single point. It's a partial defense, though: chain analysis firms cluster addresses precisely by tracing change outputs, which is why some users turn to techniques like CoinJoin that combine UTXOs from several people into one transaction.
Why your fee depends on your UTXOs, not just the amount
Bitcoin fees are priced by transaction size in bytes, not by the value being moved. Every input you spend adds bytes, so a wallet full of small UTXOs is a wallet with expensive transactions.
Unchained's dust analysis puts numbers on it: a single input adds roughly 57.5 to 148 vBytes depending on address type, an output adds 31 to 43 vBytes, and transaction overhead is about 10 vBytes. You pay a fee rate in sats per vByte on that total.
Working that arithmetic through, three wallets sending the same 0.1 BTC can pay very different fees:
| How you received your BTC | Inputs needed to send 0.1 BTC | Relative fee |
|---|---|---|
| One 0.5 BTC deposit | 1 | Baseline |
| Ten 0.05 BTC deposits | 2–3 | Modestly higher |
| 200 tiny deposits | 20+ | Several times higher |
Same amount sent, very different cost. (Those input counts are illustrative — your wallet's coin selection decides the real number.) This is also why Bitcoin's fee model feels unlike an EVM chain's, where cost tracks computational work — our guide to gas fees and stuck transactions covers that side of the comparison.
Dust: when a UTXO costs more than it holds
Dust is a UTXO worth less than the fee needed to spend it. Bitcoin Optech prefers the term "uneconomical outputs" for the general case: outputs worth less than the fees it will cost to spend them. Nodes refuse to relay or mine transactions that create outputs below a threshold called the dust limit, which keeps the UTXO set from filling with unspendable entries.
Two different numbers get called "dust," and mixing them up is common:
- The protocol dust limit — the relay threshold, which varies by address type: 546 sats for P2PKH, 294 for P2WPKH, and 330 for P2TR and P2WSH. Below this, the network won't pass your transaction along.
- The economic dust threshold — what's actually worth spending at today's fee rate. Using a conservative 250 vBytes per input, Unchained's table puts this at 1,250 sats when fees are 5 sat/vB, 25,000 sats at 100 sat/vB, and 250,000 sats at 1,000 sat/vB.
The second number moves with the market, so a UTXO can be spendable in a quiet week and uneconomical during a fee spike. Unchained calls that "operative dust," reserving "true dust" for outputs so small they're never worth spending.
Dust isn't a niche problem. The mempool.space report found that 49.1% of all UTXOs contain less than 1,000 satoshis, roughly a dollar's worth — and that 51.2 million UTXOs, 29.6% of the entire set, were inscription-related, holding 415.16 BTC between them at an average of 811 sats each. Our Bitcoin DeFi and Ordinals guide covers what inscriptions are; the UTXO set is where their footprint shows up.
Why Bitcoin didn't just use account balances
Because outputs make double-spending easy to check. A node validating a transaction asks one question: is each referenced output still in the UTXO set? If it isn't, the transaction is invalid — no account history to reconcile, no ordering problem to resolve.
Kraken's explainer describes how competing spends resolve: both land in the mempool, miners include one in a block, and as confirmations accumulate the other is rejected as invalid by the network.
| UTXO model | Account model | |
|---|---|---|
| What the chain stores | A set of unspent outputs | A balance per account |
| How a balance is known | Wallet sums your UTXOs | Read the account's number |
| Chains using it | Bitcoin, Litecoin, Cardano, Dogecoin | Ethereum, Tezos, EOS |
| Fee driver | Transaction size in bytes | Computation and storage |
| Parallel validation | Straightforward — outputs are independent | Harder — accounts share state |
| Complex smart contracts | More difficult | Native |
The trade-offs run both ways. Trust Wallet notes that the UTXO model makes complex smart contracts harder to implement than account-based systems do. And the set has a cost: 11 GB of it sits in every full node, so every uneconomical output someone creates is a permanent tax on everyone running the network.
How to keep your UTXOs healthy
Three habits cover most of it, and none require special software.
Prefer fewer, larger deposits. River's guidance is to withdraw larger amounts rather than making many small transfers. Ten small withdrawals produce ten UTXOs you'll pay to spend later.
Consolidate when fees are low. Consolidation means sending a transaction to yourself that spends many small UTXOs and creates one large one. You pay the fee once, at a moment you choose, instead of paying it inside every future transaction. River suggests watching fee rates and consolidating during quiet periods.
Weigh the privacy cost first. Consolidation puts previously unrelated UTXOs into one transaction, which tells observers they share an owner. River states it plainly: UTXO management "can come at a cost to privacy as unrelated transactions become connected." If separation matters to you, we'd suggest consolidating selectively rather than all at once.
For manual control over which UTXOs a transaction spends, you'd want a wallet with a coin-control feature — Sparrow and Trezor are the examples River names. Mainstream mobile wallets generally handle coin selection for you instead.
FAQ
What is a UTXO in simple terms? A UTXO is a chunk of bitcoin you received and haven't spent — like a specific bill in your pocket rather than a number in a bank account. Your wallet balance is the sum of all your chunks. Each one has to be spent whole, with change coming back to you as a new chunk.
Why did my Bitcoin address change after I sent a transaction? Your wallet created a change address to receive the leftover value, because a UTXO must be spent in full. That address belongs to your wallet and is controlled by the same keys, so nothing is lost. Wallets use a fresh change address each time for privacy.
Can I spend part of a UTXO? No. You spend the whole thing and receive change. If you hold a 0.1 BTC UTXO and send 0.02 BTC, the transaction consumes all 0.1 BTC and creates a roughly 0.08 BTC change output back to you, minus the fee.
What is the Bitcoin dust limit? It's the minimum output value nodes will relay, and it depends on address type: 546 sats for P2PKH, 294 for P2WPKH, 330 for P2TR and P2WSH. Separately, an output can sit above that limit and still not be worth spending — at a 100 sat/vB fee rate, spending a single input costs roughly 25,000 sats.
Should I consolidate my UTXOs? If you've accumulated many small UTXOs and expect to spend them eventually, consolidating during a low-fee period usually saves money. The trade-off is privacy, since combining UTXOs links them publicly. Holders with few, larger UTXOs generally don't need to bother.
Do other blockchains use UTXOs? Some do. Litecoin, Cardano, and Dogecoin use the UTXO model, while Ethereum, Tezos, and EOS use account balances. That's why an ETH transfer never generates a change address and a BTC transfer often does.
The short version
UTXOs are why Bitcoin behaves the way it does: balances that are calculated rather than stored, change addresses that look like something went wrong, and fees driven by how many chunks you hold rather than how much you're sending. Once the model clicks, all three stop being surprises. If you're holding BTC alongside assets on other chains, Coin98 Super Wallet manages Bitcoin and 150+ other networks in one self-custody app, with your keys staying yours.