Recipe 5 of 8
Polymarket BTC Up/Down odds vs Hyperliquid BTC price and whale positioning
Take the Up token of a Polymarket Bitcoin Up or Down market, pull its hourly candles beside Hyperliquid's BTC candles and cohort matrix, and join the three on the hour.
Four calls. /v1/polymarket/settlements/{condition_id} names the market's outcomes beside its token_ids, in the same
order, so you can pick the Up token. /v1/polymarket/ohlcv gives that token's candles: its price is the market's
implied probability of Up. /v1/hyperliquid/ohlcv gives BTC candles from Hyperliquid fills, and
/v1/hl-cohorts/symbols/BTC/cohort-metrics gives each cohort's BTC long/short bias per hour. All three series bucket on
the same UTC hours. The parameters are on Settlement of one market, Outcome candles, Candles and Coin cohort metrics.
Quick answer
# the market's outcomes and token ids, in the same order
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/settlements/0x09a2f79e2b590392b0addcd0bd8484ffa3c943e71d36432b768195952951922b"# hourly candles of the Up token: the price is the implied probability of Up
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/ohlcv?token_id=33138422789442128684465875687586885252919525113698460561768852258878223545637&interval=1h&from=1792839600000&to=1792857600000&limit=12"# BTC hourly candles from Hyperliquid fills over the same hours
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/ohlcv?symbol=BTC&interval=1h&start=2026-10-24T11:00:00Z&end=2026-10-24T16:00:00Z&limit=12"# every size cohort's BTC long/short bias, hour by hour
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hl-cohorts/symbols/BTC/cohort-metrics?axis=size&start=2026-10-24T11:00:00Z&end=2026-10-24T16:00:00Z&hours=6"Example response
Captured from the live API on 2026-10-24 at 17:18 UTC. The settlement is cut to seven fields, the Hyperliquid candles to 2 of 5 rows, and the cohort matrix to two cohorts of its newest hour. The Polymarket candles are complete.
[
{
"condition_id": "0x09a2f79e2b590392b0addcd0bd8484ffa3c943e71d36432b768195952951922b",
"outcomes": [
"Up",
"Down"
],
"question": "Bitcoin Up or Down on October 24?",
"resolved_ts_ms": 1792861170000,
"slug": "bitcoin-up-or-down-on-october-24-2026",
"token_ids": [
"33138422789442128684465875687586885252919525113698460561768852258878223545637",
"53426152660216277018107140219349743363283562793549805108066439959450392968960"
],
"winning_outcome": "Down"
}
][
{
"close": 0.041,
"high": 0.058,
"low": 0.032,
"open": 0.058,
"trades": 13,
"ts": 1792839600000,
"volume": 1268.920724
},
{
"close": 0.058,
"high": 0.058,
"low": 0.025,
"open": 0.03,
"trades": 10,
"ts": 1792843200000,
"volume": 4968.286343
},
{
"close": 0.025,
"high": 0.045,
"low": 0.025,
"open": 0.038,
"trades": 12,
"ts": 1792846800000,
"volume": 1066.838775
},
{
"close": 0.004,
"high": 0.022,
"low": 0.004,
"open": 0.022,
"trades": 9,
"ts": 1792850400000,
"volume": 3764.04449
},
{
"close": 0.01,
"high": 0.018,
"low": 0.001,
"open": 0.001,
"trades": 12,
"ts": 1792854000000,
"volume": 16736.574679
}
]{
"symbol": "BTC",
"interval": "1h",
"source": "1h fills rollup",
"candles": [
{
"ts": 1792839600000,
"open": 80650.0,
"high": 80683.0,
"low": 80557.0,
"close": 80578.0,
"volume": 320.8238500000002,
"volume_usd": 25861140.22147001,
"n_trades": 4855
},
{
"ts": 1792843200000,
"open": 80577.0,
"high": 80820.0,
"low": 80543.0,
"close": 80768.0,
"volume": 474.7378500000001,
"volume_usd": 38316222.24896001,
"n_trades": 5988
}
]
}{
"axis": "size",
"label_basis": "point_in_time",
"metrics": [
{
"ts": "2026-10-24T15:00:00+00:00",
"cohort": "4x whale",
"position_count": 22,
"position_count_long": 7,
"total_position_value": 1172876486.0,
"total_position_value_long": 252465080.5,
"total_unrealized_pnl": -6843279.992,
"total_position_size": 14703.22785,
"total_position_size_long": 3164.91263,
"bias": -0.5694941733,
"label_basis": "point_in_time",
"grading": null
},
{
"ts": "2026-10-24T15:00:00+00:00",
"cohort": "shrimp",
"position_count": 30558,
"position_count_long": 22021,
"total_position_value": 70608903.77,
"total_position_value_long": 57830919.86,
"total_unrealized_pnl": -473715.866,
"total_position_size": 884.65744,
"total_position_size_long": 724.512,
"bias": 0.638063099,
"label_basis": "point_in_time",
"grading": null
}
],
"hours": 5,
"nextCursor": null,
"grading": null,
"freshness": {
"newest_ts": "2026-10-24T15:00:00+00:00",
"behind_hours": 2,
"settled_lag_ceiling_hours": 3,
"stale": false
}
}Joined on the hour (UTC), from the full responses:
| hour | Up close | BTC close | 4x whale bias | shrimp bias |
|---|---|---|---|---|
| 11:00 | 0.041 | 80,578 | -0.61 | +0.53 |
| 12:00 | 0.058 | 80,768 | -0.61 | +0.50 |
| 13:00 | 0.025 | 80,690 | -0.61 | +0.49 |
| 14:00 | 0.004 | 80,180 | -0.59 | +0.67 |
| 15:00 | 0.010 | 79,789 | -0.57 | +0.64 |
outcomes and token_ids share an order, so the first token is Up. Over these five hours Up closed between 0.004 and
0.058, a 0.4% to 5.8% chance, and the market resolved Down. BTC fell from 80,650 to 79,789 on Hyperliquid. Through all
of it the 4x whale cohort ($10M accounts and up) was net short on about $1.17B of BTC, while shrimp was net long and
leaned further long in the 14:00 drop.
Variations
Find the next market. Search the recorded markets by slug. The list returns condition_id and token_ids, but not the outcome names.
# daily Bitcoin Up or Down markets, newest end date first
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/markets?query=bitcoin-up-or-down-on-october&limit=5"Hourly and 5-minute markets. Settled markets of one family come in pages, oldest resolution first, each with outcomes and token_ids.
# settled hourly and daily Bitcoin Up or Down markets since a time, in epoch ms
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/settlements/bulk?slug_prefix=bitcoin-up-or-down-&from_ms=1792768631175&limit=30"Finer bars. Polymarket serves 1m, 5m, 1h and 1d; Hyperliquid serves the same and more.
# 5-minute candles of the Up token in its last trading hour
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/ohlcv?token_id=33138422789442128684465875687586885252919525113698460561768852258878223545637&interval=5m&from=1792854000000&to=1792857600000&limit=12"Smart money instead of size. The PnL ladder with each hour's label as it stood then.
# BTC bias of every PnL cohort over the same hours, point-in-time labels
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-24T11:00:00Z&end=2026-10-24T16:00:00Z&hours=6"Before you rely on it
Polymarket's window is epoch milliseconds, both ends inclusive
from and to on Polymarket candles are epoch-ms integers and to is inclusive. A date string does not parse and is
ignored, so the call answers unfiltered. Hyperliquid's start and end take ISO-8601 or epoch ms, and end is
exclusive. Polymarket volume is in outcome shares, Hyperliquid volume in BTC and volume_usd in dollars.
Positioning lags the clock
The cohort matrix serves settled hours only. In the capture the newest bucket was 15:00 with behind_hours: 2, so the
16:00 hour was not there yet even though both candle series had it. Join on the hours all three return, and read
freshness.stale before you trade on the newest row.
Ask your agent
Connected to the Vike MCP server (https://vike.io/mcp) in Claude, ChatGPT or Cursor, ask it in plain words.
The polymarket_ohlcv tool (1 credit) answers the odds, hl_ohlcv (1 credit) the price and hl_cohort_metrics (1 credit) the positioning.
Compare the Polymarket 'Bitcoin Up or Down on October 24' odds with the Hyperliquid BTC price and whale positioning, hour by hour.