Recipe 26 of 33
Which coins have one-sided whale flow right now?
Call /large-fills?min_usd=100000&hours=2 per coin and net the taker rows (order_type market) by direction; netting every row gives zero, because both sides of each trade are in the feed.
GET /v1/hl-cohorts/symbols/{symbol}/large-fills answers it one coin per call. Ask for the fills of $100,000 or
more in the last two hours, keep the rows where the wallet crossed the book (order_type is market) and, for
whale flow, whose size_cohort is whale, 2x whale, 3x whale or 4x whale. Sum size_usd of the buys minus
the sells: a large net either way is one-sided flow, and the coins rank by it. The full parameter list is on
Large fills.
Quick answer
HYPE here; repeat it for each coin you scan.
# HYPE fills of $100,000 or more from the last two hours
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hl-cohorts/symbols/HYPE/large-fills?min_usd=100000&hours=2"Example response
Captured from the live API on 2026-10-24 at 17:19 UTC, trimmed to 4 rows of 38.
truncated is false, so these 38 rows are every HYPE fill over $100,000 of the two hours. The rows come in pairs, one
per side of a trade, so all 38 together hold $3,044,129 of buys and $3,044,129 of sells. The taker rows tell the story:
takers bought $532,078 and sold $2,512,051, a net $1.98M of selling. Whale takers alone bought $250,309 and sold
$865,951.
{
"symbol": "HYPE",
"min_usd": 100000.0,
"hours": 2,
"covered_from": "2026-10-24T15:19:41.193000+00:00",
"truncated": false,
"has_more": false,
"size_cohort_basis": "current",
"fills": [
{
"ts": "2026-10-24T17:01:30.623000+00:00",
"wallet": "0xa6727cd11f50e42232d147f6eb4122a373975661",
"direction": "buy",
"size_token": 1407.49,
"size_usd": 106255.64257,
"price": 75.493,
"order_type": "limit",
"size_cohort": "whale",
"pnl_cohort": "3x smart",
"pnl_cohort_basis": "current"
},
{
"ts": "2026-10-24T17:01:30.623000+00:00",
"wallet": "0xb67c4c91728e6865b216e11d54b50c75bbd3fd5f",
"direction": "sell",
"size_token": 1407.49,
"size_usd": 106255.64257,
"price": 75.493,
"order_type": "market",
"size_cohort": "shark",
"pnl_cohort": "3x smart",
"pnl_cohort_basis": "current"
},
{
"ts": "2026-10-24T16:58:30.443000+00:00",
"wallet": "0x24fb6523036ebcb3cc51deff138066dccf6bed0f",
"direction": "sell",
"size_token": 3164.91,
"size_usd": 239273.52582,
"price": 75.602,
"order_type": "market",
"size_cohort": "whale",
"pnl_cohort": "2x smart",
"pnl_cohort_basis": "point_in_time"
},
{
"ts": "2026-10-24T16:58:30.443000+00:00",
"wallet": "0x71d0e11ebb6150cebe20cf62f798be1a50108c26",
"direction": "buy",
"size_token": 3164.91,
"size_usd": 239273.52582,
"price": 75.602,
"order_type": "limit",
"size_cohort": "3x whale",
"pnl_cohort": "3x smart",
"pnl_cohort_basis": "point_in_time"
}
]
}Variations
Pick the coins to scan. Open interest per symbol, largest first; take the first 20 or 50. /v1/hyperliquid/ohlcv/latest is the other list: every
symbol with a trade in the last hour.
# the 20 symbols with the most open interest
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/positions/symbols" \
| jq '.[:20] | map(.symbol)'Every large taker, as one number. Without the cohort filter, net the market rows of all sizes from
$50,000 into an imbalance from -1 (all selling) to +1 (all buying). On ETH at 17:15 UTC that was $6.53M bought and
$7.45M sold at market, an imbalance of -0.07, over the 42 minutes the feed reached back.
# taker buys, taker sells, the imbalance, and how far back the answer reaches
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hl-cohorts/symbols/ETH/large-fills?hours=2" \
| jq '{covered_from, truncated, buy: ([.fills[] | select(.order_type == "market" and .direction == "buy") | .size_usd] | add // 0), sell: ([.fills[] | select(.order_type == "market" and .direction == "sell") | .size_usd] | add // 0)} | .imbalance = (if .buy + .sell > 0 then (.buy - .sell) / (.buy + .sell) else null end)'Before you rely on it
Net the takers, and read covered_from per coin
Both sides of every trade are in the feed with the same size_usd, so the buys and sells of all rows always cancel;
only the market rows say who pushed. The feed holds the newest 200 fills over $50,000 per coin: on BTC and ETH that
was about 20 to 40 minutes at capture, so truncated true means the net covers covered_from to now, not two hours. Each coin is one call,
and the API allows 200 calls a minute, so a scan of 50 coins every few minutes fits and every coin every minute does not.
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 (view large_fills), at 1 credit a call.
For BTC, ETH and HYPE, net the taker side of fills over $100,000 in the last two hours and tell me which is most one-sided