The UTXO Machine

What is a UTXO? Watch real coins get spent.

A UTXO (unspent transaction output) is a coin. Every Bitcoin Cash transaction melts some coins down and mints new ones. Paste any transaction below and watch it happen, then follow a coin back to the block that created it.

Verified

The UTXO Machine

Reads the chain live from public Fulcrum servers

A UTXO is a coin, not a balance

Your bank keeps one number for you and edits it. Bitcoin Cash does not. It keeps a pile of separate coins, and each coin is locked to whoever holds the right key. Each coin is a UTXO: an output of some earlier transaction that nobody has spent yet. Your wallet "balance" is only the sum of the coins your keys can open.

Spending melts coins and mints new ones

A coin is always spent whole. Say you hold a 5 BCH coin and pay someone 3 BCH. Your transaction consumes the 5 BCH coin as an input and creates two outputs: 3 BCH locked to the payee, and about 2 BCH back to you as change. The old coin no longer exists. The two new ones join the UTXO set.

The outputs add up to a little less than the inputs. That gap is the fee, and the miner who puts the transaction in a block collects it. On Bitcoin Cash it is usually about a satoshi per byte: a fraction of a cent.

Every coin has a family tree

Each input points at the exact output it spends, so every coin links back to its parents, and theirs, all the way to a coinbase: the transaction in which a miner created new coins as the block reward. That is what "Follow a coin" walks. Some trails end a few steps back. Others run through years of sleep and cross the August 2017 split, when BCH and BTC still shared one ledger.

Why Bitcoin Cash uses UTXOs

  • Parallel checks. Coins are independent, so a node can validate many transactions at once.
  • No shared state to drain. A transaction spends specific coins, or it fails. There is no contract balance for a bug to empty.
  • Tokens ride along. CashTokens live inside outputs too, so a token moves under the same rules and the same signatures as BCH.
  • Better privacy by default. Wallets can use a fresh address for each coin, instead of one account that shows every payment.

The trade-off is that wallets must choose which coins to spend, and many tiny coins make larger transactions. See the glossary for the terms and the wallet chooser for wallets that handle it for you.

The whole UTXO set, from our own node

Every coin that exists, grouped by how long it has sat still. We compute this ourselves from a Bitcoin Cash Node, and check our count against the node's own coinstatsindex total every day. No third-party analytics API.

The node pipeline has not published yet.

These charts come from scripts/utxo-stats.mjs run against a BCHN node with -coinstatsindex. The machine above works now: it reads the chain live.

How we compute this

We read every block from genesis with getblock verbosity 3, which lists each input's prevout height and value. Each output adds its value to the day it was born. Each input takes its value back out and destroys value × age coin-days. Ages count whole UTC days, by block median time.

At the end of each day we ask the node for its UTXO-set total with gettxoutsetinfo, served by -coinstatsindex. If our count differs by one satoshi, the job fails instead of publishing. OP_RETURN outputs and the two BIP30 duplicate coinbases are excluded, as the node excludes them.

We skip the newest 6 blocks, so a reorg cannot reach the data. Coins born before August 1, 2017 exist on both BCH and BTC; "7+ years" includes coins that never moved after the split.

Questions

What does UTXO stand for?

Unspent transaction output. Every transaction creates outputs: amounts locked to an address or script. An output that nobody has spent yet is a UTXO. Your wallet balance is the sum of the UTXOs your keys can unlock.

Is a UTXO like a coin or a bill?

Yes. A UTXO is spent whole, like a banknote. To pay 3 BCH with a 5 BCH coin, the transaction consumes the 5 BCH coin and creates two new ones: 3 BCH for the payee and about 2 BCH back to you as change, minus a small fee.

How is the UTXO model different from Ethereum's account model?

Ethereum keeps one balance per account and edits it in place. Bitcoin Cash keeps a set of separate coins and replaces them. Coins can be checked in parallel, a transaction either spends a coin or it does not, and there is no global contract state to drain.

Where does the transaction fee go?

Nowhere explicit. The fee is the gap between what the inputs hold and what the outputs hold. The miner who includes the transaction claims that gap in the block's coinbase transaction.

What is the UTXO set?

The list of every unspent output on the chain: all the money that exists right now. Full nodes keep it in a database to check each new transaction. It is the ledger, and it holds only coins, not account histories.

What are coin-days destroyed?

A measure of how old the moved money was. Spend 10 BCH that sat still for 100 days and you destroy 1,000 coin-days. Big spikes mean long-held coins moved, which analysts watch as a signal of old holders selling or reorganising.

Do CashTokens use UTXOs too?

Yes. Since May 2023, every Bitcoin Cash output can carry fungible tokens or an NFT alongside its BCH. Tokens move by spending and recreating outputs, exactly like BCH itself. The machine marks token outputs with a pink ring.

The machine reads the chain live over the Electrum Cash protocol from public Fulcrum servers. It sends them transaction IDs, nothing else. The UTXO-set charts come from our own Bitcoin Cash Node.