On-chain analytics primer
What you can actually learn from a public blockchain. The core metrics, where they come from, and where the analyses go wrong.
A public blockchain is the most over-instrumented system in financial history. Every transfer, every wallet's full history, every miner's revenue — visible to anyone with a node and a SQL prompt. On-chain analytics is the discipline of turning that firehose into something useful. It is also a discipline routinely abused by people selling subscriptions. Knowing the difference is most of the work.
What's actually visible
- Every transaction: inputs, outputs, fees, timestamp, block.
- Every address's full balance and history forever.
- Coin movement patterns: how long has this coin been held, where did it come from, what cluster of addresses controls it.
- Miner activity: which pools mined which blocks, what they paid in fees, where they're sending the rewards.
What's not directly visible: who controls an address. The central skill of on-chain analysis is mapping addresses to entities — exchanges, miners, ETFs, large holders — using behavioral fingerprints, deposit address tracing, and known clusterings.
Foundational metrics
UTXO age distribution
Bitcoin tracks every coin's last-moved date by definition (because every UTXO has a creation block). Aggregating this gives you a picture of how much of the supply has been sitting still for various periods. The 'long-term holder' supply (UTXOs older than 155 days, by convention) is the canonical example. When LTH supply rises during a rally, conviction holders are accumulating; when it falls sharply, conviction holders are distributing.
Realized cap
Market cap is silly: it multiplies the last trade price by total supply. Realized cap is more honest: it sums the value of every coin at the price it last moved. It approximates the cost basis of the entire network. When market cap rises faster than realized cap, the unrealized gain across all holders is growing — a setup that historically resolves with profit-taking.
Spent output profit ratio (SOPR)
For every UTXO that moves on a given day, compare the price when it moves to the price when it was created. SOPR is the ratio. SOPR > 1 means coins are being moved into profit on average; SOPR < 1 means they're being moved at a loss. Persistent SOPR < 1 in a rising market is unusual and bullish; SOPR rebounding off 1.0 from below is a textbook reversal signal.
Exchange flows
Net deposits to known exchange addresses (sell pressure preparing) vs. net withdrawals (long-term holding intent). The cluster identification is imperfect, but the broad direction is meaningful, especially around macro events.
Where the analysis goes wrong
Address ≠ entity
A single entity often controls thousands of addresses. The same address might be one user's deposit address that the exchange controls, not the user. Wallet labels are guesses, sometimes outdated, sometimes wrong. Drawing strong conclusions from a single address's behavior is amateur hour.
Internal exchange transfers
Exchanges constantly shuffle coins between hot wallets, cold storage, and consolidation addresses. These movements look like flows but are operational noise. A naive 'exchange outflows are bullish' indicator that doesn't filter for known internal movement is mostly noise.
Wrapped, lent, and rehypothecated supply
Bitcoin on Ethereum (WBTC), bitcoin held by ETFs that don't report holdings on-chain in real time, bitcoin pledged as collateral and re-lent multiple times. Naive 'illiquid supply' metrics treat all of these as if they're locked up; in reality they're often actively trading via paper claims.
Survivorship bias in cycle analysis
On-chain commentators love to point at past cycles and say 'this metric called the top.' Often it called four prior tops too, with no precision. Look at unconditional historical accuracy, not the cherry-picked moments.
Practical sources
- Glassnode — premium, well-curated, expensive. The reference for serious on-chain.
- Mempool.space — free, real-time mempool and block explorer with great visualization.
- Dune Analytics — write your own SQL against indexed chain data. Best for ad-hoc questions.
- CryptoQuant — exchange-flow specialist, good complement to Glassnode.
- Chainalysis — closed institutional product; their public reports are valuable for trend context.
How to actually use this
On-chain metrics are best for context, not signals. They tell you what's structurally going on — is supply concentrating or distributing? Are miners stressed? Are LTHs accumulating? — across periods of weeks to quarters. They are bad at calling daily moves; orderbook flow and macro variables dominate at that timescale.
Pair on-chain analysis with off-chain context. ETF flows, derivatives positioning, macro events. The chain tells you the floor of what's true; the rest of the picture has to come from somewhere else.