Source
Every Ironflow response carries asource field. Today it is always hyperliquid — Ironflow is purpose-built for Hyperliquid and indexes the full HL economy.
source defaults to hyperliquid if omitted. The field exists in the schema so we can extend cleanly later if needed, but Hyperliquid is the dataset and where we put 100% of our reliability focus.
Market symbols
Hyperliquid runs four kinds of markets, all ingested undersource=hyperliquid. Each carries a market_class field on response objects so you can filter or branch on shape.
Native HL perps (market_class: "perp") — listed by Hyperliquid itself. Symbol is just {BASE}-PERP:
market_class: "perp") — deployed by third-party builders (Felix Exchange, XYZ, HyENA, Kinetiq, etc.) on top of HyperCore. Symbol is namespaced by the builder’s issuer prefix: {issuer}:{BASE}-PERP:
market_class: "spot") — accept either the human form {BASE}/{QUOTE} or the underlying numeric coin alias @{index}. Both resolve to the same market on the wire; pick whichever is easier to read in your client.
market_class: "prediction") — fully collateralized binary contracts that settle at 0 or 1 based on a real-world event. Each contract has two complementary sides whose prices sum to 1.0 (the implied probability). Display symbol is {UNDERLYING}-{TARGET}-{EXPIRY}-{Yes|No} for binary price contracts:
#N (e.g. #0, #1). Both forms resolve to the same market — query whichever is more readable in your client. Each market’s full metadata (resolution condition, expiration timestamp, target price, period) is available via the metadata JSON column on /v1/markets.
Endpoints that are intrinsically perp-only (/v1/funding, /v1/open-interest, /v1/mark-prices) return 400 INVALID_MARKET_CLASS for spot symbols (HYPE/USDC, @285) and prediction symbols (#0-OUTCOME, BTC-...-Yes/No) — those concepts don’t apply outside perps. Use the multi-class endpoints (/v1/trades, /v1/fills, /v1/candles) for spot and prediction.
Market symbols are case-sensitive.
Three ways to filter
Every market-scoped endpoint accepts three forms:
For native HL markets
issuer is the empty string and market == base_market. The decomposed form is most useful when you want to query a base symbol (GOLD, NVDA, SILVER) across every builder that has deployed it.
Decomposed response fields
Every market-scoped response object carries three identifiers:issuer to compare builders, by base_market to combine all builds of one symbol, or by market for the full canonical identifier.
Getting available markets
One call covers every class — native perps, HIP-3 builder markets, spot, and prediction — from the markets registry:market_id, market_class, issuer, base_asset, base_market, display_symbol, hl_coin — so you can join /v1/markets results against any other response without renaming columns.
Omitting market
Most endpoints accept optionalmarket, base_market, and issuer parameters. When all are omitted, the query covers all markets (both native and HIP-3):