Bitcoin on-chain analytics

Learn

Why we chart what we chart, the Bitcoin fundamentals behind it, and how each metric is actually computed — informational, not financial advice.

Why on-chain data

Bitcoin's ledger is public. Every block, every transaction, and every coin's history back to the moment it was created is sitting there, verifiable by anyone who runs a node. SiftingSats exists to turn that raw ledger into something a person can actually read — without asking you to trust a black box to do it.

Every metric on this site is computed directly from the Bitcoin blockchain. We don't buy data from a vendor, and we don't apply undisclosed adjustments or proprietary smoothing. If a chart says it's coin-days destroyed divided by transferred volume, that's the actual computation running against on-chain data — reproducible, not just described. Where a formula has more than one industry convention (or is genuinely ambiguous), we say so rather than quietly picking one and presenting it as settled fact.

That also means this is a tool, not an advisor. Nothing on this site is a signal to buy or sell, and nothing here is personalized financial advice. We show you what the chain is doing; what you make of that is up to you.

Bitcoin basics

New to Bitcoin? Start here — each card builds on the one before it.

What is Bitcoin?

Bitcoin is digital money that isn't issued or controlled by any bank, company, or government. Instead, it runs on a global network of computers ("nodes"), each independently keeping a full copy of every transaction that has ever happened and enforcing the same rules. There's no central server to hack, bribe, or shut down — and no one who can print more of it whenever they want. Total supply is capped at 21 million BTC, issued on a fixed, published schedule that halves roughly every four years.

SiftingSats computes every number on this site directly from that chain data — so each one can be traced back to the blockchain itself, rather than to a data vendor's word for it.

Blocks & the chain

Roughly every ten minutes, the network bundles up recent transactions into a block and adds it to a running history called the blockchain. Each new block stores a cryptographic fingerprint — a hash — of the block before it. Change anything in an old block, even a single character, and its hash changes, which breaks every block built on top of it. That's what makes the history effectively tamper-proof once enough blocks have piled on: rewriting it would mean redoing all of that work, in full view of everyone else's copy of the chain.

Block N−2transactionsprev hashBlock N−1transactionsprev hashBlock Ntransactionsprev hashBlock N+1 (new)transactionsprev hash
Each block's "prev hash" points back to the one before it — tamper with any block, and every arrow after it breaks.

This is also why the newest few blocks on this site are always marked provisional: a rare, brief reshuffling near the tip (a "reorg") is normal and expected. Once several blocks confirm on top, that history is considered final.

What is a UTXO?

Bitcoin doesn't track account balances the way a bank does. Instead, every bitcoin you own exists as one or more UTXOs — Unspent Transaction Outputs. Think of a UTXO as a sealed envelope holding a specific amount of BTC, created the instant someone receives a payment. It sits untouched until its owner spends it, and spending it means consuming the whole envelope and creating new ones in its place — the payment, and often "change" sent back to the spender.

Existing UTXO1.0 BTC (spent)TransactionNew UTXO0.6 BTC → recipientNew UTXO0.4 BTC → change (yours)
Spending a UTXO consumes it whole and creates new ones — the payment, and usually change sent back to you.

This matters more than it sounds. Every UTXO is stamped with the exact block height and time it was created, so the network — and anyone parsing it, like this site — can tell precisely how old any given coin is at any moment. That single fact is the foundation for most of the "on-chain behavior" metrics under Charts: coin-days destroyed, HODL waves, SOPR, dormancy, and more all start from the same question — how old was this coin when it moved?

Coin age, and why the network remembers it

Every day a UTXO goes unspent, it accumulates one more "coin-day" of age. When it's finally spent, that accumulated age is destroyed all at once — which is exactly what coin-days destroyed measures: the age that gets wiped out the moment a coin moves.

Aggregated across the whole network, coin-days destroyed becomes a rough proxy for conviction. A tiny transaction of very old coins destroys a large number of coin-days — a long-term holder or early miner finally moving. High-frequency trading of newly-created coins barely registers by comparison, no matter how much dollar volume it represents. Track this over time, by cost basis, or by original creation date, and you get most of the metrics grouped under Holder behaviour on the Charts page.

Understanding our metrics

This section covers a representative subset of the metrics on the site to start — more write-ups are on the way.

Realized cap & realized price

Market cap values every coin at today's spot price. Realized cap instead values every coin at the price it last moved on-chain — its cost basis, from the perspective of whoever currently holds it. Summed across the whole supply, it's an estimate of the network's aggregate cost basis, computed directly from a blockchain-derived UTXO-age index joined with daily price — no third-party valuation data involved.

Divide realized cap by supply and you get realized price: the average cost basis per coin. When spot trades below realized price, the market is underwater on average — a pattern that has historically clustered near cycle bottoms; well above it, holders are sitting on aggregate unrealized profit.

Realized cap explainer → · Realized price explainer →

MVRV & MVRV Z-Score

MVRV (Market Value to Realized Value) is market cap divided by realized cap — spot price divided by the network's aggregate cost basis. A value near or below 1.0 means the average holder is at break-even or underwater; a high MVRV means the market is trading well above what people paid for their coins, on average.

The Z-Score variant measures how far market cap sits above or below the network's aggregate cost basis, in standard deviations of market cap's own history — (market cap − realized cap) ÷ the historical volatility of market cap. Expressing the gap that way makes extremes easier to compare across different eras of the market rather than reading the raw ratio in isolation.

MVRV ratio explainer → · MVRV Z-Score explainer →

Supply in profit / loss

Every coin has a cost basis — the price on the day it last moved on-chain. Compare that to today's price and each coin is either in profit (cost basis below spot) or in loss (above it). Supply in profit is the share of all circulating BTC that sits in profit, the rest in loss — stacked to 100% over time.

It's a close sibling of NUPL, with one key difference: NUPL and MVRV weight by dollar value, so a coin deep in profit counts far more than one barely above water. This chart weights by supply — every coin counts once — so it answers "what share of coins are in profit?" rather than "how much unrealized profit exists?". Historically, near-total supply in profit has clustered around cycle tops and heavy loss near bottoms, but as everywhere here it's descriptive, not a signal. Computed from a blockchain-derived cost-basis index × daily price.

The power-law corridor

Plot Bitcoin's price against its age on log-log axes — the logarithm of price against the logarithm of time since genesis — and the long-run history traces a remarkably straight line. A straight line on a log-log plot is the signature of a power law: price growing in proportion to age raised to a fixed exponent, rather than by a fixed percentage each year. The Power Law page fits that relationship to the full price history and draws a corridor — a band around the central fit — rather than a single line, because price has historically oscillated within a channel instead of hugging the trend exactly.

Read it as long-run context, not a forecast. The lower edge of the corridor has tended to coincide with deep bear-market lows and the upper edge with cycle peaks, but a curve fit to the past carries no guarantee about the future — the model describes the shape price has traced so far, not where it must go next. As everywhere on this site, none of it is a signal to buy or sell.

SOPR — the Spent Output Profit Ratio

SOPR looks at coins the moment they move and asks a simple question: is this coin being sold at a profit or a loss, relative to the price it was created at? A SOPR above 1.0 means spent coins realized a net gain that day, in aggregate; below 1.0 means a net loss. The 1.0 line tends to act as a natural support/resistance level in bull and bear markets respectively, since holders are often reluctant to sell at a loss until forced to.

We also surface this in dollar terms — daily realized profit and loss, net profit/loss (NRPL), and a cumulative running tally since genesis — so you can see not just the ratio, but the actual scale of profit-taking or capitulation on any given day.

Full SOPR explainer & live chart →

Coin-days destroyed & HODL waves

Coin-days destroyed and HODL waves are two views of the same underlying data — the UTXO-age index — looked at from opposite directions. CDD looks at what's being spent: a spike means old, long-dormant coins are on the move. HODL waves look at what's not being spent — a stacked-area picture of how much of the circulating supply falls into each age band, from under a day old to over a decade.

Watching both together tells a fuller story than either alone: an aging HODL wave (supply maturing into older bands) paired with low CDD suggests a market settling into accumulation; a shrinking old-coin band paired with a CDD spike suggests those same long-term holders are finally taking profit.

Full HODL waves explainer & live chart →

Liveliness & VDD Multiple

Liveliness takes the coin-days-destroyed idea and distills it into a single gauge between 0 and 1. It's the ratio of all coin-days ever destroyed (age wiped out whenever coins are spent) to all coin-days ever created (age accumulated by coins simply sitting unspent). When long-dormant coins move, the numerator jumps and Liveliness rises; when the market sits still and coins keep aging in place, the denominator keeps growing and Liveliness drifts down.

Rising Liveliness leans toward distribution — older hands spending — while falling Liveliness leans toward accumulation and long-term holding. Like coin-days destroyed itself, it’s computed straight from a blockchain-derived UTXO-age index, and like everything here it's descriptive: a read on aggregate holder behaviour, not a recommendation.

The VDD Multiple (Value Days Destroyed) sharpens the same signal into a cycle oscillator. It weights each day's coin-days-destroyed by price — so a long-dormant, high-value coin moving counts far more than a small recent one — then divides the 30-day average of that value-days figure by its 365-day average (scaled for how much of the eventual 21M supply exists yet). Readings well above 1 mean old, valuable coins are being spent unusually fast versus the past year — historically a hallmark of late-cycle distribution; readings near the lows mark dormant, accumulation-heavy phases. It needs a full year of priced history before it can be computed, so the line stays blank until then. Descriptive, not a signal.

Mining revenue & the Puell Multiple

Every block pays its miner two things: the subsidy — newly-issued BTC on the fixed halving schedule — plus the transaction fees of everything in the block. Together they are the network's security budget: the total reward that makes honest mining worthwhile. As the subsidy halves roughly every four years, fees have to carry a growing share of that budget — which is exactly what the miner-revenue chart tracks (subsidy + fees per day, with fees as a percentage of the total).

The Puell Multiple looks at the issuance side alone: today's USD value of the newly-issued BTC (subsidy only, not fees) divided by its own 365-day average. Above the 1.0 line, miners are earning more than their trailing-year average in dollar terms; below it, less — a rough read on where miner income sits in the cycle. It's computed from block subsidy × daily price, and like everything here it's descriptive, not a signal.

Script types & SegWit adoption

Every Bitcoin output locks its coins with a particular script type — the format that dictates how the coins can later be spent. Older outputs are mostly P2PKH and P2SH; newer ones use P2WPKH (native SegWit, live since 2017) and P2TR (Taproot, live since 2021). OP_RETURN outputs carry data rather than value (Runes “runestones” and similar protocol messages) instead of being spendable payments. The script-type mix chart shows the daily share of outputs by type, so you can watch the network migrate onto newer formats over time.

The SegWit adoption chart is a simpler cut of the same story: the share of daily transactions that carry witness data. It climbs from SegWit's 2017 activation toward majority use — a proxy for how far wallets and services across the ecosystem have upgraded. Both are computed directly from the Bitcoin blockchain.

Reading the trend indicators (Daily & Screener)

On the Daily and Screener tables, a few fee columns carry a small / and a percentage. That percentage is the row's value compared to the median of the recent past — the previous 14 days on Daily, the previous 20 blocks on Screener — not the row just before it. So 86% means that day's fee ran 86% above the typical level of the prior two weeks. We use the median rather than a simple average because a single fee spike would drag an average around; the median is a stable read of “what's normal lately.” The arrows are intentionally neutral in colour — they show direction and size, not good or bad. Higher fees aren't a buy or sell signal.

The badge is a stricter, separate test: it marks a value that is a genuine statistical outlier — unusually far from the recent norm relative to how much that metric normally wobbles (a robust median-based measure, so the spike itself doesn't distort the yardstick). A big percentage on a jumpy metric may earn no badge, while a smaller move on a very steady one can. Hover the badge to see which metric tripped it.

Two practical notes: the oldest rows on a page have no full window behind them yet, so they show no indicator rather than a misleading one; and on the Screener these only appear in the default newest-first view, because a “trailing 20 blocks” comparison is only meaningful when the rows are consecutive blocks. Sort by a column or apply a filter and they step aside. As everywhere on the site, this is descriptive context, not financial advice.

Informational, not financial advice.