DEV Community

Cover image for A Visual Way to Understand Bitcoin’s UTXO Model
Christian Ahrweiler
Christian Ahrweiler

Posted on Originally published at Medium

A Visual Way to Understand Bitcoin’s UTXO Model

A Visual Way to Understand Bitcoin’s UTXO Model### Why Bitcoin transactions make more sense when you stop thinking in account balances

One of the most persistent misunderstandings about Bitcoin begins with a familiar word: balance.

A wallet may show a balance of 0.015 BTC, but the Bitcoin blockchain does not store an account containing that number. The wallet calculates the amount from a collection of unspent transaction outputs it is able to spend.

These outputs are called UTXOs: Unspent Transaction Outputs.

The concept is precise, but it can feel abstract when explained only with definitions. Bitcoin Transaction Tree turns it into something you can inspect directly using real blockchain data.

Transactions Consume and Create Outputs

The simplest useful model is this:

*A Bitcoin transaction consumes earlier outputs and creates new outputs.*The consumed outputs appear as inputs on the left. The newly created outputs appear on the right. The transaction itself sits in the center.

Inputs are not coins stored inside the transaction. Each input points back to a particular output created earlier. That previous output includes an amount and a locking condition. The new transaction supplies the information required to satisfy that condition.

An output remains a UTXO until a later transaction references it as an input. Once that happens, it is spent and cannot be spent again.

Why Wallets Create Change

UTXOs are spent as complete units.

Imagine a wallet controls one UTXO worth 22,352 satoshis and wants to pay 10,000 satoshis. It cannot remove exactly 10,000 satoshis from that output and leave the rest untouched.

Instead, the transaction consumes the complete 22,352-satoshi UTXO and creates new outputs:

  • 10,000 satoshis for the recipient,
  • 10,943 satoshis as change,
  • 1,409 satoshis left as the transaction fee. The change is not returned inside the original output. It is a newly created output, normally controlled by the sender’s wallet.

This is similar to paying with a banknote, but with an important difference: Bitcoin’s “notes” can have any value, and every new transaction destroys the spent outputs while creating new ones.

One Payment Can Use Many Inputs

A wallet balance may consist of many UTXOs received at different times.

If no single UTXO is large enough for a payment, the wallet combines several. That produces a transaction with multiple inputs.

This explains why two payments of the same amount can have very different sizes and fees. A transaction with one input is generally smaller than one combining 50 inputs. Since miners evaluate fees relative to virtual size, the larger transaction may require a higher absolute fee even when both payments send the same amount.

Historical transactions provide striking examples. Some combine more than a hundred inputs into a single output. Others distribute one input across many outputs. In a visual tree, these patterns become immediately recognizable.

Spent and Unspent Outputs

Every displayed output tells a small part of the transaction’s future.

An unspent output is currently an endpoint. The value still exists as a UTXO and may be spent later.

A spent output has a known continuation. Bitcoin Transaction Tree shows the spending TXID, allowing the learner to make that later transaction the new center.

Following a spent output forward demonstrates that bitcoins do not carry a permanent account history. What persists is a chain of transaction references: output, input, new output, new input.

Addresses Are Not Accounts

An address is a human-readable representation of a spending condition. It helps wallets create outputs, but it is not an account stored in the blockchain.

This matters for several reasons:

  • one wallet can control many addresses,
  • one transaction can involve many addresses,
  • some output scripts have no conventional address,
  • an address balance is calculated from associated UTXOs,
  • a transaction and an address are different objects. The center of Bitcoin Transaction Tree is therefore always a transaction, not an address. Selecting a connected TXID changes the center and updates the input field accordingly.

Fees Are the Missing Difference

For an ordinary transaction:

*total input value = total output value + transaction fee*The fee is not listed as a separate output to the miner. It is the amount left over when outputs are subtracted from inputs. The miner of the block may claim the combined fees through the block’s coinbase transaction.

The fee rate, measured in satoshis per virtual byte, makes transactions of different sizes comparable. It is usually more important for mining priority than the absolute fee.

From Definition to Exploration

Bitcoin Transaction Tree combines the diagram with compact transaction details and contextual explanations. Blue terms open the relevant help section. Orange transaction links move through the graph. Back, forward, and home controls preserve the route taken through the data.

This makes several classroom activities possible:

  • identify payment and change outputs,
  • compare one-input and many-input transactions,
  • calculate the fee from input and output totals,
  • follow one spent output into the next transaction,
  • distinguish addresses, transactions, and UTXOs,
  • discuss what public blockchain data reveals — and what it does not. The same approach is useful for self-study because no artificial example is required. Every concept can be examined in a real transaction.

Public Evidence Is Not Personal Identity

The graph establishes technical relationships between transactions. It does not automatically identify their owners.

Address reuse, wallet behavior, and service patterns may support analysis, but they are not the same as verified identity. A transaction created by an exchange or marketplace may combine funds belonging to many users. A change address may look unrelated even though the same wallet controls it.

Responsible interpretation separates what the blockchain proves from what an observer merely infers.

Seeing the Model Changes the Mental Model

Once inputs and outputs are visible, several Bitcoin concepts stop feeling arbitrary.

Change outputs make sense. Wallet balances become calculations rather than accounts. Transaction fees become the difference between inputs and outputs. Large transactions become understandable as combinations or distributions of UTXOs.

That is the value of a visual transaction tree: it does not replace Bitcoin’s technical model. It makes the model visible.

Download on App Store: https://apps.apple.com/us/app/bitcoin-transaction-tree/id6811372344

More Beaver Tools: https://beavertools.app/

More Bitcoin Apps: https://btcminertools.com/

Top comments (0)