HIP-4 documentation
Testnet · Exploratory documentation — not official Hyperliquid documentation.
API & data — overview
This page is a compact map: endpoints, channels, L1 action names, infra. It does not duplicate full request/response payloads.
For GitBook-style tables and JSON tabs, use Info endpoint.
Start here
- Info endpoint (GitBook-style) — outcomeMeta, candleSnapshot, userFees, userFillsByTime, WS examples, outcome types, coin mapping.
- Trading fees (L1) — proof chain: SetOutcomeFeeScale, spot rails, normalized fills vs
userSpotCrossRate. - Official layout reference: Hyperliquid Spot — Info endpoint.
Base URLs
Testnet (this doc)
- REST
https://api.hyperliquid-testnet.xyz/info - WebSocket
wss://api.hyperliquid-testnet.xyz/ws
Coin IDs
Critical for candleSnapshot and book subscriptions:
YES coin = "#" + (outcomeId × 10); NO coin = "#" + (outcomeId × 10 + 1). Example: outcome 2243 → #22430 / #22431.
WebSocket channels (summary)
Channels we used for live HIP-4 book and mark research. Detail and subscribe examples on Info endpoint.
| Channel | Purpose |
|---|---|
| activeSpotAssetCtx | Real-time ctx per coin (#YES / #NO); markPx ≈ implied probability. |
| l2Book | Depth per coin; levels[0] bids, levels[1] asks. |
L1 action types
High-level type strings seen in explorer / research. Full JSON payloads: HIP4-research-complete.md.
| type | Role |
|---|---|
| registerTokensAndStandaloneOutcome | Market creation — mints YES/NO pair; strike ≈ markPx at creation. |
| VoteGlobalAction | Settlement — settleFraction 0/1; instant L1 payout, no Merkle claim. |
| VoteGlobalAction::SetOutcomeFeeScale | Governance — global outcome fee scale (hl-node); cooldown between changes. Not the settle-outcome VoteGlobalAction path. |
| voteAppHash | Consensus / block validation (example in full doc). |
| evmRawTx | RLP EIP-1559 payload inside Core — relayer vs EVM signer (bridge doc). |
Examples for registerTokensAndStandaloneOutcome and VoteGlobalAction in the markdown file above.
System wallets (testnet)
Eight linked Core addresses traced as one cluster; two roles mapped (HIP-4 operator + oracle), six unmapped. Testnet only — mainnet distribution unknown. None overlap the HyperEVM parimutuel deployer — see HyperCore (L1).
| Address | Role | Proof |
|---|---|---|
| 0xe8ea5ea785619f4d20b34b34ca1d5c5f68fe60a3 | Cluster (unmapped) — testnet only; role TBD (validators, bridge, or other Core ops — hypothesis only). | — |
| 0xe5377a540f412e50e3953374e07ab8677138924f | Cluster (unmapped) — testnet only; role TBD (hypothesis only). | — |
| 0xe92d5afedaf9eab98a70b7b0118b7187c1292c5c | Oracle — on-chain price feed. Historical settlement from this wallet observed (proof). Recent settlement traffic often attributed to 0xc25c… per testnet trace; also voteAppHash / validation activity observed. | Tx |
| 0xc25c4a1e3872f4d601d70b5db85604f7039ece56 | HIP-4 operator — creates & settles markets, questions, descriptions, named outcomes/tokens (explorer: RegisterTokensAndStandaloneOutcome, RegisterOutcome, SettleOutcome, RegisterQuestion, ChangeOutcomeDescription, ChangeQuestionDescription). Docs/API often use registerTokensAndStandaloneOutcome / VoteGlobalAction. | — |
| 0x58e1b0e63c905d5982324fcd9108582623b8132e | Cluster (unmapped) — testnet only; role TBD (hypothesis only). | — |
| 0x263294039413b96d25e4173a5f7599f8b3801504 | Cluster (unmapped) — testnet only; role TBD (hypothesis only). | — |
| 0xef2364db5db6f5539aa0bc111771a94ee47637fc | Cluster (unmapped) — testnet only; role TBD (hypothesis only). | — |
| 0xda6816df552c3f9e0fb64979fb357800d690d79b | Cluster (unmapped) — testnet only; role TBD (hypothesis only). | — |
S3
Datasets and paths referenced in research (fills, EVM blocks). Requester pays where noted.
| Path / dataset | Notes |
|---|---|
| s3://hl-mainnet-evm-blocks/ | MessagePack + LZ4; requester pays; indexed by EVM block. |
| s3://hl-testnet-evm-blocks/ | Same layout as mainnet; example path 0/6000/6123.rmp.lz4 |
| node_fills_by_block (HyperCore) | Full trade fills; public recentTrades API = last 10 only, no pagination. |