Outcome Markets Rewards API Schema
Conventions
| Item | Value |
|---|---|
| Times | ISO 8601 UTC |
| Amounts | Fixed 6-decimal USDC strings |
| Base URL | https://api.monarch.fast |
| Route prefix | /marina/outcome-markets |
| IDs | market_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_type | market for the full market lifecycle or epoch for shorter incentive windows. Outcomes in one Q… market share one type |
| Epoch key | For 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 authority | total_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 itsO…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:
GET /marina/outcome-markets/payouts{
"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.
GET /marina/outcome-markets/payouts?wallet=0x00000000000000000000000000000000000000aaUse 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.
GET /marina/outcome-markets/payouts?wallet=0x00000000000000000000000000000000000000aa&market_ids=Q945,O1696{
"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_cursoruntilnull, keeping the same wallet and market filter. Restart pagination if new payouts are finalized during paging. - Only finalized, distributed rewards count.
market_idsrequireswallet. Wallet queries cannot includemarket_idorepoch_end_date. Invalid queries or cursors return400.
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:
GET /marina/outcome-markets/payouts?market_id=Q945For an epoch reward period:
GET /marina/outcome-markets/payouts?market_id=Q950&epoch_end_date=2026-09-16Exact Reward-Period Response States
| State | Response |
|---|---|
| Unknown reward period | 404 |
| Known, not finalized | 200 with finalized: false, null total_payout_usdc, and payouts: [] |
| Finalized | 200 with finalized: true and the finalized payload |
| Temporary server error | 5xx retry |
Response (finalized)
{
"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)
{
"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
| Field | Description |
|---|---|
market_id | Payout query key: the parent Q… market, or an O… market only when it has no parent question |
hyperliquid_question_id | Numeric Hyperliquid question id, or null for a standalone outcome |
hyperliquid_outcome_id | Numeric Hyperliquid outcome id, or null for a grouped question |
market_name | Human-readable market label |
epoch_end_date | Request key and response field for an epoch reward period |
finalized | false while pending and true when ready for payment. The transition to true is the payment trigger |
finalized_at | Time when the payout was finalized, or null while pending |
total_payout_usdc | Sum of all reward_usdc rows |
payouts | One non-zero reward row per wallet, combining rewards across all outcomes of a grouped Q… market |
wallet | Hypercore address to pay, as published |
reward_usdc | Final reward for the wallet and market reward period |
Get Current Incentives
Markets and outcomes being scored at as_of.
GET /marina/outcome-markets/current-incentivesResponse
{
"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:
| Parameter | Meaning |
|---|---|
baseline_total_spread_cents | Total width at 50% probability, before widening |
midpoint_min, midpoint_max | Scored probability bounds |
settlement_band_maximum_multiplier | Maximum widening |
listing_at | Actual listing time |
band_curve_start, band_curve_end | Widening window; normally starts at listing |
settlement_band_multiplier | Current widening |
event_time_multiplier_mode, event_time_multiplier_start, scheduled_event_start | Event-weighting mode and window |
event_time_multiplier | Enabled pre-event curve: 0.25× → 1×; otherwise 1× |
component_weights | Normally 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:
{
"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
| Field | Description |
|---|---|
market_id | Q<number> for a grouped question or O<number> for a tradable outcome |
hyperliquid_question_id | Numeric Hyperliquid question id, or null for a standalone outcome |
hyperliquid_outcome_id | Numeric Hyperliquid outcome id, or null for a grouped question |
market_name | Human-readable market label |
scoring_params | Scoring model, band settings, component weights and available timing |
reward_period_type | Reward-period type: market for the full market lifecycle or epoch for a shorter incentive window |
epochs | Active reward period for a top-level epoch market |
epoch_end_date | Reward-period key inside epochs |
total_reward_amount_usdc | Full available reward for a grouped Q… market |
reward_amount_usdc | Fixed outcome budget, available logit outcome reward amount, or null when unavailable |
live_event_multiplier | Live-event multiplier before and during the event, or null when none is configured |
current_multiplier | Current 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_time | Time when the incentive begins |
incentive_end_time | Time when the incentive ends, or null until resolution determines it |
incentive_status | incentivized for every top-level market in this response |
Get All Incentives
Catalog of market incentives and their reward-period schedules.
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
{
"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
| Field | Description |
|---|---|
market_id | Q<number> for a grouped question or O<number> for a tradable outcome; null until the market lists on Hyperliquid |
hyperliquid_question_id | Numeric Hyperliquid question id, or null for a standalone outcome or an unlisted market |
hyperliquid_outcome_id | Numeric Hyperliquid outcome id, or null for a grouped question or an unlisted market |
market_name | Human-readable market label |
incentive_status | Top-level status: scheduled before launch, incentivized while active, or ended after completion |
category | Optional topic label for the market, or null when none is available |
scoring_params | Available scoring settings for grouped or standalone markets |
total_reward_amount_usdc | Full available reward for a grouped market or epoch |
outcomes | Reward-configured O… markets under a grouped Q… market, each with its own Yes/No book |
reward_amount_usdc | Fixed outcome budget, available logit outcome reward amount, or null when unavailable |
live_event_multiplier | Multiplier configured for the live event, or null when none is configured |
current_multiplier | Current schedule-based multiplier at as_of; excludes volatility; null outside the active incentive |
reward_period_type | Top-level reward-period type: market for one full-lifecycle period or epoch for shorter periods |
incentive_start_time | Start of a full-market reward period |
incentive_end_time | End of a full-market reward period, or null until resolution determines it |
epochs | Reward periods for a top-level epoch market, keyed by UTC epoch_end_date |
final_reward_period | Final reward market preview while daily epochs are active; null otherwise on protected all-incentives |
next_cursor | Opaque 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:
GET /marina/outcome-markets/scores?market_id=O11463For an epoch reward period:
GET /marina/outcome-markets/scores?market_id=O11548&epoch_end_date=2026-09-16Full-Market Response
{
"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
{
"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
| Field | Description |
|---|---|
market_id | Score query key for a tradable O… market |
hyperliquid_question_id | Numeric parent question id, or null for a standalone outcome |
hyperliquid_outcome_id | Numeric Hyperliquid outcome id |
market_name | Human-readable market label |
scoring_params | Formula settings used to calculate these scores. Current timing multipliers are available from the incentives endpoints. |
epoch_start_date | Start date returned for an epoch reward period |
epoch_end_date | Request key and end date returned for an epoch reward period |
snapshot.status | provisional or final |
scores | Wallet scores for the market reward period |
wallet | Hypercore address being scored |
quote_depth_score | Quote depth score for the wallet and market |
maker_fill_volume_usdc | Maker fill volume for the wallet |
taker_fill_volume_usdc | Taker fill volume for the wallet |
