Market types
HIP-4 markets fall into four types, each with its own structure and set of fields.- defaultBinary
- labelledBinary
- multiOutcome
- priceBucket
(aka Distinguishing fields: Fetch recurring markets specifically:
priceBinary)Recurring price binary markets are auto-generated on a schedule and ask whether an asset’s price will exceed a target by a given expiry. They always use “Yes” / “No” sides.e.g. “Will BTC finish above $82,000 at 23:59 11/05/2026”
underlying, targetPrice, expiry, periodname and sides[n].name are the names Hyperliquid sends. A template market reads "template:priceTouch". From 1.3.0, parsedName and sides[n].parsedName carry the names rendered from Hyperliquid’s template registry, such as "BTC touches 90000 by Nov 1, 00:00 UTC", and a template question’s fallback outcome reads "Other". See Template market names.Market type summary
Data hierarchy
HIP-4 structures data in three layers: events, markets, and outcomes.PredictionEvent groups one or more PredictionMarket objects. For question-based events (multi-outcome), each named outcome becomes its own PredictionMarket. For standalone outcomes, the event contains a single market.
PredictionOutcome represents one side. It carries the side name, the tokenId (the side coin like #5160), and the current price as a decimal string between “0” and “1”.
Event IDs
Event IDs follow two formats depending on how the market was created:q{n}- a question-based event grouping multiple named outcomes (e.g."q42")o{n}- a standalone outcome that forms its own single-market event (e.g."o516")
o{n} format. Price bucket markets are always question-based and use q{n}.
Market status
EveryPredictionEvent has a status field that reflects its current lifecycle state.
The HIP-4 adapter currently sets only
"active" and "resolved". A question event becomes "resolved" once all its named outcomes have settled. Standalone outcome events are always "active".