Guides / Understanding UTXOs

Understanding UTXOs

Your Bitcoin or Litecoin balance isn't a number in an account. It's a pile of distinct coins called UTXOs. Once that clicks, change addresses, fees, and coin selection all make sense.

On this page

The UTXO model

UTXO stands for Unspent Transaction Output. Think of your wallet as holding a set of distinct coins and bills of different values, rather than one running total. Your "balance" is the sum of all the UTXOs you're able to spend. Each UTXO came from a previous transaction's output and hasn't been spent yet.

Spending and change

The key rule: you must spend whole UTXOs. You can't shave a piece off one. So to pay someone 0.3 from a single 1.0 UTXO, your wallet consumes the entire 1.0 and creates new outputs:

Input (spent)Outputs (created)
1.0 UTXO0.3 to the recipient
~0.7 back to you as change
the small remainder is the fee

That 0.7 goes to a change address your wallet controls. It's not lost, just a new UTXO belonging to you. This works like paying for a $3 item with a $10 bill and getting change back.

INPUTS (you spend) OUTPUTS 0.60 tBTC a coin you own 0.50 tBTC a coin you own one transaction 0.80 tBTC payment to someone 0.29 tBTC change, back to you fee 0.01 1.10 in = 1.09 out + 0.01 fee
One transaction spends whole UTXOs and creates new ones: a payment, your change, and the fee. Inputs always equal outputs plus fee.

Coin selection & dust

When you spend, your wallet does coin selection: it picks which UTXOs to combine to cover the amount. More inputs mean a bigger transaction, which means a higher fee. Very tiny UTXOs are called dust: so small that spending them would cost more in fees than they're worth.

Other models

Not every chain works this way. Ethereum-style chains use an account model, one balance that goes up and down, like a bank account. Monero also uses outputs, but hides them with ring signatures and stealth addresses, so you can't see the individual coins the way you can on Bitcoin. See the Monero guide.

See it yourself

Testnet is perfect for this. Send a payment, then open the transaction on TestnetScan and spot the recipient output and the change output side by side. It's the same machinery behind raw transactions.

Testnet coins are fake money

  • They have no market value, so never buy or sell them.
  • Never use a real seed phrase or import a real wallet on testnet.
  • Never send mainnet BTC, LTC, or XMR to a testnet address.