Recipe 59 of 65
Which Hyperliquid whales are over-leveraged against their own account value?
/v1/hyperliquid/positions?symbol=BTC&sort=size returns the biggest open positions of a coin with each wallet's account_value; size_usd / account_value is the exposure, and liq_progress says how close each is to liquidation.
GET /v1/hyperliquid/positions answers it in one call: with symbol=BTC&sort=size it returns the biggest current
positions of one coin, largest first, up to 500. Each row carries account_value, the wallet's perp account value in USD, beside size_usd, leverage,
liquidation_price and liq_progress. Divide size_usd by account_value for how many times its equity a wallet has
on this one position, and sort. The full parameter list is on Positions.
Quick answer
Read the biggest positions and rank them by size over account value.
# the 100 biggest BTC positions, ranked by position size over account value
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/positions?symbol=BTC&sort=size&limit=100" \
| jq '[.positions[] | select(.account_value != null and .account_value > 0) | {wallet, direction, size_usd, account_value, exposure: (.size_usd / .account_value), leverage, liq_progress}] | sort_by(-.exposure)'Example response
Captured from the live API on 2026-10-24 at 17:17 UTC with limit=5, trimmed to the 1st, 3rd and 4th of 5 rows; label_computed is cut.
All money fields are USD. The biggest BTC position, a $211.6M short, was 1.5 times its wallet's $142.9M account. The $99.1M long in the last row shown was 8.6 times a $11.5M account and 16% of the way from entry to its liquidation price of 70,908. On the jq ranking of these five, that long came first, then the 25x short at 5.6 times its account.
{
"positions": [
{
"wallet": "0x5b5d51203a0f9079f8aeb098a6523a13f298c060",
"symbol": "BTC",
"direction": "short",
"size_token": 2637.9539,
"size_usd": 211587644.3651,
"entry_price": 76327.4353021245,
"mark_price": 80209.0,
"liquidation_price": 145166.1943901109,
"unrealized_pnl": -10239388.732862985,
"leverage": 5.0,
"leverage_type": "cross",
"margin_used": 42317528.87302,
"size_cohort": "4x whale",
"pnl_cohort": "3x smart",
"pnl_abs_cohort": "$1m+",
"liq_progress": 0.05638632580395974,
"dex_name": "HL",
"snapshot_ts": "2026-10-24T17:12:00+00:00",
"pnl_cohort_as_of": null,
"pnl_cohort_basis": "current",
"opened_at": "2026-07-16T10:29:00+00:00",
"account_value": 142899126.340808
},
{
"wallet": "0xfc27136e42af1732ddc9ce2605ea9bff1b959d9d",
"symbol": "BTC",
"direction": "short",
"size_token": 1244.11428,
"size_usd": 99789162.28452,
"entry_price": 81790.771078304,
"mark_price": 80209.0,
"liquidation_price": 92626.8949415336,
"unrealized_pnl": 1967903.9862089981,
"leverage": 25.0,
"leverage_type": "cross",
"margin_used": 3991566.4913808,
"size_cohort": "4x whale",
"pnl_cohort": "3x smart",
"pnl_abs_cohort": "$1m+",
"liq_progress": 0.0,
"dex_name": "HL",
"snapshot_ts": "2026-10-24T17:12:00+00:00",
"pnl_cohort_as_of": null,
"pnl_cohort_basis": "current",
"opened_at": "2026-04-10T19:17:00+00:00",
"account_value": 17891202.005018
},
{
"wallet": "0x60468ba27448f88b19f52ed02f1a8c52f7a0b21d",
"symbol": "BTC",
"direction": "long",
"size_token": 1235.65691,
"size_usd": 99110805.09418999,
"entry_price": 81993.13227240401,
"mark_price": 80209.0,
"liquidation_price": 70908.0371310652,
"unrealized_pnl": -2204575.3707500137,
"leverage": 12.0,
"leverage_type": "cross",
"margin_used": 8259233.757849165,
"size_cohort": "4x whale",
"pnl_cohort": "3x rekt",
"pnl_abs_cohort": "-$1m--$100k",
"liq_progress": 0.16094875593359387,
"dex_name": "HL",
"snapshot_ts": "2026-10-24T17:12:00+00:00",
"pnl_cohort_as_of": null,
"pnl_cohort_basis": "current",
"opened_at": "2026-08-25T06:14:00+00:00",
"account_value": 11479169.995285
}
],
"nextCursor": null
}Variations
The wallet's whole account, every coin. One position is part of the picture. /wallets/{address} returns open_positions.equity_exposure, long plus short
over the account value, across the wallet's main-dex positions.
# the most exposed wallet of the ranking: equity, open positions and exposure
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/wallets/0x60468ba27448f88b19f52ed02f1a8c52f7a0b21d"Closest to liquidation first. Rank the same rows by liq_progress: 0 is at or in profit versus entry, 1 is at the liquidation price.
# the 500 biggest BTC positions, those nearest liquidation first
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/positions?symbol=BTC&sort=size&limit=500" \
| jq '[.positions[] | {wallet, direction, size_usd, account_value, liq_progress, liquidation_price, mark_price}] | sort_by(-.liq_progress) | .[:10]'Another coin. Change symbol.
# the 100 biggest ETH positions with account values
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/positions?symbol=ETH&sort=size&limit=100"Before you rely on it
leverage is the setting, not the exposure
leverage is the multiple set on the position (margin_used = size_usd / leverage), and on cross margin the whole
account backs it. The 25x short in the Example response was 5.6 times its account. Use size_usd / account_value for exposure, and the
whole-account figure for a wallet that holds several coins.
account_value is the native perp account, and null when unknown
account_value is the wallet's main perp account at the newest snapshot. It leaves out a builder dex's separate account,
and it is null, never 0, when unknown, so the filter skips those rows rather than dividing by zero. sort=size takes
one symbol, at most 500 rows, no cursor and no time window; it is the book now.
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_market tool answers with view: positions and sort: size, at 1 credit a call.
Which of the 100 biggest BTC positions on Hyperliquid are largest relative to their account value?