01 / The model
Coins are outputs
Forget account balances. Bitcoin doesn't have them. What it has is a global set of — discrete, indivisible lumps of value, each one created by a specific transaction and each spendable exactly once. Everything about tracing follows from this one design decision.
Anatomy of a transaction
A transaction is a bundle of inputs and outputs, identified by its . Each input () points backwards at exactly one output of an earlier transaction — by that transaction's txid and the output's index — and provides the signature that unlocks it. Each output () carries a value in and a locking , which usually encodes an . Outputs are numbered from zero, so any single coin in existence can be pinned down precisely as txid:vout. That pair is the atomic unit of tracing — and the reason this site is called vout.io.
One transaction · 2 in, 3 out
Inputs must be consumed whole. You can't spend half a UTXO any more than you can tear a banknote in half — you hand over the whole thing and take change.
Many in, many out
A transaction can combine any number of inputs and produce any number of outputs, and real transactions use that freedom constantly. A wallet paying one bill might merge five small UTXOs into one input set (a consolidation: many in, few out). An exchange processing withdrawals might pay five hundred customers from two inputs (a batch payout: few in, many out). A thief splitting loot does the reverse.
This is why a naive trace explodes. Follow one stolen output through three transactions that each split into ten outputs and you already have a thousand candidate trails. The structure isn't a chain — it's a branching graph, and the branching is the whole difficulty.
Change and fees
Two bookkeeping details complete the picture. First, : because inputs are spent whole, the excess comes back to the spender as one of the transaction's own outputs — usually at a fresh address the wallet generates silently. In the diagram above, vout 2 is change: same transaction, but the money never left the sender. Telling change apart from genuine payments is one of the core judgment calls in analysis.
Second, fees. The fee is not an output — it's the gap. Whatever input value isn't claimed by an output is collected by the miner of the block, via the block's . Input sums always cover output sums; the difference is the price of settlement.
The lineage graph
Put it together and every satoshi has an unbroken, public ancestry: minted in some coinbase, then carried from output to input to output, transaction after transaction, until it rests in whatever UTXO holds it today. Each hop is recorded forever after . Nothing is anonymous in this graph — addresses are pseudonyms, but the flows between them are cryptographic fact, verifiable by anyone with a copy of the chain.
That fact is the foundation the next chapter builds on: if the plumbing is public, tracing becomes a matter of reading it carefully — and knowing exactly where reading turns into guessing.
See it on a real transaction — yours, if you have one
Everything above is live on the public chain right now. Paste any txid — the theft transaction from your own case, if that's why you're here — and see its actual inputs, outputs, and fee laid out exactly as described.
Try it · anatomy of your transaction
Live public chain data via Blockstream Esplora, fetched by your browser — vout.io never sees the txid.