Skip to content

Outcome Markets Rewards API Schema ​

Conventions ​

ItemValue
TimesISO 8601 UTC
AmountsFixed 6-decimal USDC strings
Base URLhttps://api.monarch.fast
Route prefix/marina/outcome-markets
IDsmarket_id is Q<hyperliquid_question_id> for a grouped question or O<hyperliquid_outcome_id> for a tradable outcome; null before the market lists on Hyperliquid
reward_period_typemarket for the full market lifecycle or epoch for shorter incentive windows. Outcomes in one Q… market share one type
Epoch keyFor epoch reward periods, epoch_end_date is required and uses UTC YYYY-MM-DD. A market has at most one epoch per end date
Reward authoritytotal_reward_amount_usdc is the grouped budget. Each outcome's reward_amount_usdc is its available budget, or null when unavailable. The payouts endpoint provides final wallet payment amounts

Market IDs ​

Use Q<number> for a grouped market and O<number> for an individual outcome order book. The number matches the corresponding Hyperliquid ID: Q945 uses hyperliquid_question_id: 945, while O11463 uses hyperliquid_outcome_id: 11463.

  • Payouts: Use the parent Q… ID. If the outcome has no parent, use its O… ID.
  • Scores: Use the outcome's O… ID.
  • Epoch rewards: Include epoch_end_date.

Grouped markets list their outcome books in outcomes. Standalone O… markets appear directly.

Upcoming markets may return market_id: null until they list on Hyperliquid. A market may also appear once per epoch; identify each period using market_id and epoch_end_date.

Get Payouts ​

Without query fields, returns one cumulative total across every finalized distributed Outcome reward:

http
GET /marina/outcome-markets/payouts
json
{
  "total_distributed_rewards_usdc": "4812.082629"
}

With wallet, returns finalized rewards across all markets and epochs. Addresses are matched case-insensitively and returned lowercase. market_totals uses cursor pagination; limit defaults to and is capped at 500.

http
GET /marina/outcome-markets/payouts?wallet=0x00000000000000000000000000000000000000aa

Use optional comma-separated market_ids to restrict the wallet total to selected markets. The list accepts 1–50 canonical public market ids and deduplicates repeated ids.

http
GET /marina/outcome-markets/payouts?wallet=0x00000000000000000000000000000000000000aa&market_ids=Q945,O1696
json
{
  "wallet": "0x00000000000000000000000000000000000000aa",
  "total_distributed_rewards_usdc": "13.000000",
  "total_markets": 2,
  "market_totals": [
    {
      "market_id": "O1696",
      "total_distributed_rewards_usdc": "0.654322"
    },
    {
      "market_id": "Q945",
      "total_distributed_rewards_usdc": "12.345678"
    }
  ],
  "next_cursor": null
}

total_distributed_rewards_usdc and total_markets cover all matching markets; market_totals contains only the current page.

  • Follow next_cursor until null, keeping the same wallet and market filter. Restart pagination if new payouts are finalized during paging.
  • Only finalized, distributed rewards count.
  • market_ids requires wallet. Wallet queries cannot include market_id or epoch_end_date. Invalid queries or cursors return 400.

With market_id, returns payouts for one market reward period. The transition to finalized: true is the trigger to pay every listed wallet.

For a full-market reward period:

http
GET /marina/outcome-markets/payouts?market_id=Q945

For an epoch reward period:

http
GET /marina/outcome-markets/payouts?market_id=Q950&epoch_end_date=2026-09-16

Exact Reward-Period Response States ​

StateResponse
Unknown reward period404
Known, not finalized200 with finalized: false, null total_payout_usdc, and payouts: []
Finalized200 with finalized: true and the finalized payload
Temporary server error5xx retry

Response (finalized) ​

json
{
  "market_id": "Q945",
  "hyperliquid_question_id": 945,
  "hyperliquid_outcome_id": null,
  "market_name": "Brentford v Tottenham Hotspur",
  "finalized": true,
  "finalized_at": "2026-08-22T20:00:00Z",
  "total_payout_usdc": "299.999998",
  "payouts": [
    {
      "wallet": "0xabc...",
      "reward_usdc": "191.267910"
    },
    {
      "wallet": "0xdef...",
      "reward_usdc": "108.732088"
    }
  ]
}

Response (finalized: false) ​

json
{
  "market_id": "Q950",
  "hyperliquid_question_id": 950,
  "hyperliquid_outcome_id": null,
  "market_name": "September 2026 Federal Reserve rate decision",
  "epoch_end_date": "2026-09-16",
  "finalized": false,
  "finalized_at": null,
  "total_payout_usdc": null,
  "payouts": []
}

Field Notes ​

FieldDescription
market_idPayout query key: the parent Q… market, or an O… market only when it has no parent question
hyperliquid_question_idNumeric Hyperliquid question id, or null for a standalone outcome
hyperliquid_outcome_idNumeric Hyperliquid outcome id, or null for a grouped question
market_nameHuman-readable market label
epoch_end_dateRequest key and response field for an epoch reward period
finalizedfalse while pending and true when ready for payment. The transition to true is the payment trigger
finalized_atTime when the payout was finalized, or null while pending
total_payout_usdcSum of all reward_usdc rows
payoutsOne non-zero reward row per wallet, combining rewards across all outcomes of a grouped Q… market
walletHypercore address to pay, as published
reward_usdcFinal reward for the wallet and market reward period

Get Current Incentives ​

Markets and outcomes being scored at as_of.

http
GET /marina/outcome-markets/current-incentives

Response ​

json
{
  "as_of": "2026-08-22T14:00:00Z",
  "markets": [
    {
      "market_id": "Q945",
      "hyperliquid_question_id": 945,
      "hyperliquid_outcome_id": null,
      "market_name": "Brentford v Tottenham Hotspur",
      "incentive_status": "incentivized",
      "scoring_params": {
        "distance_model": "logit",
        "baseline_total_spread_cents": "4",
        "settlement_band_maximum_multiplier": "2",
        "midpoint_min": "0.005",
        "midpoint_max": "0.995",
        "reward_distribution": "fixed",
        "component_weights": { "quote": "0.4", "maker_fill": "0.5", "taker_fill": "0.1" }
      },
      "total_reward_amount_usdc": "300.000000",
      "reward_period_type": "market",
      "incentive_start_time": "2026-08-22T13:30:00Z",
      "incentive_end_time": "2026-08-22T19:30:00Z",
      "outcomes": [
        {
          "market_id": "O11463",
          "hyperliquid_question_id": 945,
          "hyperliquid_outcome_id": 11463,
          "market_name": "Brentford",
          "reward_amount_usdc": "100.000000",
          "live_event_multiplier": "5",
          "current_multiplier": "5"
        },
        {
          "market_id": "O11464",
          "hyperliquid_question_id": 945,
          "hyperliquid_outcome_id": 11464,
          "market_name": "Draw",
          "reward_amount_usdc": "100.000000",
          "live_event_multiplier": "5",
          "current_multiplier": "5"
        },
        {
          "market_id": "O11465",
          "hyperliquid_question_id": 945,
          "hyperliquid_outcome_id": 11465,
          "market_name": "Tottenham Hotspur",
          "reward_amount_usdc": "100.000000",
          "live_event_multiplier": "5",
          "current_multiplier": "5"
        }
      ]
    }
  ]
}

Returns active incentives at as_of. Grouped markets list eligible outcomes in outcomes; standalone markets appear directly in markets. For epoch rewards, only the active epoch is included.

Every grouped question includes reward_distribution inside scoring_params. fixed means the outcome budgets are fixed. outcome_probability_weighted means the outcome budgets are weighted by outcome probability; from periods starting 2026-10-24, outcomes below 5% receive 0.

Logit scoring band ​

distance_model: "logit" adjusts the scored band to the market probability. A 4¢ baseline gives a 48–52% band at 50%; it narrows near 0% and 100%. Quotes at or outside the boundary do not score.

The band widens cubically from 1× to its published maximum, normally 2×, by event start or expected settlement. It remains capped until scoring ends.

Both incentives endpoints expose:

ParameterMeaning
baseline_total_spread_centsTotal width at 50% probability, before widening
midpoint_min, midpoint_maxScored probability bounds
settlement_band_maximum_multiplierMaximum widening
listing_atActual listing time
band_curve_start, band_curve_endWidening window; normally starts at listing
settlement_band_multiplierCurrent widening
event_time_multiplier_mode, event_time_multiplier_start, scheduled_event_startEvent-weighting mode and window
event_time_multiplierEnabled pre-event curve: 0.25× → 1×; otherwise 1×
component_weightsNormally 40% quotes / 50% maker fills / 10% taker fills

Multipliers are decimal strings evaluated at five-minute bucket midpoints; timing changes apply from their effective bucket.

settlement_band_multiplier widens the qualifying spread; current_multiplier is the event-time factor or configured live multiplier, so do not multiply it by event_time_multiplier again.

Example grouped-market response fragment from either incentives endpoint at event start, with live weighting enabled:

json
{
  "scoring_params": {
    "distance_model": "logit",
    "baseline_total_spread_cents": "4",
    "settlement_band_maximum_multiplier": "2",
    "midpoint_min": "0.005",
    "midpoint_max": "0.995",
    "reward_distribution": "fixed",
    "component_weights": { "quote": "0.4", "maker_fill": "0.5", "taker_fill": "0.1" },
    "listing_at": "2026-09-15T10:00:00Z",
    "band_curve_start": "2026-09-15T10:00:00Z",
    "band_curve_end": "2026-09-15T12:00:00Z",
    "event_time_multiplier_mode": "scheduled_match",
    "event_time_multiplier_start": "2026-09-15T10:00:00Z",
    "scheduled_event_start": "2026-09-15T12:00:00Z",
    "settlement_band_multiplier": "2",
    "event_time_multiplier": "1"
  },
  "outcomes": [
    {
      "market_id": "O11463",
      "market_name": "Brentford",
      "hyperliquid_question_id": 945,
      "hyperliquid_outcome_id": 11463,
      "reward_amount_usdc": "100.000000",
      "live_event_multiplier": "3",
      "current_multiplier": "3"
    }
  ]
}

Field Notes ​

FieldDescription
market_idQ<number> for a grouped question or O<number> for a tradable outcome
hyperliquid_question_idNumeric Hyperliquid question id, or null for a standalone outcome
hyperliquid_outcome_idNumeric Hyperliquid outcome id, or null for a grouped question
market_nameHuman-readable market label
scoring_paramsScoring model, band settings, component weights and available timing
reward_period_typeReward-period type: market for the full market lifecycle or epoch for a shorter incentive window
epochsActive reward period for a top-level epoch market
epoch_end_dateReward-period key inside epochs
total_reward_amount_usdcFull available reward for a grouped Q… market
reward_amount_usdcFixed outcome budget, available logit outcome reward amount, or null when unavailable
live_event_multiplierLive-event multiplier before and during the event, or null when none is configured
current_multiplierCurrent schedule-based multiplier at as_of, including the pre-event curve or live-event multiplier but excludes volatility; null outside the active incentive
incentive_start_timeTime when the incentive begins
incentive_end_timeTime when the incentive ends, or null until resolution determines it
incentive_statusincentivized for every top-level market in this response

Get All Incentives ​

Catalog of market incentives and their reward-period schedules.

http
GET /marina/outcome-markets/all-incentives?include_ended=true&limit=500&cursor=<opaque>

Includes ended incentives by default. Returns 500 results per page by default; use next_cursor to fetch more.

Response ​

json
{
  "as_of": "2026-08-22T14:00:00Z",
  "next_cursor": null,
  "markets": [
    {
      "market_id": "Q945",
      "hyperliquid_question_id": 945,
      "hyperliquid_outcome_id": null,
      "market_name": "Brentford v Tottenham Hotspur",
      "incentive_status": "incentivized",
      "category": null,
      "scoring_params": {
        "distance_model": "logit",
        "baseline_total_spread_cents": "4",
        "settlement_band_maximum_multiplier": "2",
        "midpoint_min": "0.005",
        "midpoint_max": "0.995",
        "reward_distribution": "fixed",
        "component_weights": { "quote": "0.4", "maker_fill": "0.5", "taker_fill": "0.1" }
      },
      "total_reward_amount_usdc": "300.000000",
      "reward_period_type": "market",
      "incentive_start_time": "2026-08-22T13:30:00Z",
      "incentive_end_time": "2026-08-22T19:30:00Z",
      "outcomes": [
        {
          "market_id": "O11463",
          "hyperliquid_question_id": 945,
          "hyperliquid_outcome_id": 11463,
          "market_name": "Brentford",
          "reward_amount_usdc": "100.000000",
          "live_event_multiplier": "5",
          "current_multiplier": "5"
        },
        {
          "market_id": "O11464",
          "hyperliquid_question_id": 945,
          "hyperliquid_outcome_id": 11464,
          "market_name": "Draw",
          "reward_amount_usdc": "100.000000",
          "live_event_multiplier": "5",
          "current_multiplier": "5"
        },
        {
          "market_id": "O11465",
          "hyperliquid_question_id": 945,
          "hyperliquid_outcome_id": 11465,
          "market_name": "Tottenham Hotspur",
          "reward_amount_usdc": "100.000000",
          "live_event_multiplier": "5",
          "current_multiplier": "5"
        }
      ]
    },
    {
      "market_id": null,
      "hyperliquid_question_id": null,
      "hyperliquid_outcome_id": null,
      "market_name": "Arsenal v Chelsea",
      "incentive_status": "scheduled",
      "category": null,
      "scoring_params": {
        "distance_model": "logit",
        "baseline_total_spread_cents": "4",
        "reward_distribution": "fixed"
      },
      "total_reward_amount_usdc": "300.000000",
      "reward_period_type": "market",
      "incentive_start_time": "2026-08-25T13:30:00Z",
      "incentive_end_time": "2026-08-25T20:00:00Z",
      "outcomes": [
        {
          "market_id": null,
          "hyperliquid_question_id": null,
          "hyperliquid_outcome_id": null,
          "market_name": "Arsenal",
          "reward_amount_usdc": "100.000000",
          "live_event_multiplier": "3",
          "current_multiplier": null
        },
        {
          "market_id": null,
          "hyperliquid_question_id": null,
          "hyperliquid_outcome_id": null,
          "market_name": "Draw",
          "reward_amount_usdc": "100.000000",
          "live_event_multiplier": "3",
          "current_multiplier": null
        },
        {
          "market_id": null,
          "hyperliquid_question_id": null,
          "hyperliquid_outcome_id": null,
          "market_name": "Chelsea",
          "reward_amount_usdc": "100.000000",
          "live_event_multiplier": "3",
          "current_multiplier": null
        }
      ]
    }
  ]
}

Upcoming markets appear before listing, with market_id: null until they list on Hyperliquid.

While daily epochs are active, final_reward_period previews the final market reward period with its start/end times, scheduled event start and total reward.

Field Notes ​

FieldDescription
market_idQ<number> for a grouped question or O<number> for a tradable outcome; null until the market lists on Hyperliquid
hyperliquid_question_idNumeric Hyperliquid question id, or null for a standalone outcome or an unlisted market
hyperliquid_outcome_idNumeric Hyperliquid outcome id, or null for a grouped question or an unlisted market
market_nameHuman-readable market label
incentive_statusTop-level status: scheduled before launch, incentivized while active, or ended after completion
categoryOptional topic label for the market, or null when none is available
scoring_paramsAvailable scoring settings for grouped or standalone markets
total_reward_amount_usdcFull available reward for a grouped market or epoch
outcomesReward-configured O… markets under a grouped Q… market, each with its own Yes/No book
reward_amount_usdcFixed outcome budget, available logit outcome reward amount, or null when unavailable
live_event_multiplierMultiplier configured for the live event, or null when none is configured
current_multiplierCurrent schedule-based multiplier at as_of; excludes volatility; null outside the active incentive
reward_period_typeTop-level reward-period type: market for one full-lifecycle period or epoch for shorter periods
incentive_start_timeStart of a full-market reward period
incentive_end_timeEnd of a full-market reward period, or null until resolution determines it
epochsReward periods for a top-level epoch market, keyed by UTC epoch_end_date
final_reward_periodFinal reward market preview while daily epochs are active; null otherwise on protected all-incentives
next_cursorOpaque continuation cursor, or null when the current page is complete

Get Scores ​

Wallet scores for one market reward period. Full-market periods use market_id; epoch periods also use epoch_end_date. The endpoint returns score snapshots after scoring begins. Final reward amounts are on the payouts API.

For a full-market reward period:

http
GET /marina/outcome-markets/scores?market_id=O11463

For an epoch reward period:

http
GET /marina/outcome-markets/scores?market_id=O11548&epoch_end_date=2026-09-16

Full-Market Response ​

json
{
  "market_id": "O11463",
  "hyperliquid_question_id": 945,
  "hyperliquid_outcome_id": 11463,
  "market_name": "Brentford",
  "scoring_params": {
    "distance_model": "logit",
    "baseline_total_spread_cents": "4",
    "settlement_band_maximum_multiplier": "2",
    "midpoint_min": "0.005",
    "midpoint_max": "0.995"
  },
  "snapshot": {
    "status": "provisional",
    "as_of": "2026-08-22T14:00:00Z",
    "finalized_at": null
  },
  "scores": [
    {
      "wallet": "0xabc...",
      "quote_depth_score": "20081.38",
      "maker_fill_volume_usdc": "4800.500000",
      "taker_fill_volume_usdc": "1220.000000"
    }
  ]
}

Epoch Response ​

json
{
  "market_id": "O11548",
  "hyperliquid_question_id": 950,
  "hyperliquid_outcome_id": 11548,
  "market_name": "No change",
  "scoring_params": {
    "distance_model": "logit",
    "baseline_total_spread_cents": "4",
    "settlement_band_maximum_multiplier": "2",
    "midpoint_min": "0.005",
    "midpoint_max": "0.995"
  },
  "epoch_start_date": "2026-09-15",
  "epoch_end_date": "2026-09-16",
  "snapshot": {
    "status": "provisional",
    "as_of": "2026-09-15T12:45:00Z",
    "finalized_at": null
  },
  "scores": [
    {
      "wallet": "0xabc...",
      "quote_depth_score": "20081.38",
      "maker_fill_volume_usdc": "4800.500000",
      "taker_fill_volume_usdc": "1220.000000"
    }
  ]
}

Field Notes ​

FieldDescription
market_idScore query key for a tradable O… market
hyperliquid_question_idNumeric parent question id, or null for a standalone outcome
hyperliquid_outcome_idNumeric Hyperliquid outcome id
market_nameHuman-readable market label
scoring_paramsFormula settings used to calculate these scores. Current timing multipliers are available from the incentives endpoints.
epoch_start_dateStart date returned for an epoch reward period
epoch_end_dateRequest key and end date returned for an epoch reward period
snapshot.statusprovisional or final
scoresWallet scores for the market reward period
walletHypercore address being scored
quote_depth_scoreQuote depth score for the wallet and market
maker_fill_volume_usdcMaker fill volume for the wallet
taker_fill_volume_usdcTaker fill volume for the wallet

Monarch docs live in the monorepo and deploy separately from the app.