What on-chain analysis is
On-chain analysis means reading the blockchain itself instead of an exchange price feed. Bitcoin publishes every transaction since January 2009 in a ledger anyone can download. That ledger tells you how many coins exist and when each of them last moved, down to the block. What it does not contain is a dollar price. Analysts add that from an outside price history, one value per day, and pair it with the movement dates. A price chart, on its own, tells you none of this. It only tells you what the last trade cost.
The difference matters more than it sounds. A stock exchange knows its order book. Nobody outside a bank knows what every shareholder paid for their shares. With Bitcoin, the ledger plus a price history gives you the next best thing: for every coin, the date it last moved on-chain and what the market paid that day. That is not a receipt (more on that below), but the movement record is public and complete, and the price series is easy to check. On-chain analysts turn the pair into aggregate metrics: what the supply was worth at the time it last moved on-chain, how much of it currently sits above or below that mark, how long coins have been dormant, how many moved today with a gain or a loss.
CoinVett shows four of these figures live on the Bitcoin page: MVRV, NUPL, Realized Price and SOPR. This guide is the foundation for reading them. The individual metrics each have their own guide, linked further down.
The UTXO: why every coin has a memory
Bitcoin does not keep account balances the way a bank does. It keeps unspent transaction outputs, UTXOs for short. Every time you receive bitcoin, a new output is written to the chain: this much BTC, locked to this address, created in this block. When you spend it, that output is consumed and one or more new outputs are created for the recipient and for your change.
Think of it as cash rather than a bank account. A wallet with 0.5 BTC might hold a single 0.5 BTC note, or a 0.3, a 0.15 and a 0.05 that arrived on different days. The chain knows each of those pieces individually.
As of September 2026 there are roughly 165 million UTXOs holding about 20.09 million BTC. Each one carries a timestamp: the block in which it was created. Pair that block with the market price of the day, taken from a price history rather than from the chain, and each one carries an implied price tag. That price tag is the raw material for almost everything in this cluster.
Cost basis: the network's on-chain price tag
Take every UTXO, multiply its amount by the BTC price at the moment it was created, and add it all up. The result is the Realized Cap. In September 2026 it stands at roughly 1.07 trillion US dollars, while the ordinary market cap (price times supply) is about 1.73 trillion.
Realized Cap is a cost-basis figure for the entire network, in the on-chain sense of the word: the price tag on a coin is the market price on the day the coin last moved, not what its current owner actually paid. If you bought on an exchange and never withdrew, your coins sit in the exchange's wallets and carry the price of the day the exchange last moved them on-chain between its own wallets, not your purchase price. That makes Realized Cap a volume-weighted on-chain cost-basis proxy, not a record of what holders actually paid. Coins that last moved in 2013 are counted at 2013 prices. Coins that moved last week are counted at last week's prices. Divide Realized Cap by supply and you get the Realized Price, currently around 53,400 dollars: the aggregate price per coin at which the supply last changed hands on-chain.
The Realized Cap concept was introduced by Nic Carter and Antoine Le Calvez of Coin Metrics in 2018. It is the denominator behind MVRV and the anchor behind NUPL, which is why the Realized Price guide is the natural next read after this one.
Exchange data vs. chain data
Most crypto charts are built on exchange data: price, volume, order books, funding rates. That data is fast and granular but has two blind spots. First, it only covers coins that are being traded right now. The 60 or 70 percent of supply that has not moved in over a year never appears in it. Second, each exchange reports its own numbers, and reported volume is notoriously easy to inflate.
Chain data has the opposite profile. It is slow (one block every ten minutes, most metrics computed once a day) and it says nothing about intent. But it is complete, and it is the same for everyone who runs a node. Nobody can fake the UTXO set.
| Question | Exchange data | Chain data |
|---|---|---|
| What did the last trade cost? | Yes, to the second | Only indirectly |
| What did all holders actually pay? | No | Only as a proxy (Realized Cap) |
| How much supply has not moved in a year? | No | Yes (UTXO age) |
| Who is buying and why? | No | No |
| Can it be manipulated by one venue? | Yes | No |
The four metrics on CoinVett's Bitcoin page
All four derive from the same UTXO data. They differ in what they compare and on what time scale.
MVRV
Market Value to Realized Value: market cap divided by Realized Cap. A reading of 1.61 means the market currently prices the supply at 1.61 times what it last changed hands for. Full explanation in the MVRV guide.
NUPL
Net Unrealized Profit/Loss: (market cap minus Realized Cap) divided by market cap. It expresses the same gap as MVRV, but as a share of current value. At 0.38, about 38 percent of Bitcoin's market value is unrealised gain on paper. Details in the NUPL guide.
Realized Price
Realized Cap divided by supply: the aggregate cost basis per coin. When the market price is above it, the average holder is in unrealised profit; below it, in unrealised loss. See the Realized Price guide.
SOPR
Spent Output Profit Ratio: for the coins that moved today, the price they moved at divided by the price they were created at. Above 1, the coins spent today were on aggregate spent at a gain; below 1, at a loss. Unlike the other three, SOPR looks only at what moved in a 24-hour window, not at the whole supply.
Where CoinVett's numbers come from
The figures on the Bitcoin page are computed with the Bitcoin Research Kit (BRK), open-source software under the MIT licence that indexes a full Bitcoin node and derives these metrics from the raw UTXO set. The preferred source is a full node CoinVett runs itself. If that node is unreachable, the public instance of the same software at bitview.space supplies the data. The source is recorded for every measurement and shown next to the figures, so you always see whether a number came from the own node or from the public instance.
This is a deliberate choice. Commercial on-chain providers deliver polished dashboards, but their methodology is a black box and the interesting charts sit behind a paywall. Running the software yourself means you can check every number against your own node. How the sync works, how stale data is handled and what happens when the node is down is documented on the methodology page.
How to read on-chain metrics sensibly
Three habits help.
Read them as a state description. MVRV at 1.6 describes where the market price sits relative to the aggregate cost basis today. That is all. It is a thermometer reading, not a weather forecast.
Compare over long windows. Since 2011, MVRV has spent about 13 percent of days below 1, 55 percent between 1 and 2, 24 percent between 2 and 3 and under 8 percent above 3. Knowing that distribution turns a raw number into context. The 30-day range shown next to each metric on the Bitcoin page does the same on a shorter horizon.
Remember the ledger has no idea why coins moved. An exchange reshuffling its cold storage creates fresh UTXOs at today's price without anyone buying anything. A lost wallet from 2011 sits in the Realized Cap at a few dollars per coin forever. The metrics are honest about the chain, not about human behaviour.
What on-chain data cannot do
This section is not a formality. It is the most important part of the guide.
- It cannot predict prices. Every on-chain metric is computed from past blocks. It describes the present state of the ledger. Any claim that a metric "says where price is going" is an interpretation added by a person, not something in the data.
- It cannot tell you when to act. The longer stretches in which MVRV sat below 1 (late 2011, January to October 2015, November 2018 to April 2019, June 2022 to January 2023), plus a handful of brief dips (a few days in March 2020, and several short episodes of a few days each in 2012 and 2014), are facts about the past. They are not a rule. The next episode can look completely different, or not happen at all for years.
- It cannot see off-chain activity. Trades inside an exchange, coins held in ETF custody that never move, derivatives positions: none of that touches the UTXO set.
- It cannot identify people. A UTXO is not a holder. One person may control thousands; one exchange address may hold coins for millions of customers.
- It is not immune to distortion. Lost coins, custodial reshuffles and protocol-level changes (like wrapped or bridged bitcoin) all affect the numbers in ways that have nothing to do with market sentiment.
If a website colours these metrics green and red and attaches instructions, it has left the domain of analysis and entered the domain of advice. CoinVett does not do that, and not only for regulatory reasons: the data does not support it.
Frequently asked questions
Is on-chain analysis only for Bitcoin?
No, but Bitcoin is where it works best. The UTXO model makes cost basis straightforward to compute. Account-based chains like Ethereum need different methods, and their metrics are less comparable across time because the supply itself changes with staking and burning.
How often do the numbers update?
On CoinVett, once per day. That is a product decision, not a property of the metrics: the Bitcoin Research Kit computes MVRV, NUPL and Realized Price per block and per day, so finer resolutions exist. CoinVett syncs the daily series once a day and shows that value together with its 30-day range. A block-level feed would show the ratio wiggling with every price tick, and for the questions these guides answer, where does the average holder stand and how has that shifted over weeks, the daily close is enough. The "data as of" date on the Bitcoin page shows the last computed day.
Do I need to run a node to use this?
No. But you can, and that is the point. Bitcoin Core plus the Bitcoin Research Kit on ordinary hardware reproduces every on-chain figure on this page: MVRV, NUPL, Realized Price, SOPR and the historical distribution above. (Market data from CoinGecko, the Fear & Greed index and the contract checks elsewhere on the site come from other sources and are not part of that claim.) Few asset classes allow that kind of verification.
Source and notice: Bitcoin Research Kit (own full node; public instance bitview.space as fallback, source shown per measurement). These figures are descriptions of historical on-chain data, not a valuation or a recommendation. Nothing on this page is investment advice.