A field lab for reading the chain like a scientist.
OnChainLab is a personal Bitcoin on-chain analytics project. It turns raw blockchain data into reproducible metrics, documents how each one is computed, and stays honest about what is measured versus estimated. Free, no accounts, no paywall.
The chain doesn't lie, but it doesget misread. Most "analysis" is a chart with an arrow and a feeling. I'd rather build the pipeline in the open, show the method behind every number, and let the data — not the take — carry the argument.
What this project believes
Reproducible or it doesn't ship
Every metric on this site is computed from the public chain by a pipeline you could in principle re-run. If a number can't be traced back to the UTXO set and a block height, it doesn't belong on the dashboard.
Show the method, not just the line
Each metric page documents how it's derived. Estimated or interpolated quantities (like realized cap) are flagged as estimates, not presented as ground truth.
The median over the headline
One indicator screaming is noise. Where models are combined, the read leans on agreement across independent metrics rather than a single hot take — and projections are labelled as projections.
Analyst, not influencer
No moon emojis, no price targets sold as certainty, no accounts to sell you. The writing aims to be precise, hedged where it should be, and honest about uncertainty.
How a metric is born
Every number on this site runs the same path before it earns a place on the dashboard: from a full archive node, through storage, to a daily computation. No third-party data feeds, no curve-fitting to last cycle.
Figures describe this project's scope, not a trading track record.
Methodology notes
A few of the headline metrics and how they're defined. All are computed from Bitcoin's UTXO set and public blockchain data — there are no proprietary inputs.
Realized Cap — Estimated via multi-seed interpolation of UTXO creation prices. Each UTXO is valued at the BTC price on the day it was created, then summed across all live UTXOs. Treated as an estimate, not an exact figure.
SOPR — Spent Output Profit Ratio. Values above 1 indicate coins moved at a profit.
MVRV — Market Value to Realized Value. High Z-scores signal potential overvaluation.
CDD — Coin Days Destroyed. Measures the age of spent coins — a spike means long-dormant coins are moving.
aSOPR — Adjusted SOPR. Filters out outputs younger than one hour to reduce noise from change outputs.
Who builds it
One maintainer. Quant-curious, opinion-light.
OnChainLab is a personal, single-maintainer project — not a company, a fund, or a research desk. There is no team, no investors, and nothing to sign up for.
It exists because running a full archive node and computing these metrics by hand is genuinely interesting, and because the resulting dashboard is more useful shared than kept private.
Plans for paid model tiers are aspirational and not live; today everything here is free and there is no billing of any kind.
Read the chain for yourself.
Start with the dashboard, or dig into how the cycle read is built. All of it is free.