UTXO vs account model: two ways a blockchain keeps score
Bitcoin tracks coins like banknotes; Ethereum tracks balances like a bank account. The choice decides what analysts can measure — especially how old coins are.

Photo: “Day 178: Almost Full” by tsmall, CC BY-SA 2.0, via Flickr (edited: cropped and resized).
In the UTXO model (Bitcoin), coins exist as separate unspent outputs that must be spent whole, with change returned as a new output [1]. In the account model (Ethereum), each account has a single balance that is debited and credited [2]. UTXOs give every coin an age; accounts blend them.
Key points
- 1A UTXO is an unspent transaction output: a discrete chunk of coins that can only be spent in full.
- 2An account is a running balance that can be partially spent, like a bank account.
- 3UTXOs make coin age, change and profit-at-spend measurable per coin; accounts record only when a balance last changed.
- 4Many popular on-chain metrics were designed for UTXO chains and need adapting for account chains.
On this page
What is a UTXO?#
UTXO stands for unspent transaction output. Every Bitcoin transaction consumes earlier outputs as its inputs and creates new outputs; each new output waits, unspent, until a later transaction spends it [1]. There is no account and no stored balance at the protocol level. When your wallet shows 10,000 satoshis, it means 10,000 satoshis are waiting in one or more UTXOs your keys can spend [1].
Glassnode’s explainer compares UTXOs to cash: $50 in your pocket could be one $50 note or five $10 notes, and either way you have $50 [3]. Like a banknote, a UTXO cannot be torn in half. If you want to pay less than its value, you hand over the whole thing and receive change. Unlike banknotes, UTXOs can be any amount, and the fee comes out of the change [3].
| Step | Value |
|---|---|
| Input: UTXO spent in full | 10.0000 BTC |
| Output 1: payment to the recipient | 3.7500 BTC |
| Fee left for the miner | 0.0002 BTC |
| Output 2: change = 10 − 3.75 − 0.0002 | 6.2498 BTC |
| Paying 13.75 BTC with UTXOs of 10 and 5: change = 15 − 13.75 − 0.0002 | 1.2498 BTC |
The original 10 BTC output is gone for good; two brand-new outputs replace it. The developer guide recommends sending change to a new address for privacy [1].
What is the account model?#
Ethereum stores accounts. Each one has a balance in wei (10^18 wei per ETH), a nonce that counts its transactions, and fields for contract code and storage [2]. Accounts come in two kinds: externally owned accounts, controlled by whoever holds the private key, and contract accounts, controlled by smart-contract code [2].
Balances can be partially spent. With 10 ETH you can send 3.75 ETH directly and are left with 6.25 ETH, without creating any change [3]. In practice the transaction fee is also deducted from the sender’s balance, so the remainder is slightly less. Read more in what is Ethereum.
Two ways to record the same payment
How do the two models compare side by side?#
| Feature | UTXO model | Account model |
|---|---|---|
| Example chains | Bitcoin, Litecoin | Ethereum, EOS |
| What the ledger stores | A set of unspent outputs | Accounts with balances |
| Partial spending | No — spend whole, get change | Yes — debit any amount |
| Replay protection | Each output can be spent once | Per-account nonce |
| Coin age per unit | Yes, from each output’s creation | Only the account’s last activity |
| Smart contracts | Scripts set spending conditions | Contract accounts run code |
Example chains as listed by Glassnode [3]; nonce and contract details from ethereum.org [2].
Why does the model matter for on-chain metrics?#
Several flagship metrics depend on knowing when each coin was created and at what price. Glassnode notes that indicators such as SOPR and Coin Days Destroyed rely on UTXOs, and that applying them to account-based chains has traditionally been complex [3]. The clearest example is how “last activity” is defined for realized cap: on UTXO chains it is the creation date of each output, while on account chains Coin Metrics uses the last date the account sent funds, or its creation date, whichever is more recent [4].
| Step | Value |
|---|---|
| UTXO chain: change output (5 − 1), created day 200 | 4 coins aged 50 days |
| UTXO chain: untouched output from day 100 | 5 coins aged 150 days |
| UTXO chain: value-weighted average age = (4 × 50 + 5 × 150) ÷ 9 | ≈ 105.6 days |
| Account chain: whole balance, last sent on day 200 | 9 coins aged 50 days |
The account model “forgets” that five coins had been sitting still for 150 days, because the account as a whole was active on day 200. Age-based metrics such as HODL waves are therefore much sharper on UTXO chains.
Change cuts the other way. On UTXO chains it creates extra outputs that look like transfers, adding noise to metrics built on output counts and sizes; Glassnode says identifying and adjusting for change gives a more realistic view of economic activity [3]. Account chains have no change outputs, but they bring their own quirks: Coin Metrics computes adjusted transfer value on account chains by only counting accounts whose net balance actually changed [5].
Does one model make it easier to count users?#
Neither model counts people. On Bitcoin, the UTXO set gives an upper bound: Coin Metrics notes that if there are few unspent outputs there cannot be many on-chain owners, but one owner can hold many outputs [6]. On Ethereum, creating an externally owned account costs nothing [2], so account counts can also grow without new people. See active addresses for what address counts can and cannot tell you.
The two models in one box
What mistakes do beginners make here?#
- Thinking a Bitcoin wallet stores a balance
The protocol stores UTXOs. The balance you see is your wallet adding them up.
- Mistaking change for a second payment
Most Bitcoin payments have two outputs: one to the recipient and one returning change. Only one is a real payment.
- Assuming Bitcoin metrics port directly to Ethereum
Coin age, SOPR and realized cap need different definitions on account chains, and the results are coarser.
- Counting accounts or UTXOs as users
One person can control many outputs or accounts; one exchange account can serve thousands of people.
Frequently asked questions#
Is the UTXO model more private than the account model?
It can be, if users follow good practice. The Bitcoin developer guide recommends new addresses for payments and change so spending is harder to track [1]. Reusing addresses removes most of that benefit.
Which model does Ethereum use?
The account model, with externally owned accounts and contract accounts [2].
Why do UTXOs make coin age possible?
Each output is created in a specific block, so its creation time is known exactly until it is spent. An account only has one balance and one record of when it was last active.
What happens to the fee in a UTXO transaction?
Whatever the inputs add up to beyond the outputs is left for the miner as the fee. That is why change must be calculated carefully [1].
The bottom line#
The UTXO model treats coins like banknotes that are spent whole; the account model treats them like a bank balance. For users, the difference is mostly hidden by wallets. For on-chain analysts it is fundamental: UTXOs give every coin a birth date and price, while accounts blend everything into one balance.
Next, see how coin ages become a market-wide picture in long-term vs short-term holders, or revisit the basics in how Bitcoin transactions work.
Sources#
Grade A = primary source (regulator, protocol specification, client code, original author). Grade B = expert secondary source used for explanation only.
- Abitcoin.org developer documentation. Developer Guide: Transactions, 2026.
- Aethereum.org. Ethereum accounts, 2026.
- BGlassnode Docs. UTXO vs. Account-Based Chains, 2026.
- BCoin Metrics Data Knowledge Base. Market Capitalization (Realized Market Cap definition), 2026.
- BCoin Metrics Data Knowledge Base. Transfer Value (network data definitions), 2026.
- BCoin Metrics Data Knowledge Base. UTXOs (network data definitions), 2026.


