vike

Recipe 29 of 65

HIP-3 stock perps on Hyperliquid: candles, volume, and who trades them

/v1/hyperliquid/ohlcv with symbol=xyz:TSLA and dex=XYZ gives the candles and volume; /positions?symbol=xyz:TSLA&sort=size and the large-fills feed show who holds and who trades it.

GET /v1/hyperliquid/ohlcv answers the candles and volume in one call. A HIP-3 market is a perp deployed on a builder dex, named dex:TICKER: Tesla on the XYZ dex is xyz:TSLA, and with that symbol and dex=XYZ the route returns its candles, built from executed fills, with volume_usd and n_trades per candle. The same symbol works on GET /v1/hyperliquid/positions for the current holders, and on the large-fills feed for the biggest recent trades. The full parameter lists are on Candles, Positions and Large fills.

Quick answer

Pass the symbol with its dex prefix, dex=XYZ, and a window pinned to whole UTC days.

cURL
# a week of daily xyz:TSLA candles, whole UTC days
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/ohlcv?symbol=xyz:TSLA&dex=XYZ&interval=1d&start=2026-10-17T00:00:00Z&end=2026-10-24T00:00:00Z"

Example response

Captured from the live API on 2026-10-24 at 17:22 UTC, trimmed to 3 of 7 candles.

ts is the start of the UTC day in epoch milliseconds. Prices and volume_usd are USD; volume is in base units of the market. Over the week the daily notional ran from $15.3M (2026-10-17) to $151.1M (2026-10-19).

Example response
{
  "symbol": "xyz:TSLA",
  "market": "perp",
  "dex": "XYZ",
  "interval": "1d",
  "tz": "UTC",
  "source": "1h fills rollup",
  "candles": [
    {
      "ts": 1792195200000,
      "open": 352.55,
      "high": 353.54,
      "low": 347.56,
      "close": 349.68,
      "volume": 43518.64199999999,
      "volume_usd": 15273083.696309997,
      "n_trades": 26162
    },
    {
      "ts": 1792281600000,
      "open": 349.57,
      "high": 365.47,
      "low": 347.0,
      "close": 364.16,
      "volume": 186540.6480000001,
      "volume_usd": 66900225.66739996,
      "n_trades": 51314
    },
    {
      "ts": 1792368000000,
      "open": 364.19,
      "high": 369.52,
      "low": 352.53,
      "close": 368.82,
      "volume": 418635.35,
      "volume_usd": 151070933.74847,
      "n_trades": 90198
    }
  ]
}

Variations

Who holds it now. The biggest open positions, largest first.

cURL — biggest holders
# the 20 biggest open xyz:TSLA positions, largest first
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/positions?symbol=xyz:TSLA&sort=size&limit=20"

In the capture the three biggest were shorts of $3.40M, $3.21M and $1.85M.

Who traded it big in the last day. Fills of $50,000 or more from the last 24 hours, newest first, with each wallet's cohorts.

cURL — large fills
# xyz:TSLA fills over $50,000 in the last 24 hours
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hl-cohorts/symbols/xyz:TSLA/large-fills"

At capture time it returned no fills with truncated: false: no single xyz:TSLA fill reached $50,000 that day.

Every market of the dex this minute. The newest 1-minute candle of each XYZ market.

cURL — the whole dex
# the newest 1-minute candle of every XYZ market that traded in the last hour
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/ohlcv/latest?dex=XYZ"

One front-end's flow on the market. The market's fills routed through one builder code.

cURL — builder fills
# the newest xyz:TSLA fills routed through one builder code
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/hyperliquid/builders/0xb84168cf3be63c6b8dad05ff5d755e97432ff80b/fills?symbol=xyz:TSLA&limit=100"

Before you rely on it

No ranking of a market's top traders

Candles and holders are served; a "top traders of xyz:TSLA" list is not. The trader leaderboards take no symbol or dex filter. What you can build: the holders now (sort=size), the fills of $50,000 and more from the last 24 hours, and each wallet's own fills. On a builder dex account_value is often about 0, because it counts only the main-venue account.

Spell the symbol exactly and pin the start

On /ohlcv the symbol is matched as written: the dex prefix lower case, the ticker upper case, plus dex=XYZ. Without start, a 1d call reaches back limit days from now, so its first candle is a partial day and limit drops today: limit=3 with no start, asked at 17:15 UTC on 2026-10-24, returned 2026-10-21 to 2026-10-23, and its 2026-10-21 candle opened at 386.80 against 380.06 for the whole day. Pin start to 00:00 UTC.

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_ohlcv tool answers with interval: 1d and dex: XYZ; hl_market with view: positions and sort: size answers who holds it, at 1 credit a call.

Ask your agent
Show the daily candles of xyz:TSLA on the XYZ dex for the last week
Example response
{  "symbol": "xyz:TSLA",  "market": "perp",  "dex": "XYZ",  "interval": "1d",  "tz": "UTC",  "source": "1h fills rollup",  "candles": [    {      "ts": 1792195200000,      "open": 352.55,      "high": 353.54,      "low": 347.56,      "close": 349.68,      "volume": 43518.64199999999,      "volume_usd": 15273083.696309997,      "n_trades": 26162    },    {      "ts": 1792281600000,      "open": 349.57,      "high": 365.47,      "low": 347.0,      "close": 364.16,      "volume": 186540.6480000001,      "volume_usd": 66900225.66739996,      "n_trades": 51314    },    {      "ts": 1792368000000,      "open": 364.19,      "high": 369.52,      "low": 352.53,      "close": 368.82,      "volume": 418635.35,      "volume_usd": 151070933.74847,      "n_trades": 90198    }  ]}