Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.allium.so/llms.txt

Use this file to discover all available pages before exploring further.

The hyperliquid.predictions.markets table contains every Hyperliquid HIP-4 prediction-market outcome at the token-side grain. Each outcome has two rows, one per token in the YES/NO pair. The primary key is coin, the native side-token identifier (e.g. #54760).
HIP-4 has three market categories:
  • price_binary: auto-generated price-threshold outcomes (Recurring), parameterized by an underlying asset, a target price, an expiry, and a recurrence period.
  • categorical: outcomes that belong to a parent question with multiple named choices and a fallback “Other”.
  • binary: standalone named outcomes with no parent question.

Table Columns

Column NameDescription
projectAlways ‘hyperliquid’.
protocolAlways ‘hyperliquid_hip4’.
chainAlways ‘hyperliquid’.
market_titleHuman-readable title for the row.
categoryOne of ‘price_binary’, ‘categorical’, ‘binary’.
sub_categoryUnderlying asset for Recurring outcomes (e.g. ‘BTC’). NULL otherwise.
coinThe HL-native side-token identifier (e.g. ‘#54760’). Primary key.
encodingHL-canonical numeric encoding for the side-token.
asset_idHL-canonical numeric identifier for the side-token.
token_nameThe fee-token symbol form (e.g. ‘+5476’) used in fee_token for opens.
token_side0 or 1. Identifies which side of the YES/NO pair the row represents.
side_labelDisplay label for this row’s token_side (e.g. ‘Yes’, ‘No’, or a categorical label).
outcome_idHIP-4 outcome ID. Repeated across the two token_side rows.
outcome_nameOutcome display name from the HL API. The literal string ‘Recurring’ marks HL’s auto-generated price-binary outcomes.
outcome_descriptionOutcome description string. For Recurring outcomes this is a structured pipe-separated payload (`class:…underlying:…expiry:…targetPrice:…period:…`). For named outcomes this is free-form prose.
side_specsVARIANT array of side-label objects.
is_recurringTrue for HL’s auto-generated price-binary outcomes.
classThe market class for Recurring outcomes (e.g. ‘priceBinary’). NULL for non-Recurring outcomes.
underlyingThe asset whose price the outcome resolves against (e.g. ‘HYPE’, ‘BTC’). NULL for non-Recurring outcomes.
target_priceThe target price for Recurring outcomes. Stored as VARCHAR. token_side=0 resolves YES iff underlying price >= target_price at expiry; token_side=1 resolves YES iff price < target_price. NULL for non-Recurring outcomes.
periodThe recurrence cadence (e.g. ‘15m’, ‘1h’, ‘1d’). NULL for non-Recurring outcomes.
expiry_tsResolution timestamp (UTC). NULL for non-Recurring outcomes.
question_idParent question ID. NULL for Recurring / orphan outcomes.
question_nameQuestion name from the HL API.
question_descriptionQuestion description from the HL API.
fallback_outcomeThe outcome ID representing the parent question’s fallback / “Other” choice.
named_outcomesVARIANT array of outcome IDs grouped under the parent question.
settled_named_outcomesVARIANT array of outcome IDs that have settled (winning side).
is_namedTrue when this outcome is one of the parent question’s named outcomes.
is_fallbackTrue when this outcome is the parent question’s fallback outcome.
event_tickerStable cross-side event identifier. Use for COUNT(DISTINCT) when reporting markets/events traded so a multi-outcome question counts as one event, not many token-side rows.
is_winnerTrue for the winning side of a settled outcome. NULL while unsettled.
is_settledTrue once the outcome has been resolved on-chain.
settled_atSettlement timestamp (UTC). NULL while unsettled.
resolution_outcomeThe winning side_label when is_settled.
market_statusOne of ‘active’ (open), ‘closed’ (expired, awaiting settlement), ‘settled’ (resolved).
activeTrue when the market is currently open for trading.
closedTrue when the market is no longer accepting new trades.
end_dateMarket end date (UTC).
unique_idDeterministic unique identifier per row.
_created_atRow creation timestamp.
_updated_atRow last update timestamp.

Sample Query

SELECT
  coin,
  category,
  sub_category,
  market_title,
  market_status,
  is_settled,
  expiry_ts
FROM hyperliquid.predictions.markets
WHERE category = 'price_binary'
  AND market_status = 'active'
ORDER BY expiry_ts ASC
LIMIT 100