Liquidation Heatmap
API ▸ How to call thisForced liquidations that actually executed on Binance, OKX, Bybit, Bitget and BitMEX, placed at the time they printed and at the price the exchange reported for them — and only Binance reports a fill. Bybit, Bitget, OKX and BitMEX report a price their liquidation engine set, not a level the tape traded, which is why some cells sit outside the candle beside them. Switch to Projected for a model of where liquidations would sit instead.
How to read this heatmap
Every cell already happened
This view plots forced liquidations the exchanges publicly reported. Cyan/green/yellow = longs were liquidated there, red/pink = shorts. Colour follows the side that was actually liquidated, so a long wipeout can print above price during a whipsaw. Brighter = more notional in that cell, log-scaled so one cascade cannot black out the rest.
Candles
A candle is green when the bar closed up and red when it closed down — that is the default. The candle-colour button above the chart switches the pair to the original white up / black down scheme and remembers which you chose; the two outlined chips in the chart legend always show the pair actually being drawn. Whichever pair is on, a candle is the only mark here with a wick and a hard keyline around its body, and the flat unoutlined blocks behind it are liquidation cells whose colour means which side was liquidated, never a direction — so a red candle is a bar that closed down, while a red cell is a short that was force-closed. Real Binance USD-M perpetual bars — the same market the liquidations come from. Each column's candle is aggregated from several finer bars that open inside that column, so the bar you see spans the column it is drawn on. The note under the timeframe buttons says which market drew them, how many bars went into each candle and how much of the column they are guaranteed to cover — for the few symbols Binance lists on spot only, it says the overlay fell back to spot.
Why colour can sit where the candle never went
A cell is placed at the price the exchange reported for that liquidation, and the venues do not all report the same thing. Only Binance publishes a fill: its stream carries ap, the average fill price of the liquidating order. The other four publish an engine price. Bybit publishes a bankruptcy price, Bitget a liquidation price, OKX a liquidation-mark price (bkPx, which OKX defines as “the price of the transaction with the system’s liquidation account”), and BitMEX a resting liquidation order price whose quantity field is leavesQty — the part that had not filled. Four of the five are prices the exchange’s engine set, not prices anything changed hands at. Measured 2026-08-18 17:47 → 2026-08-28 17:47 UTC on 31,544 BTC prints, each venue against its own 1-minute perpetual candles — Binance USD-M BTCUSDT, Bybit linear BTCUSDT, OKX BTC-USDT-SWAP, Bitget BTCUSDT, BitMEX XBTUSD/XBTUSDT — allowing the adjacent minute and a 2 basis-point tolerance: Bitget 90.9% of its prints outside the traded high/low of the minute they printed in (median $245 away), Bybit 65.7% (median $191), OKX 5.3% (median $255), Binance 1 print in 5,744 (0.02%). BitMEX contributed only 79 BTC prints in the window, too few to put a percentage on. Bybit and Bitget together were 64.8% of the prints. So a bright cell above or below the candle is usually the engine’s price for a forced close, not a level price reached. There was a second cause, and it was ours: every cell is a perpetual-futures liquidation, and the candle behind it used to be drawn from Binance spot. Over 1,000 consecutive 1-minute bars the BTC perp mid sits a median $31.78 below spot, and 1,000 of those 1,000 perp bars have a range the spot bar does not contain — so a perp print drawn against a spot wick escapes it as arithmetic, whatever the venue reported. The overlay is now the USD-M perpetual market, and so is the current-price line and every cluster distance measured from it.
Cluster labels
Pills on the right edge mark the three heaviest long and short clusters in this window — price level, and how far that level sits from the current price as a percentage. That percentage is a distance, not a probability.
Blank space is coverage, not calm
An empty column can mean nothing liquidated, or that nothing was being recorded yet. The note under the timeframe buttons says which, and from when recording starts. Cascade risk and the nearest-cluster distances are model outputs, so this view has no number for them and displays the placeholder character “—” (an em dash) instead; switch to Projected for those.
Realized = forced liquidations that actually executed on the exchanges, placed at the price each exchange reported for them. Projected = where liquidations would occur if price reached that level, modelled from open interest and leverage bands — not events that happened.
What these metrics mean
Cascade Risk
Reads — in this view, and that is the honest answer: cascade risk is scored from projected positions, and the realized feed reports executed events instead. A number here would have to be invented. Switch to Projected to see it, and read its definition there before you use it.
Nearest Long Liq
How far below the current price the closest realized long cluster sits — a price level where longs were actually force-closed inside this window. It is history, not a warning that longs are stacked there now: that leverage is already gone. Reads — when no long cluster printed below spot.
Nearest Short Liq
The same measurement above the price, for shorts. The two are independent readings here and will normally differ — unlike in the Projected view, where the model forces them to be equal.
Long / Short Liq (window)
The one KPI this view can fill: total notional liquidated on each side inside the window the feed actually returned — the header states that window. Long-heavy means longs were the ones being flushed, which is history, not positioning.
Nothing is estimated or sampled to fill this space. The realized-liquidation panel further down reads a different, fully public feed and may still have data.
Inside the projected model
Nothing here has happenedThis map is arithmetic, not observation. Its usual inputs are three live numbers for this symbol — total open interest, the average funding rate, and the current price — from which it works out where positions would be liquidated if the crowd were leveraged the way the funding rate suggests. Where the feed also supplies observed positions, those are used directly, and the band list below says which sources this chart actually got. Not one liquidation on this chart has occurred. Step through what it actually computes:
- Any individual trader’s real liquidation price — no exchange publishes it.
- Anyone who entered at a price other than today’s, which is most of the market.
- Margin added after entry, which moves a liquidation price without touching open interest.
- Cross-margin accounts, where one position’s liquidation depends on all the others.
- Stop losses and hedges, which close positions before a liquidation ever happens.
- The true long/short split of open interest — the upstream feed reports one total.
So a bright band is not a forecast. It says: if price arrived there, and if the crowd is leveraged the way funding implies, and if they entered near today’s price, then that is roughly where forced flow would appear. Three conditionals deep. The band furthest from spot is the model’s lowest-leverage cohort and can sit tens of percent away, which is why the projected price axis is far wider than the range price has actually traded — that empty space is the model’s reach, not the market’s range. For liquidations that genuinely executed, switch the toggle to Realized.
| Side | Liq Price | Leverage | Volume | Distance | Intensity |
|---|---|---|---|---|---|
| Loading... | |||||
| Price Level | Total Notional | Long | Short | Events | Dominant |
|---|---|---|---|---|---|
| Loading… | |||||
The chart above is real executed liquidations — free, no account, same data whether you are signed in or not. Trader unlocks the Projected view in the toggle above — modelled liquidation levels from open interest × leverage bands, across all 500+ symbols — plus the on-chain DeFi lending liquidation feed further down this page.
Where the events come from
Forced-liquidation prints are read straight off the exchanges' own public WebSocket streams — Binance, OKX, Bybit, Bitget and BitMEX. Every cell is an order the exchange itself reported as a liquidation. Nothing is modelled, inferred or filled in. The chart header names the venues that actually contributed to the window you are looking at, not a fixed list.
How a cell is built
Each print is placed in the time bucket it printed in and in the price bucket of the price the exchange reported for it, and the notional in that cell is summed. That reported price is usually not a traded price. Only Binance publishes a fill: its stream carries ap, the average fill price of the liquidating order. The other four publish an engine price. Bybit publishes a bankruptcy price, Bitget a liquidation price, OKX a liquidation-mark price (bkPx, which OKX defines as “the price of the transaction with the system’s liquidation account”), and BitMEX a resting liquidation order price whose quantity field is leavesQty — the part that had not filled. Four of the five are prices the exchange’s engine set, not prices anything changed hands at. Measured 2026-08-18 17:47 → 2026-08-28 17:47 UTC on 31,544 BTC prints, each venue against its own 1-minute perpetual candles — Binance USD-M BTCUSDT, Bybit linear BTCUSDT, OKX BTC-USDT-SWAP, Bitget BTCUSDT, BitMEX XBTUSD/XBTUSDT — allowing the adjacent minute and a 2 basis-point tolerance: Bitget 90.9% of its prints outside the traded high/low of the minute they printed in (median $245 away), Bybit 65.7% (median $191), OKX 5.3% (median $255), Binance 1 print in 5,744 (0.02%). BitMEX contributed only 79 BTC prints in the window, too few to put a percentage on. Bybit and Bitget together were 64.8% of the prints. So cells at price levels the candle never reached are the normal case here, not an error — they are where the engine priced a forced close. There was a second cause, and it was ours: every cell is a perpetual-futures liquidation, and the candle behind it used to be drawn from Binance spot. Over 1,000 consecutive 1-minute bars the BTC perp mid sits a median $31.78 below spot, and 1,000 of those 1,000 perp bars have a range the spot bar does not contain — so a perp print drawn against a spot wick escapes it as arithmetic, whatever the venue reported. The overlay is now the USD-M perpetual market, and so is the current-price line and every cluster distance measured from it. Colour is the side that was liquidated, so a long wipeout can print above price during a whipsaw. Brightness is log-scaled against the smallest populated cell, because one cascade routinely carries a thousand times the median cell and would otherwise black out everything else.
Coverage is the honest caveat
The limit on this view is not accuracy, it is coverage: we can only show what was being recorded. A blank column means nothing was recorded then, which is not the same as a quiet market — the note under the timeframe buttons states how many columns carry recorded liquidations and, where the window starts before recording did, from when recording begins.
Every bright cell already happened
A bright red cell is shorts that were force-closed at that time, at the price the exchange reported for them; a bright cyan cell is longs. This is a record, so it carries no opinion about the future — it tells you which price levels have already been cleared of leverage, and how violently. The levels that blew up are, by definition, the ones no longer stacked there.
Read the gaps as carefully as the clusters
Sparseness is normal and it is the truth: real forced liquidations are rare and clustered. In a live 4h BTC window only a small minority of cells are populated at all. Resist reading an empty stretch as calm until you have checked the coverage note — an empty column is either “nothing liquidated” or “nothing was recording”, and the page distinguishes them for you rather than letting them look identical.
Coverage, not completeness
We show every liquidation our recorders saw, which is not every liquidation that occurred. A venue whose socket dropped, a symbol that was never subscribed, or a window that reaches back before recording started all produce blank space. Blank space here means “not recorded”. The coverage note under the timeframe buttons says which it is, and we would rather print that than a tidier-looking chart.
Venue mix moves the picture
Different exchanges report liquidations differently — some aggregate, some throttle, some publish each fill. They also disagree about what the price on a print means: Binance reports an average fill price, and Bybit, Bitget, OKX and BitMEX each report a price their liquidation engine set — a bankruptcy price, a liquidation price, a liquidation-mark price and a resting liquidation-order price respectively — all of which sit away from the last trade by construction. So the relative height of two clusters partly reflects which venues were live and talkative, and their exact price level partly reflects which of those two things a venue publishes. Compare clusters within one window before comparing across windows.
History is not a forecast
A record of forced selling tells you where leverage has already been cleared. It does not predict direction, and we have published the pre-registered studies where this data showed no durable directional edge. Use it as one input alongside your own analysis and position sizing.
Realized view: every cell above is a forced liquidation an exchange publicly reported, at the price that exchange reported for it — an average fill price on Binance, and a price the liquidation engine set on Bybit, Bitget, OKX and BitMEX, which is not a price anything traded at. The candle overlay is the Binance USD-M perpetual market, the same instrument the prints come from. Coverage begins when our recorders did, so gaps mean unrecorded, not calm. Informational only — not a recommendation, and not a forecast.
DeFi Lending Liquidations
Real, executed on-chain liquidations on AAVE, Venus & Benqi — captured directly from the project's own BSC & Avalanche full nodes. Unlike the CEX perp-liquidation heatmap above (which estimates leveraged positions), every row here is a confirmed on-chain event you can independently verify on the block explorer.
Live DeFi lending liquidations (AAVE, Venus, Benqi) streamed from our own BSC & Avalanche nodes are available to authenticated accounts. Log in or paste an API key above to see confirmed on-chain events.
| Time | Chain | Protocol | Debt Repaid | Collateral Seized | Borrower / Tx | Liquidator |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Liquidation heatmap — common questions
What is a crypto liquidation heatmap?
A liquidation heatmap shows where leveraged positions would be forcibly closed if price reached a given level. Bright bands mark price levels where a large notional value of positions shares a liquidation price, so a move into that band can trigger a cascade of forced selling or buying.
How is this heatmap calculated?
Two different ways, and you choose which with the Realized / Projected toggle above the chart — the badge always says which one you are looking at. Realized is the default: actual forced-liquidation events that executed, bucketed by time and by the price the exchange reported for each one, with brightness on a log scale. Only Binance reports an average fill price there; Bybit reports a bankruptcy price, Bitget a liquidation price, OKX a liquidation-mark price and BitMEX a resting liquidation-order price, so cells can sit outside the candle beside them. The timeframe button sets both the column width and the lookback window — from 5-minute columns over the last few hours up to daily columns over 90 days — and the chart labels the window it actually received. Projected (also shown as Estimate) is the model, and the fallback when no liquidations printed for that symbol (or the feed is down): it projects where liquidation prices cluster from live open interest, funding and long/short data plus the leverage bands typical of each venue. An estimate cannot see individual traders' actual liquidation prices, which no public data source can.
Which exchanges and symbols are covered?
Realized liquidations come from Bybit, Binance, OKX, Bitget and BitMEX; the estimate view is built from Bybit, Binance and Hyperliquid derivatives data. 500+ derivatives markets either way. The free tier covers BTC, ETH and SOL; paid tiers cover every symbol.
How often does the data update?
Derivatives data refreshes every two minutes, and the heatmap is rebuilt from the latest snapshot on each load.
Do liquidation clusters predict price?
No, and we will not claim otherwise. We have run pre-registered studies on whether this data forecasts direction and published the ones that found no durable edge. A heatmap tells you where forced flow would occur if price arrives there — it does not tell you that price will arrive there.
Is the liquidation heatmap free to use?
Yes. The page is public, and the free API tier gives 200 calls a day with no delay, covering BTC, ETH and SOL. No card is required.