Skip to content

← On-chain Bitcoin

Cost Basis Distribution

The full distribution of the supply's cost basis at each date, drawn as percentile bands from the floor where most holders sit to the ceiling of the most expensive coins. Toggle BTC-weighted (each coin equal) or USD-weighted (each dollar of realized value equal). When spot touches the median band, half the market is underwater.

Tier proOn-chain Bitcoinvaluationcost-basispercentilesdistributionrealized-price

What is it?

Every bitcoin carries a cost basis: the market price at its last on-chain move. At each date, the whole supply is ranked by cost basis and the price levels matching a series of percentiles are drawn (the median p50 band = the cost basis below which half the supply sits). Unlike rolling percentiles of a single series, these bands describe the transversal distribution of all holders at one moment in time. The weighting toggle changes the reading: BTC-weighted counts each coin equally (the low bands are dominated by never-moved coins at near-zero cost) ; USD-weighted counts each dollar of realized value (dormant coins weigh nothing, so the low bands lift to real price levels). Reconstructed from a Bitcoin full node.

How to read

Vertical axis = price (logarithmic) ; each coloured band is a cost-basis percentile, from the green floor (cheapest-acquired coins) to the red ceiling (most expensive). The white line is spot price, navigating through the bands. Key reading: when price falls to touch the median band (p50), half the supply moves back into unrealised loss - a market pain zone. When price floats above the high bands (p90-p95), nearly the whole supply is in profit - a euphoria zone. The BTC-weighted / USD-weighted toggle switches between the geography of units (how many coins) and that of capital (how much value).

Key zones

Price below the median band (p50): the majority of supply is in unrealised loss, a historical accumulation zone. Price between p50 and p90: intermediate regime, partial profits. Price above p90-p95: nearly all supply in profit, a historically euphoric zone. The vertical spread between the low and high bands measures the dispersion of the market's cost basis.

What to observe

Watch the spot price's position inside the band fan rather than its absolute value: the same price can be 'low' (near p50) late in a cycle and 'high' (above p95) early in a cycle, depending on where the market accumulated. Also watch the upward translation of the whole band set (the market absorbed fresh capital at higher prices) and the BTC- vs USD-weighted comparison: a wide gap between the BTC median and the USD median indicates recent capital concentrated well above the cost basis of the largest number of coins.

Historical context

Across cycles, capitulation phases saw price plunge toward or below the median band, pushing a large share of supply into loss, while cycle tops saw price stretch far above the high bands. The share of never-moved coins (near-zero cost basis) was a majority in the very early years then structurally declined as supply circulated - hence BTC-weighted low bands that slowly lift over time.

Expert notes

This distribution is a regime-reading tool, not a mechanical buy rule: 'price touches p50' describes market pain, but the percentile touched measures relative pain, not absolute cheapness - in a structurally appreciating asset, maximum pain occurs at prices well above cycle floors. Combine with an absolute valuation metric (MVRV) and the heatmap view for fine density. USD-weighting excludes dormant or lost coins and better reflects the geography of capital actually invested.

Common mistakes to avoid

The median band is not a guaranteed floor: price can fall below p50 and stay there for long in a deep bear. The low percentile (green floor) is not the market's 'true' minimum cost under BTC-weighting, because never-moved near-zero-cost coins drag the low bands down - which is exactly why the USD-weighted view exists. Finally, a price above p95 does not announce a reversal: it describes a state (nearly the whole market in profit), not a top probability.

Programmatic access

REST API

curl -sS \
  'https://api.trinityinsights.io/api/v1/onchain/cost-basis-distribution/history?days=90' \
  -H 'X-API-Key: $TRINITY_API_KEY'

MCP server

{
  "tool": "get_chart_value",
  "metric_id": "cost-basis-distribution",
  "timeframe": "1y"
}

Required tier: pro. See the pricing grid for the tier list and the MCP documentation for multi-client configuration.

Related metrics

Institutional disclaimer

Trinity Insights is an educational and analytical tool. The metric above does not constitute investment advice. Trinity Insights is not a Crypto-Asset Service Provider (CASP) registered under MiCA Regulation (EU) 2023/1114. See the full disclaimer.