Coin Days Destroyed

For every input spent in a block we compute (block time minus prevout time) in days, multiplied by the input value in BTC. Sum across the block and you get its CDD. High CDD means long-dormant coins moved; low CDD is recent-output churn. The metric responds dramatically to whale activity, exchange distributions, and cycle tops.

57,554,915,355
BTC·days destroyed (covered range)
3,385,286,818
non-coinbase inputs walked
9,165,708,988
BTC of input value seen
100.0%
of chain scanned
953,019 blocks indexed (heights 0–953,018) chain tip: 952,939

Daily CDD

Per-day sum across all blocks. Y-axis is log scale because real CDD spans many orders of magnitude: sleepy days clock in around 105 BTC·days, the 2024 Mt. Gox trustee distributions cleared 1010+. The orange overlay is the trailing 7-day mean (computed across the full series, sliced into the active window).

What CDD actually tells you

The total Bitcoin supply doesn't change much day-to-day, so plain on-chain volume is noisy and dominated by exchange churn. CDD weights every moved satoshi by how long it sat still. A 1 BTC payment of fresh coins barely registers; a 1 BTC payment of 10-year-old coins is worth 3,650 BTC·days. Big CDD prints almost always come from someone whose decision matters: long-term holders unloading, governments forfeiting seized stashes, exchange cold-wallet migrations, or post-bankruptcy distributions like Mt. Gox.

CDD doesn't tell you direction (buy or sell) and it doesn't tell you who. It tells you that someone with skin in the game moved. That's a lot more signal than total transaction volume, which is mostly hot-wallet rebalancing and consolidation.

Available now

CDD Spike Signal

The chart above is the educational view. The product layer is real-time: every new block is scored, classified, and pushed to subscribers as soon as it confirms. Glassnode and CryptoQuant gate the same metric behind enterprise contracts. We serve it sub-second from our own node, and the price reflects that.

  • State classifier. Each new block fires a Normal / Elevated / Spike / Extreme label from per-block CDD vs. its trailing baseline. Trade the label, skip the math.
  • Z-score + raw metric. Set your own thresholds, or trust the classifier. Same envelope shape as the Fee Pressure signal.
  • Threshold webhooks. Fire on any state transition or score band you configure. Bearer-gated POST, schema-versioned envelope, idempotent retry.

GET https://signals.chainquery.com/v1/signals/cdd — bearer-gated.

Full API docs: CDD API. Bundles with Fee Pressure as the ChainQuery Signal Suite. Tokens: [email protected].

Methodology

← back to all reports