How Predict and Hyperliquid work together
Predict and Hyperliquid serve different parts of the trading workflow:
Predict is the only documented source for outcome and question data. Do not discover, label, or reconcile outcomes from Hyperliquid metadata.
Predict serves order entry at /v1/trading/*. You still sign the Hyperliquid action yourself, with your own key, exactly as you would to send it to the venue — Predict forwards the signed envelope byte for byte and answers with Hyperliquid’s own reply. It never holds a key, never signs on your behalf, and stores nothing about the write.
Two things follow from that. The request body is Hyperliquid’s, not Predict’s: a, b, p, s, and the rest keep the venue’s names rather than this API’s snake_case, because the signature covers those exact bytes and any rewrite would invalidate it. And the surface is HIP-4 order entry only — approving an agent, approving a builder fee, transferring, and withdrawing are not proxied and still go to Hyperliquid directly.
What you gain is one host, one set of rate limits, and a stable egress: Predict spreads requests over a pool of source addresses it owns, so your throughput is not shared with everyone else on your NAT.
Environments
Use one environment consistently from discovery through execution.
The direct-trading reference lists testnet before mainnet. Predict staging outcomes belong to Hyperliquid testnet; mixing a staging hl_id with mainnet can address an unrelated asset or return no data.
Recommended flow
- List active Predict outcomes and keep their labels and Hyperliquid identifiers.
- Convert the selected outcome side to its coin and exchange asset ID.
- Subscribe to normalized Predict updates and read the full book or venue balance from Hyperliquid testnet when needed.
- Create a unique client order ID, sign the action in a trusted environment, and POST the signed envelope to
/v1/trading/orders. - Inspect every action status, then reconcile through order and fill reads or WebSocket updates.
Continue with market identifiers before constructing a request.