Bitcoin Hash Ribbons

Charles Edwards' miner-stress signal — the 30-day vs 60-day moving average of Bitcoin's network hashrate.
-- loading…
Hashrate & Moving Averages
Left axis in EH/s (10¹⁸ hashes per second). The moving averages only start once a full 30/60-day window of history is available, so they begin partway into the chart. When the green 30-day line dips below the amber 60-day line, hashrate is falling below its recent trend — capitulation. Dots mark the 30d/60d crossovers: amber = capitulation begins, green = recovery. Hover or touch the chart to read exact values at any date. Switch the pill above to LTC and BasinTwo computes Scrypt Hash Ribbons for Litecoin live in your browser. The thin coloured line is price (right axis, Binance daily USDT closes) — reliable free daily closes begin Aug 2017, so on the 5Y and ALL views earlier hashrate history has no price line; the PRICE button hides it. On long ranges with many crossings, crossover dots stay but their date labels are hidden to keep the chart legible.
30-day MA
--
EH/s — simple moving average of daily hashrate
60-day MA
--
EH/s — slower trend line
MA spread
--
30d vs 60d — negative = capitulation
Network hashrate
--
EH/s — current estimate

Signal history — every crossover, including the false starts

Every 30-day/60-day crossover in the full Bitcoin hashrate history since reliable daily closes begin, newest first — computed in your browser from the complete series, regardless of the chart range selected above. Price 30 and 90 days after each crossover is shown as the realized percentage change; green and red are the arithmetic sign of that change, nothing more. Crossovers that were followed by lower prices sit in the same rows, computed the same way.

DateEventCapitulation lengthPrice that day+30d+90d
computing full history…

What is the Hash Ribbons signal?

Hash Ribbons is a miner-stress indicator created by Charles Edwards (Capriole Investments). It watches two simple moving averages of Bitcoin's network hashrate — one over 30 days, one over 60 days — and flags the moments when the faster average falls below the slower one. Because hashrate is physical machines drawing physical power, this crossover means something concrete: miners are switching machines off faster than the recent trend.

The reverse crossover — the 30-day average climbing back above the 60-day — marks recovery: the surviving miners (and new ones) are plugging machines back in, usually because mining is profitable again at the new price and difficulty.

How it's calculated

SMA30(t) = mean(network hashrate, last 30 days)
SMA60(t) = mean(network hashrate, last 60 days)
capitulation: SMA30 < SMA60  // hashrate falling below its own trend
recovery:    SMA30 crosses back above SMA60

This page computes both averages in your browser from mempool.space's (BTC) or litecoinspace.org's (LTC) daily hashrate estimates over the selected range — back to the chain's earliest days on the ALL view. When available, the headline state shown above comes from BasinTwo's own pipeline (Bitcoin only, computed against our full node), which also tracks how many days the current state has lasted; otherwise the browser-computed crossover is shown. Hashrate itself is an estimate derived from difficulty and observed block times, so day-to-day wiggles in the raw series are noise — that is exactly why the signal uses moving averages.

Why it matters for miners

Capitulation is the mining industry's pain made visible: after a price crash, an energy-cost spike, or a halving that cuts revenue overnight, the least efficient machines stop covering their power bill and go dark. Historically, these episodes of maximum miner stress have tended to occur near major market bottoms — sellers who must sell (miners paying power bills) are exhausted, and the subsequent difficulty drop hands the survivors a revenue boost.

The classic entry described by Edwards is to wait for a capitulation, then act on the recovery — the 30-day average crossing back above the 60-day — often combined with a price-momentum filter. Historically this recovery-after-capitulation pattern has clustered near cycle lows, though past behaviour is no guarantee of anything.

Not financial advice. BasinTwo is a mining-analytics site. Hash Ribbons describes the physical state of the mining network; it is published here for education and monitoring, not as a recommendation to buy or sell anything.

FAQ

Is the Hash Ribbons signal financial advice?
No. BasinTwo publishes Hash Ribbons as an analytics and educational tool. It describes the physical state of the mining network — nothing on this page is a recommendation to buy or sell anything.
How often does miner capitulation happen?
Irregularly — historically roughly once or twice a year, but there is no schedule. Capitulations cluster around sharp price drops, energy-cost spikes, halvings and mining crackdowns, and some years see none at all.
Does Hash Ribbons work for Litecoin or Dogecoin?
The same math applies to any proof-of-work chain: compare a 30-day and a 60-day moving average of network hashrate. BasinTwo computes the Bitcoin version and, via the BTC|LTC toggle on this page, Scrypt Hash Ribbons for Litecoin live in your browser. The LTC and DOGE hashrate pages show the underlying series for those chains.
How far back does the chart's history go?
The 5Y and ALL ranges load the full hashrate history — back to 2009 for Bitcoin — from mempool.space and litecoinspace.org. The optional price overlay uses Binance daily closes, which only begin in August 2017, so hashrate history before that date is charted without a price line.
Has the signal ever been wrong?
Yes — and the signal-history table on this page shows every instance rather than a curated highlight reel. It lists every 30-day/60-day crossover since daily price data begins, each scored the same way: the price on the day and the percentage change 30 and 90 days later, with the crossovers that preceded lower prices in the same rows as the ones that preceded higher. Some capitulations also began for logistical reasons — mining bans, winter storms, grid curtailment — rather than miner distress; those rows carry footnotes.
Source: mempool.space API (BTC hashrate history), litecoinspace.org API (LTC hashrate history), Binance public data API (daily USDT closes for the price overlay) and BasinTwo pipeline (BTC signal state & day count) — the pipeline state is computed against BasinTwo's own Bitcoin full node, synced to the chain tip, and cross-checks this external feed. Moving averages computed in your browser. Updated every 60s.