Skip to article
Degrees of SatoshiFollow the connections.
Degrees of Satoshi/ Encyclopedia

Encyclopedia Bitcoin basics · Entry 384

What is a UTXO? How Bitcoin keeps track of coins without any accounts

Theme
Bitcoin basics
Sources
7 cited records
Reading time
About 8 minutes
Automated verification
Substantive update
In this article

At a glance

Key facts

Key facts for What is a UTXO? How Bitcoin keeps track of coins without any accounts
FactDetailSource
DefinitionAn output of a past transaction that has not yet been spent[2]
Spent whole“A UTXO can only be spent once, the full value of the included UTXOs must be spent”[2]
ChangeMost transactions include a change output returning the surplus to the spender[2][1]
How inputs pointBy the previous transaction ID and the output index[3]
FeeInputs minus outputs: “the difference is a transaction fee”[1]
New coinsThe coinbase has a special input rather than spending an earlier UTXO, and may claim subsidy plus fees[3][1]
Coinbase maturityNewly mined outputs cannot be spent for at least 100 blocks[4]
The UTXO setBitcoin Core’s gettxoutsetinfo reports the count and total amount of unspent outputs[5]
01

Think banknotes in a drawer, not a balance at a bank

A bank keeps one number per customer and adjusts it. Bitcoin does not. It keeps a list of outputs: lumps of value, each created by some earlier transaction and each locked with a condition that says who may spend it. An output that nobody has spent yet is an unspent transaction output, a UTXO. The Bitcoin developer guide puts the consequence plainly: “When your Bitcoin wallet tells you that you have a 10,000 satoshi balance, it really means that you have 10,000 satoshis waiting in one or more UTXOs.”

The closest everyday picture is cash. If you have a $20 note and two $5 notes, you have $30, but you do not have a $30 note. Each note is a separate object, spendable only whole. Bitcoin outputs are the same, except that they can be any size (measured in satoshis, the smallest unit) and the “note” is locked to a key rather than sitting in a drawer.

The white paper starts from this picture. Its second section opens: “We define an electronic coin as a chain of digital signatures.” Each owner passes the coin on by signing the previous transaction and the next owner’s public key. A “coin” in that sentence is what we now call an output, and its history is the chain of transactions that created and spent it. The protocol never keeps a table of who owns how much; block explorers compute a balance for an address by adding up the unspent outputs locked to it.

02

A transaction consumes whole outputs and creates new ones

A transaction is a small record with two lists. Its inputs point at existing UTXOs; the developer reference describes each input as naming “the TXID of the transaction holding the output to spend” and “the output index number of the specific output to spend,” a pair often written as txid:vout. Its outputs create new UTXOs, each with a value in satoshis and a script setting the condition for spending it. Nothing is edited in place: the old outputs are consumed and the new ones appear.

Two rules make it work. The reference states the first: “the sum of all outputs may not exceed the sum of satoshis previously spent to the outpoints provided in the input section.” You cannot create value. The developer guide states the second: because “a UTXO can only be spent once, the full value of the included UTXOs must be spent.” Like the $20 note, an output is consumed entirely, and any surplus has to be sent somewhere deliberately.

Section 9 of the white paper anticipates exactly this. “Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender.”

03

Account for the recipient, change and fee

Suppose a payment spends a 100,000-satoshi output, creates 60,000 satoshis for the recipient and pays a 1,000-satoshi fee. The remaining 39,000 satoshis can become a new change output controlled by the sender. The old output is consumed in full.

The fee is the difference between inputs and outputs, not a separate fee destination. An explorer can show the new outputs without knowing which one is the sender’s change. The wallet’s ownership information provides that context.

04

Every output traces back to a block reward

Follow any output backwards through the transactions that created it and you reach a transaction without consuming a previous UTXO at all. The white paper describes it in section 6: “By convention, the first transaction in a block is a special transaction that starts a new coin owned by the creator of the block.” That is the coinbase transaction, the only place new bitcoin comes from. The developer reference shows how the format marks it: its single input carries a 32-byte field of zeros where a previous transaction ID would be, and an index of all ones.

Coinbase outputs come with a waiting period. The developer guide notes that such an output “cannot be spent (used as an input) for at least 100 blocks.” The reason is that a freshly mined block can still be displaced if the network settles on a competing block, and a reward that vanished after being spent would unravel every transaction built on it. Our article on confirmations explains why a block’s place in the chain firms up over time.

The very first coinbase output, from block 0, is in the site’s wallet library under the genesis block. New issuance enters through coinbase outputs, but a transaction with multiple inputs and outputs does not assign particular input satoshis to particular outputs. Graph paths are not proof of literal coin ancestry.

05

The UTXO set is the ledger a node actually consults

A full node does not need to re-read the whole history to decide whether a new transaction is valid. It keeps the current set of unspent outputs as a database and checks each input against it: is this output in the set, and does the input satisfy its lock? When a block is accepted, the spent outputs are removed and the new ones added. Bitcoin Core exposes the state of this database through a command called gettxoutsetinfo, which the reference describes as returning “statistics about the unspent transaction output set,” including the block height, “the number of unspent transaction outputs,” the number of transactions that still have unspent outputs, and the total amount they hold.

The white paper foresaw this in section 7: “Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space.” What can never be discarded is the set of outputs still unspent, because that is what defines who can spend what.

This state also enforces the single-spend rule. Two transactions cannot both consume the same output in one accepted chain. Input availability and chain ordering determine which spend is accepted; being first seen by a wallet or explorer is not a consensus priority claim. Our double spending article follows a transaction from input selection to confirmation and possible reorganization.

Direct answers

Questions people ask

Is a UTXO the same as one bitcoin?

No. A UTXO is an output of any size, measured in satoshis, the smallest unit. One might hold a few hundred satoshis, another thousands of bitcoin. Your balance is the total of all the outputs your keys can unlock, however many pieces it comes in.

Can I spend part of a UTXO?

No. The developer guide is explicit that “the full value of the included UTXOs must be spent.” To pay less than an output is worth, the transaction sends the payment to the recipient and the rest back to you as a change output, leaving any gap as the fee.

Why does my wallet have so many small UTXOs?

Every incoming payment creates at least one, and every payment you make usually creates a change output. They accumulate like coins in a jar. Because fees are charged on the byte size of a transaction, and each input adds bytes, spending many small outputs at once costs more than spending one large one.

What is the UTXO set?

It is the complete collection of outputs that have not been spent, which is what a node needs to validate new transactions. Bitcoin Core’s gettxoutsetinfo command reports its size: the number of unspent outputs, the number of transactions that still have one, and the total amount of bitcoin they hold.

Does the Bitcoin network know my balance?

Not as a number it stores. The protocol tracks outputs and their locks, not people or balances. A wallet or block explorer computes a balance by adding up the unspent outputs locked to a set of addresses. That sum is a view of the ledger, not a field in it.

Inspect the evidence

The answer and key facts have stable claim links. These records retain the scope and qualification when reused.

A UTXO, short for unspent transaction output, is a lump of bitcoin that some past transaction created and that has not been spent since. Bitcoin has no account balances at the protocol level; your wallet’s balance is the sum of the UTXOs your keys can unlock. To pay someone, a transaction consumes whole UTXOs as inputs and creates new ones as outputs, usually one for the recipient and one returning change to you.

Scope: Bitcoin. Verification: verified · 2026-10-02T18:26:58.075Z.

Link to this claim
Definition: An output of a past transaction that has not yet been spent

Scope: Bitcoin. Verification: verified · 2026-10-02T18:26:58.075Z.

Link to this claim
Spent whole: “A UTXO can only be spent once, the full value of the included UTXOs must be spent”

Scope: Bitcoin. Verification: verified · 2026-10-02T18:26:58.075Z.

Link to this claim
Change: Most transactions include a change output returning the surplus to the spender

Scope: Bitcoin. Verification: verified · 2026-10-02T18:26:58.075Z.

Link to this claim
How inputs point: By the previous transaction ID and the output index

Scope: Bitcoin. Verification: verified · 2026-10-02T18:26:58.075Z.

Link to this claim
Fee: Inputs minus outputs: “the difference is a transaction fee”

Scope: Bitcoin. Verification: verified · 2026-10-02T18:26:58.075Z.

Link to this claim
New coins: The coinbase has a special input rather than spending an earlier UTXO, and may claim subsidy plus fees

Scope: Bitcoin. Verification: verified · 2026-10-02T18:26:58.075Z.

Link to this claim
Coinbase maturity: Newly mined outputs cannot be spent for at least 100 blocks

Scope: Bitcoin. Verification: verified · 2026-10-02T18:26:58.075Z.

Link to this claim
The UTXO set: Bitcoin Core’s gettxoutsetinfo reports the count and total amount of unspent outputs

Scope: Bitcoin. Verification: verified · 2026-10-02T18:26:58.075Z.

Link to this claim
Revision history
  1. — Initial Bitcoin encyclopedia entry at this permanent URL.
  2. — Corrected key fact: New coins Corrected scope or wording: with no inputs Corrected scope or wording: Every unspent output that exists today descends, through some chain of transactions,
  3. — Added reusable claims, explicit source locators, and matching Markdown and JSON. This publishing change does not itself establish factual verification.
  4. — Expanded explanation: Account for the recipient, change and fee. Worked examples are illustrative; source checks and independent verification are recorded separately.

On the Start with Bitcoin path · Learn next: Bitcoin confirmations: what they mean, why six became the convention, and why none is final

On the Follow a transaction path · Learn next: Ethereum accounts: keys, contract code and delegated accounts

Source register

Sources and references

Retrieval dates and locators are recorded individually.
  1. Bitcoin: A Peer-to-Peer Electronic Cash SystemSatoshi Nakamoto · 2008-10-31bitcoin.org

    Section 2 defines a coin as a chain of signatures and states that the earliest transaction counts; section 6 defines the coinbase and the fee as input minus output; section 7 covers discarding spent transactions; section 9 describes combining and splitting value with a change output.

    Locator: Section 2 defines a coin as a chain of signatures and states that the earliest transaction counts; section 6 defines the coinbase and the fee as input minus output; section 7 covers discarding spent transactions; section 9 describes combining and splitting value with a change output. · Retrieved: 2026-10-02T15:04:11.761440+00:00Open source
  2. TransactionsBitcoin developer guide (developer.bitcoin.org)

    Explains that a balance is satoshis waiting in UTXOs, that a UTXO is spent once and in full, that most transactions include a change output, and that fees are charged on transaction byte size.

    Locator: Explains that a balance is satoshis waiting in UTXOs, that a UTXO is spent once and in full, that most transactions include a change output, and that fees are charged on transaction byte size. · Retrieved: 2026-10-02T14:48:40.568452+00:00Open source
  3. Transactions (reference)Bitcoin developer reference (developer.bitcoin.org)

    Specifies the input outpoint as a previous transaction ID and output index, the output value in satoshis and script, the rule that outputs may not exceed inputs, and the null hash and all-ones index of a coinbase input.

    Locator: Specifies the input outpoint as a previous transaction ID and output index, the output value in satoshis and script, the rule that outputs may not exceed inputs, and the null hash and all-ones index of a coinbase input. · Retrieved: 2026-10-02T14:48:40.879756+00:00Open source
  4. Block ChainBitcoin developer guide (developer.bitcoin.org)

    States that a coinbase output cannot be spent for at least 100 blocks and defines block 0 as the genesis block.

    Locator: States that a coinbase output cannot be spent for at least 100 blocks and defines block 0 as the genesis block. · Retrieved: 2026-10-02T14:48:36.834850+00:00Open source
  5. gettxoutsetinfoBitcoin Core RPC reference (developer.bitcoin.org)

    Documents the command that returns statistics about the unspent transaction output set: height, number of transactions with unspent outputs, number of unspent outputs, disk size and total amount.

    Locator: Documents the command that returns statistics about the unspent transaction output set: height, number of transactions with unspent outputs, number of unspent outputs, disk size and total amount. · Retrieved: 2026-10-02T14:48:41.276392+00:00Open source
  6. walletcreatefundedpsbt RPCBitcoin Core

    Input selection, fee units, change output, selected inputs and transaction funding.

    Locator: Arguments and result fields · Version / scope: Bitcoin Core 29.0.0 RPC · Retrieved: 2026-10-02T17:03:40.827ZOpen source
  7. Bitcoin Core validation implementationBitcoin Core

    Coinbase maturity, input value conservation and transaction fee validation.

    Locator: CheckTxInputs · Version / scope: Bitcoin Core v29.0 · Retrieved: 2026-10-02T17:03:40.391ZOpen source
How this article was made

Research and drafting use AI assistance. A separate automated review checks claims against primary sources; no external expert or named human review is implied. Publication, substantive editing, source retrieval and verification are recorded separately. This version was independently checked by an automated reviewer on 2 October 2026.

Editorial method and corrections

Degrees of Satoshi editorial project. “What is a UTXO? How Bitcoin keeps track of coins without any accounts.” Published 2026-09-23; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/what-is-a-utxo/