Hyperliquid stock perps (HIP-3): markets, trading hours and data API
Stocks, indices, commodities and FX trade on Hyperliquid as HIP-3 perps, such as xyz:NVDA. They use the same order books, margin and API as BTC. This page covers which dexes are live, how the names work, trading hours and the weekend oracle, and how to get trades, candles, funding and oracle prices.
The short version#
- Names: dex prefix and coin,
xyz:NVDA. PlainNVDAdoes not exist. - Where: on 1 November 2026, 4 of 10 dexes had live markets.
xyzhad 120 of the 166 and about 93% of the volume. - Hours: the markets trade around the clock. Over the weekend the oracle follows trading on Hyperliquid.
- API: add
"dex": "xyz"tometa,metaAndAssetCtxsandclearinghouseState. Use the full coin name everywhere else. - History: Ironflow serves HIP-3 trades, candles, funding and open interest over REST, and the oracle price over SQL.
1. What HIP-3 markets are#
HIP-3 lets a deployer that stakes 500k HYPE run its own perp dex on Hyperliquid. The deployer defines each market and its oracle and posts oracle prices. Hyperliquid runs the order book, margin, funding, liquidations and auto-deleveraging. Deployers can set an additional fee share of 0 to 300% (0 to 100% in growth mode). The first 3 assets in a dex need no auction. Later ones go through a Dutch auction.
In node files and the S3 archive, HIP-3 fills carry a deployerFeefield: 19993 of 20004 in one hour we checked on 31 October 2026. The info API's userFills leaves it out. A dex name is at most 6 characters, per the deployer action docs.
2. Which dexes are live#
perpDexs listed 10 dexes on 1 November 2026 at 21:47 UTC, and 4 had live markets. The table refreshes daily. 24 hour volume is dayNtlVlm from metaAndAssetCtxs, summed over live markets:
| Dex | Name | Live markets | 24h volume | Largest markets |
|---|---|---|---|---|
| xyz | XYZ (trade.xyz) | 120 | $353.0M | XYZ100, CL, SP500, SKHX, MU |
| io | EntropyIO | 12 | $27.3M | ANTH, SNDK, DRAM, OAI, NVDA |
| para | Paragon | 33 | $0.8M | OTHERS, ANSEM, COHR, TREAD, TOTAL2 |
| mkts | Markets By Kinetiq | 1 | $0.1M | BVIV |
Felix Exchange (flx), Ventuals (vntl), HyENA (hyna), Markets by Kinetiq (km), ABCDEx (abcd) and dreamcash (cash) had only delisted markets. Delisted markets stay in meta with isDelisted: true.
The xyz dex lists US, Korean, Japanese, Chinese and Indian stocks, ETFs such as SOXL and EWJ, indices (SP500, XYZ100, JP225, KR200, NIFTY), commodities such as GOLD, SILVER, CL and NATGAS, the EUR, GBP and JPY exchange rates, and pre-IPO companies. On 31 October 2026 max leverage was 50x on SP500, 25x on GOLD, 20x on NVDA and 10x on INTC. The same ticker can exist on two dexes: xyz:SNDK and io:SNDK are separate markets with separate books and prices.
3. Market names#
- Hyperliquid:
xyz:NVDA. The part before the colon is the dex. - Ironflow:
xyz:NVDA-PERP. The API also acceptscoin=xyz:NVDAandmarket=xyz:NVDAand answers with the full name inX-Ironflow-Market. - Grouping across dexes: Ironflow rows carry
issuer(the dex) andbase_market(NVDA-PERP).
4. Hyperliquid's info API#
HIP-3 markets use the same info endpoint as other perps. Requests that describe a whole dex take a dex field. Requests about one market take the full coin name.
| Request | For HIP-3 |
|---|---|
| perpDexs | Every dex. The first entry is null: Hyperliquid's own perps. |
| meta, metaAndAssetCtxs | Add "dex": "xyz". Without it you get Hyperliquid's own perps. |
| clearinghouseState | Add "dex": "xyz" to see a wallet's positions on that dex. |
| allMids | Add "dex": "xyz" for that dex's mid prices. |
| candleSnapshot, l2Book, recentTrades, fundingHistory | Use the full coin name, "xyz:NVDA". |
| predictedFundings | Hyperliquid's own perps only, per the docs. |
curl -s https://api.hyperliquid.xyz/info \
-H 'Content-Type: application/json' \
-d '{"type":"l2Book","coin":"xyz:NVDA"}'The WebSocket takes the same names: {"method":"subscribe","subscription":{"type":"trades","coin":"xyz:NVDA"}}. This script lists every live HIP-3 market by 24 hour volume:
import requests
URL = "https://api.hyperliquid.xyz/info"
dexes = requests.post(URL, json={"type": "perpDexs"}).json()
rows = []
for dex in dexes[1:]: # the first entry is null: Hyperliquid's own perps
meta, ctxs = requests.post(URL, json={"type": "metaAndAssetCtxs", "dex": dex["name"]}).json()
for asset, ctx in zip(meta["universe"], ctxs):
if not asset.get("isDelisted"):
rows.append((float(ctx.get("dayNtlVlm") or 0), asset["name"], ctx["markPx"], ctx["oraclePx"], asset["maxLeverage"]))
print(len(rows), "live HIP-3 markets")
for vol, name, mark, oracle, lev in sorted(rows, reverse=True)[:8]:
print(f"{name:14} 24h ${vol / 1e6:6.1f}M mark {mark:>8} oracle {oracle:>8} max {lev}x")Its output on 31 October 2026:
166 live HIP-3 markets
xyz:SP500 24h $ 313.7M mark 7580.9 oracle 7581.0 max 50x
xyz:XYZ100 24h $ 259.0M mark 28456.0 oracle 28471.0 max 30x
xyz:INTC 24h $ 236.6M mark 64.668 oracle 64.668 max 10x
xyz:SNDK 24h $ 217.9M mark 1154.6 oracle 1154.6 max 10x
xyz:SOXL 24h $ 151.0M mark 77.315 oracle 77.318 max 10x
xyz:CL 24h $ 140.5M mark 102.91 oracle 102.88 max 20x
xyz:SKHX 24h $ 139.9M mark 1040.7 oracle 1041.5 max 10x
xyz:MU 24h $ 133.0M mark 895.15 oracle 897.25 max 10x5. Trading hours, weekends and the oracle#
HIP-3 markets trade around the clock. The deployer decides where the oracle price comes from at each hour. trade.xyz's specification index gives each market two sessions:
- US stocks (NVDA, INTC): external session "24/5, from Sunday 8:05 PM ET to Friday 8:00 PM ET". Internal session "Friday 8:00 PM to Sunday 8:05 PM ET, and follows equities holidays & trading hours".
- Indices and commodities (SP500, XYZ100, GOLD): external session from Sunday 6 PM ET to Friday 5 PM ET, with a daily maintenance window from 5 PM to 6 PM ET, Monday to Thursday.
- NVDA: 20x max leverage, cross margin, a discovery bound of ±5% with 2 resets, and a funding multiplier of 0.5.
The page does not define the two sessions. What we saw on Saturday 31 October 2026, inside NVDA's internal session: the markets kept trading, and NVDA's hourly average oracle price fell from 205.29 at 00:00 UTC to 202.99 at 10:00 UTC along with the perp. In one 11 second window, 11 of the 120 xyz oracle prices changed. Read weekend prices as price discovery on Hyperliquid, inside the discovery bound. trade.xyz publishes holiday closures separately.
6. History with Ironflow#
Ironflow indexes every HIP-3 fill from its own node and serves it at https://api.ironflow.sh with the same endpoints as other perps. These run without a key:
# trades, both sides of each fill, oldest first
curl "https://api.ironflow.sh/v1/trades?market=xyz:NVDA-PERP&limit=100"
# hourly candles computed from those fills
curl "https://api.ironflow.sh/v1/candles?market=xyz:NVDA-PERP&interval=1h&limit=24"
# funding rate and open interest
curl "https://api.ironflow.sh/v1/funding?market=xyz:NVDA-PERP&limit=100"
curl "https://api.ironflow.sh/v1/open-interest?market=xyz:NVDA-PERP&limit=100"
# liquidations
curl "https://api.ironflow.sh/v1/liquidations?market=xyz:GOLD-PERP"Free keyWithout a key the API reaches 24 hours back. A free key reaches 30 days at 60 requests a minute. Get one by email.
One trade from the first call, trimmed:
{
"market": "xyz:NVDA-PERP",
"issuer": "xyz",
"base_market": "NVDA-PERP",
"timestamp": 1793439036582,
"price": "202.9",
"size": "11.495",
"side": "buy",
"notional": "2332.3354999999997"
}- Funding rows are snapshots of the live rate, about one a minute. Hyperliquid's
fundingHistoryhas the hourly rates that were paid. - History: 24 hours without a key, 30 days with a free key, up to 12 months on paid plans. 10 requests per minute without a key, 60 with one.
- Every market:
/v1/markets/snapshotreturns mark price, 24 hour change, funding, open interest and volume for all markets in one call. HIP-3 rows haveissuerset.
7. Perp price vs oracle price#
The oracle is the deployer's reference price. In a US stock's external session it tracks the share price, so the gap between perp and oracle shows how far the perp trades from it. Ironflow samples both at the same times and serves them as SQL tables. POST /v1/query answers without a key for the last 24 hours:
import requests
SQL = """
SELECT toStartOfHour(m.ts) AS hour, round(avg(m.price), 3) AS perp, round(avg(o.price), 3) AS oracle,
round(avg((m.price - o.price) / o.price) * 10000, 1) AS gap_bps
FROM hl.mark_prices AS m
INNER JOIN hl.oracle_prices AS o ON o.market = m.market AND o.ts = m.ts
WHERE m.market = 'xyz:NVDA-PERP' AND m.ts > now() - INTERVAL 1 DAY AND o.ts > now() - INTERVAL 1 DAY
GROUP BY hour ORDER BY hour
"""
r = requests.post("https://api.ironflow.sh/v1/query", json={"sql": SQL}).json()
for row in r["rows"]:
print(*row)Six of the 25 rows it printed on 31 October 2026:
hour perp oracle gap_bps
2026-10-30 14:00:00 206.912 206.914 -0.1
2026-10-30 18:00:00 201.856 201.858 -0.1
2026-10-30 23:00:00 205.041 205.174 -6.5
2026-10-31 04:00:00 204.114 204.283 -8.3
2026-10-31 07:00:00 203.593 203.856 -12.9
2026-10-31 10:00:00 202.930 202.987 -2.8A negative gap means the perp traded below the oracle. During Friday's US session, 13:00 to 20:00 UTC, the hourly gap stayed within 1.3 basis points. Overnight and on Saturday it reached 12.9. GET /v1/query/schema lists the other tables, including hl.funding and hl.open_interest.
Questions#
What are HIP-3 markets on Hyperliquid?#
Perpetual futures deployed by a third party that stakes 500k HYPE. The deployer defines the markets and sets the oracle price. Hyperliquid runs the order book, margin, funding and liquidations. Market names carry the dex prefix, as in xyz:NVDA.
Can you trade stocks on Hyperliquid?#
As perps. HIP-3 dexes list stock, index, commodity and FX perps that follow an oracle price. A position is a perp position. On 31 October 2026 the xyz dex had 120 live markets and about $2.7B of 24 hour volume.
Do Hyperliquid stock perps trade on weekends?#
Yes. trade.xyz lists US stocks such as NVDA with an external session from Sunday 8:05 PM ET to Friday 8:00 PM ET and an internal session from Friday 8:00 PM to Sunday 8:05 PM ET. On Saturday 31 October 2026 the markets kept trading and NVDA's oracle moved with the perp.
Why does a request for NVDA return an error?#
There is no native NVDA perp. Use the full HIP-3 name, xyz:NVDA. A candleSnapshot or l2Book request for plain NVDA returned HTTP 500 with the body null.
Why are my HIP-3 positions missing from clearinghouseState?#
clearinghouseState covers one dex per request. Without dex it returns Hyperliquid's own perps. Send "dex": "xyz" for positions on the xyz dex.
Where is HIP-3 historical data?#
HIP-3 fills are in the same node_fills_by_block files as other perps, in Hyperliquid's S3 archive and on a node. Ironflow serves HIP-3 trades, candles, funding and open interest over REST, and mark and oracle prices over SQL.
Related guides#
- Hyperliquid historical data: API, S3 archive and Python
- Hyperliquid candles and OHLCV data
- Hyperliquid funding rates: formula, history and API
References#
- Hyperliquid docs: HIP-3 builder-deployed perpetuals. Stake, deployer duties, fee share and auctions.
- Hyperliquid docs: Info endpoint, perpetuals. perpDexs and the dex field on meta, metaAndAssetCtxs and clearinghouseState.
- Hyperliquid docs: HIP-3 deployer actions. Dex names, setOracle and funding multipliers.
- trade.xyz: Specification index. Sessions, leverage, discovery bounds and funding multipliers per market.
- trade.xyz: Holiday closures. External market holidays and how the markets treat them.
Trades, candles, funding and open interest for every HIP-3 market are on the API page. A free key raises history to 30 days and the rate to 60 requests per minute.