Skip to main content
HIP-3 lets builders deploy their own perp markets on Hyperliquid - equities, commodities, niche assets - and new ones appear constantly. The public candleSnapshot is poll-based and effectively limited to mainstream markets, and discovering HIP-3 markets means stitching market IDs by hand. GoldRush’s ohlcvCandlesForPair and ohlcvCandlesForToken are real-time WebSocket streams that address HIP-3 markets natively with the deployer-prefix syntax. List, chart, or stream any market the moment it goes live.

Pair address format

Hyperliquid markets use a deployer-prefix naming scheme. The exact string differs by surface, so pass the value each API expects - matching is case- and format-sensitive.
Where it’s usedFormatExamples
WebSocket coin (l2Book, l2BookDiff, l4Book) - canonical perps<symbol>BTC, ETH, HYPE
WebSocket coin - HIP-3 builder markets<deployer>:<symbol>xyz:GOLD, flx:OIL
Streaming pair_addresses (ohlcvCandlesForPair)<deployer>:<symbol>-<quote>, or <symbol>-<quote> for canonical pairsxyz:GOLD-USDC, flx:OIL-USDH, BTC-USDC
Streaming token_addresses (ohlcvCandlesForToken)<symbol> (no prefix)GOLD, OIL, BTC
  • deployer - wallet address of the HIP-3 builder that deployed the market. Omitted for canonical Hyperliquid markets.
  • symbol - market ticker (e.g. GOLD, OIL).
  • quote - the margin / quote currency, usually USDC (some HIP-3 markets use USDH).
HIP-4 outcome markets use a separate #<encoding> scheme (e.g. #1230), not the deployer-prefix - see HIP-4 Markets.
Discovering markets: a dedicated market-list endpoint (the perpDexs Info API type) is on the roadmap. Until it ships, call metaAndAssetCtxs - the name field on each universe entry is the canonical pair address.

Stream OHLCV for a HIP-3 pair

import {
  GoldRushClient,
  StreamingChain,
  StreamingInterval,
  StreamingTimeframe,
} from "@covalenthq/client-sdk";

const client = new GoldRushClient(process.env.GOLDRUSH_API_KEY);

client.StreamingService.subscribeToOHLCVPairs(
  {
    chain_name: StreamingChain.HYPERCORE_MAINNET,
    pair_addresses: ["xyz:GOLD-USDC", "flx:OIL-USDH"],
    interval: StreamingInterval.ONE_MINUTE,
    timeframe: StreamingTimeframe.ONE_HOUR,
  },
  {
    next: (data) => console.log("OHLCV:", data),
    error: (err) => console.error(err),
    complete: () => console.log("done"),
  }
);

Stream OHLCV for a token (across all markets)

client.StreamingService.subscribeToOHLCVTokens(
  {
    chain_name: StreamingChain.HYPERCORE_MAINNET,
    token_addresses: ["GOLD", "OIL", "HYPE"],
    interval: StreamingInterval.ONE_MINUTE,
    timeframe: StreamingTimeframe.ONE_HOUR,
  },
  {
    next: (data) => console.log("Token OHLCV:", data),
    error: (err) => console.error(err),
  }
);
This aggregates across all DEXes and HIP-3 deployers carrying that token.

Patterns

”New markets” discovery tab

When a HIP-3 deployer launches a new market, the OHLCV stream picks it up the moment a candle starts forming. Combine ohlcvCandlesForPair with periodic listing logic to surface new markets in a “trending” tab.

Deployer-scoped leaderboards

Group HypercoreFillTransaction events from walletTxs by HIP-3 deployer prefix. Compute per-deployer volume, fee revenue, top traders.

Cross-deployer charting

A single chart widget that “just works” on xyz:GOLD-USDC, BTC-USDC, or any future HIP-3 market without special-casing the request. Pass the address through unchanged.

Historical depth and warehouse delivery

Every HIP-3 fill is captured in the same hl_fills and hl_enriched_trades tables that power canonical perp and spot history. Use the Pipeline API to land HIP-3 trades directly in ClickHouse, BigQuery, Postgres, Kafka, or S3 - no separate connector required.

Filter to HIP-3 trades with a SQL transform

The TradesNormalizer enriches every matched trade with an is_hip3 boolean on the hl_enriched_trades table. Add a SQL transform to keep only builder-deployed perp rows and project the columns you care about - useful for a deployer-scoped warehouse without ingesting the full canonical perp + spot firehose.
HIP-3 trades transform
transforms:
  hl_enriched_trades: >
    SELECT block_number, block_time, coin, market_name,
           px, sz, side, time, tid, hash,
           buyer_address, seller_address, usd_amount
    FROM hl_enriched_trades
    WHERE is_hip3 = true
The coin column preserves the full <deployer>:<symbol> form (e.g. nanofunds:USDAI), so you can split downstream tables per deployer with a SUBSTRING or LIKE predicate, or partition on coin directly in your warehouse.

Reference

On the roadmap

A perpDexs Info API type that lists all HIP-3 builder-deployed perp DEXes with metadata.