Skip to main content
HIP-4 prediction markets are currently live on testnet only. When they launch on mainnet, the same enrichment and action types will be available on the mainnet stream automatically.

Overview

HyperLiquid’s HIP-4 introduces prediction markets to the L1. hypernode captures all prediction market activity in real time, enriched with human-readable metadata. Prediction markets consist of:
  • Questions — A prediction with multiple outcomes (e.g., “Will BTC be above $67,579 on 2026-03-31?”)
  • Outcomes — Individual tradeable outcome tokens within a question
  • Price Binaries — A common type where the prediction is whether an asset exceeds a target price

User actions (5 types)

userOutcome

Place an order on an outcome token. Same format as a regular order but for prediction market outcomes.

splitOutcome

Split a position into individual outcome tokens.
{
  "type": "splitOutcome",
  "data": {
    "outcomeAssetId": 1900001,
    "amount": "100.00",
    "prediction_outcome_id": 1900001,
    "prediction_name": "BTC > $67,579",
    "prediction_description": "class:priceBinary|underlying:BTC|expiry:20260331-0300|targetPrice:67579|period:1d",
    "prediction_sides": ["Yes", "No"],
    "prediction_question": "Daily Price Binaries",
    "prediction_underlying": "BTC",
    "prediction_expiry": "20260331-0300",
    "prediction_target_price": 67579.0,
    "prediction_period": "1d"
  },
  "network": "testnet"
}

mergeOutcome

Merge outcome tokens back into the underlying. Same structure as splitOutcome.

mergeQuestion

Merge all outcome tokens for a question.
{
  "type": "mergeQuestion",
  "data": {
    "questionId": 42,
    "amount": "50.00",
    "prediction_question_id": 42,
    "prediction_question_name": "Daily Price Binaries",
    "prediction_question_description": "Will BTC close above the target price?"
  },
  "network": "testnet"
}

negateOutcome

Negate (flip) an outcome position. Same structure as splitOutcome.

Metadata enrichment

When a HIP-4 event is streamed, the data field is automatically enriched with prediction market metadata. This metadata is fetched from HyperLiquid’s API and refreshed every 60 seconds.

Enrichment fields

FieldTypeDescription
prediction_outcome_idnumberOutcome asset ID
prediction_namestringHuman-readable outcome name
prediction_descriptionstringFull description
prediction_sidesstring[]Trading sides (e.g., ["Yes", "No"])
prediction_questionstringParent question name
prediction_underlyingstringUnderlying asset (price binaries, e.g., "BTC")
prediction_expirystringExpiry date (e.g., "20260331-0300")
prediction_target_pricenumberTarget price (price binaries)
prediction_periodstringTime period (e.g., "1d")
Enrichment fields are only present when the outcome/question exists in the metadata cache. New markets created between 60-second refreshes may briefly appear without enrichment.

Admin actions (8 types)

These are emitted when prediction markets are created, modified, or settled by the protocol:
TypeDescription
registerQuestionRegister a new prediction question
registerOutcomeRegister a new outcome
registerNamedOutcomeRegister a named outcome
registerOutcomeTokenRegister an outcome token
registerTokensAndStandaloneOutcomeRegister tokens and standalone outcome
settleOutcomeSettle a prediction market (resolve the outcome)
changeOutcomeDescriptionUpdate an outcome’s description
changeQuestionDescriptionUpdate a question’s description

Subscribing to prediction markets

All user prediction market activity:
{
  "action": "subscribe",
  "filters": {
    "action_types": [
      "userOutcome", "splitOutcome", "mergeOutcome",
      "mergeQuestion", "negateOutcome"
    ]
  }
}
Including admin events (market creation/settlement):
{
  "action": "subscribe",
  "filters": {
    "action_types": [
      "userOutcome", "splitOutcome", "mergeOutcome",
      "mergeQuestion", "negateOutcome",
      "registerQuestion", "registerOutcome", "settleOutcome"
    ]
  }
}
By specific outcome asset ID:
{
  "action": "subscribe",
  "filters": {
    "asset_ids": [1900001]
  }
}