vike

Recipe 3 of 8

Liquidation cascade on Hyperliquid: did whales see it coming?

Find the hour of the move with candles, pull the liquidations inside it, then read every cohort's long/short bias in the hours before.

Three calls. /v1/hyperliquid/ohlcv finds the hour of the move. /v1/hyperliquid/liquidations lists the forced closes inside it. /v1/hl-cohorts/symbols/{symbol}/cohort-metrics returns, for every hour, each cohort's BTC long and short notional and its bias, so you can read how whales were positioned before the move started. The parameters are on Candles, Liquidations and Coin cohort metrics.

Quick answer

cURL — candles
# the 24 hourly BTC candles of the day, to find the hour of the move
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/ohlcv?symbol=BTC&interval=1h&start=2026-10-22T00:00:00Z&end=2026-10-23T00:00:00Z&limit=24"
cURL — liquidations
# longs liquidated on BTC inside that hour, newest first
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/liquidations?symbol=BTC&direction=long&start=2026-10-22T01:00:00Z&end=2026-10-22T02:00:00Z&limit=5"
cURL — cohorts before
# every size cohort's BTC positioning, hour by hour, in the six hours before the move
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?axis=size&start=2026-10-21T19:00:00Z&end=2026-10-22T01:00:00Z&hours=7"

Example response

Captured from the live API on 2026-10-24 at 17:19 UTC. Candles trimmed to 3 rows, liquidations to 2 (label_computed removed), and the cohort matrix to two cohorts at the first and last hour of the window.

Candles
{
  "symbol": "BTC",
  "market": "perp",
  "dex": "HL",
  "interval": "1h",
  "tz": "UTC",
  "source": "1h fills rollup",
  "candles": [
    {
      "ts": 1792627200000,
      "open": 84047.0,
      "high": 84312.0,
      "low": 84046.0,
      "close": 84155.0,
      "volume": 1245.7687899999987,
      "volume_usd": 104861739.09864005,
      "n_trades": 9893
    },
    {
      "ts": 1792630800000,
      "open": 84156.0,
      "high": 84335.0,
      "low": 83368.0,
      "close": 83370.0,
      "volume": 2714.893270000001,
      "volume_usd": 227242737.36762005,
      "n_trades": 20759
    },
    {
      "ts": 1792634400000,
      "open": 83368.0,
      "high": 83442.0,
      "low": 82777.0,
      "close": 82894.0,
      "volume": 4385.550420000001,
      "volume_usd": 364199989.2592602,
      "n_trades": 29471
    }
  ]
}
Liquidations
{
  "liquidations": [
    {
      "liq_ts": "2026-10-22T01:54:00+00:00",
      "wallet": "0xfc6c21ddb7b30a775ffff48021176d55f226f119",
      "symbol": "BTC",
      "side": "long",
      "size_token": 0.0652,
      "size_usd": 5456.581479999999,
      "mark_price": 83689.9,
      "size_cohort": null,
      "pnl_cohort": "2x rekt",
      "pnl_cohort_basis": "point_in_time",
      "asset": "BTC"
    },
    {
      "liq_ts": "2026-10-22T01:54:00+00:00",
      "wallet": "0xfbfae1268fc37646c956cddeb6d1ccb5d58ce0bb",
      "symbol": "BTC",
      "side": "long",
      "size_token": 0.01731,
      "size_usd": 1448.6721689999997,
      "mark_price": 83689.9,
      "size_cohort": null,
      "pnl_cohort": "loser",
      "pnl_cohort_basis": "point_in_time",
      "asset": "BTC"
    }
  ],
  "nextCursor": "eyJ0cyI6IjIwMjYtMTAtMjIgMDE6NTQ6MDAuMDAwIiwidyI6IjB4ZjY0YzExN2FmOGZlMjgzNDZmMTY5YmE0ZDU3NDM5ZWRiYWM3Mjg0NyJ9"
}
Cohorts before the move
{
  "axis": "size",
  "label_basis": "point_in_time",
  "metrics": [
    {
      "ts": "2026-10-22T00:00:00+00:00",
      "cohort": "4x whale",
      "position_count": 21,
      "position_count_long": 9,
      "total_position_value": 1161726137.0,
      "total_position_value_long": 357889877.1,
      "total_unrealized_pnl": -18709507.69,
      "total_position_size": 13788.05233,
      "total_position_size_long": 4247.64856,
      "bias": -0.3838653265,
      "label_basis": "point_in_time",
      "grading": null
    },
    {
      "ts": "2026-10-22T00:00:00+00:00",
      "cohort": "shrimp",
      "position_count": 29882,
      "position_count_long": 20375,
      "total_position_value": 49859528.9,
      "total_position_value_long": 22801601.8,
      "total_unrealized_pnl": 158469.3891,
      "total_position_size": 591.82373,
      "total_position_size_long": 270.651,
      "bias": -0.08536633594,
      "label_basis": "point_in_time",
      "grading": null
    },
    {
      "ts": "2026-10-21T19:00:00+00:00",
      "cohort": "4x whale",
      "position_count": 22,
      "position_count_long": 10,
      "total_position_value": 1212561698.0,
      "total_position_value_long": 377115964.9,
      "total_unrealized_pnl": -20961813.99,
      "total_position_size": 14336.13418,
      "total_position_size_long": 4458.64741,
      "bias": -0.3779846988,
      "label_basis": "point_in_time",
      "grading": null
    },
    {
      "ts": "2026-10-21T19:00:00+00:00",
      "cohort": "shrimp",
      "position_count": 29963,
      "position_count_long": 20386,
      "total_position_value": 39885639.89,
      "total_position_value_long": 20986332.59,
      "total_unrealized_pnl": 141190.3246,
      "total_position_size": 471.70228,
      "total_position_size_long": 248.18586,
      "bias": 0.05232523017,
      "label_basis": "point_in_time",
      "grading": null
    }
  ],
  "hours": 6,
  "nextCursor": null,
  "grading": null
}

2026-10-22 was BTC's largest daily drop of the 30 days before the capture (84,047 to 81,410), and its largest hour started at 01:00 UTC (84,156 to 83,370). Longs were liquidated in it; side: "long" is the side that was closed. The window returned the six buckets from 19:00 to 00:00. In every one of them 4x whale (accounts of $10M or more) was net short, bias between -0.33 and -0.39 on $1.14B to $1.21B of BTC notional, while 2x whale ran +0.51 to +0.62 and shrimp stayed near flat. The largest accounts were already short; they did not turn short into the move.

Variations

Find the day first. Thirty daily candles, then pick the day with the largest move.

cURL — daily candles
# BTC daily candles for the last 30 days
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/ohlcv?symbol=BTC&interval=1d&limit=30"

Smart money instead of size. The same window on the realized-PnL ladder, with each hour's label as it stood then. In the capture 3x smart was net short (-0.14 to -0.17) and 2x rekt heavily long (+0.62 to +0.68).

cURL — PnL cohorts
# PnL cohorts before the move, labels frozen at each hour
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?axis=pnl&labelBasis=point_in_time&start=2026-10-21T19:00:00Z&end=2026-10-22T01:00:00Z&hours=7"

Every liquidation of the hour. A page holds up to 5,000 rows; pass nextCursor back as cursor until it is null.

cURL — next page
# the next page of the hour's long liquidations; NEXT is the previous nextCursor, verbatim
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/liquidations?symbol=BTC&direction=long&start=2026-10-22T01:00:00Z&end=2026-10-22T02:00:00Z&limit=5000&cursor=$NEXT"

A squeeze instead of a dump. When price jumps, shorts are the side liquidated.

cURL — shorts
# shorts liquidated on BTC inside the hour
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/liquidations?symbol=BTC&direction=short&start=2026-10-22T01:00:00Z&end=2026-10-22T02:00:00Z&limit=100"

Before you rely on it

Ask the PnL axis for point-in-time labels

On axis=pnl the default grades every past hour with today's label, which looks ahead: a wallet graded smart today may not have been smart that night. Pass labelBasis=point_in_time for a study of the past. axis=size is always point-in-time, so the size matrix in the example needs nothing extra.

Bias is a share of notional, and the matrix has no current hour

bias is (long - short) / (long + short) of the cohort's BTC notional in that hour, so a cohort can hold more long positions by count and still read short, as shrimp does at 00:00. The matrix serves settled hours only, so the newest bucket is one to two hours behind the clock; read freshness on a window that reaches the present.

Ask your agent

Connected to the Vike MCP server (https://vike.io/mcp) in Claude, ChatGPT or Cursor, ask it in plain words. The hl_cohort_metrics tool (1 credit) answers it, with hl_liquidations (1 credit) and hl_ohlcv (1 credit) for the hour.

Ask your agent
How were Hyperliquid BTC whales positioned in the six hours before the 2026-10-22 01:00 UTC drop, and who was liquidated in that hour?

On this page