Outcome Rewards API Schema
Conventions
| Item | Value |
|---|---|
| Campaign | world-cup-2026 |
| Times | ISO 8601 UTC |
| Amounts | Decimal USDC strings |
| Wallets | Hypercore addresses |
| Base URL | https://api.monarch.fast |
| Current epoch | Omit epoch_date; scores now resolve to the final published 2026-07-19 epoch, while the other reads keep their documented current-epoch rules |
| Explicit epoch | Eligible teams use epoch_date as the reward date; scores and daily matches use it as the 09:00 UTC epoch start date |
epoch_status | upcoming, provisional, or final |
snapshot.status | preview, live, or final |
Get Eligible Teams
Eligible teams for the World Cup winner rewards.
GET /marina/campaigns/world-cup-2026/eligible-teams
GET /marina/campaigns/world-cup-2026/eligible-teams?epoch_date=2026-06-08Response
{
"campaign_id": "world-cup-2026",
"epoch_date": "2026-06-08",
"epoch_status": "provisional",
"epoch_start_time": "2026-06-07T09:00:00Z",
"epoch_end_time": "2026-06-08T09:00:00Z",
"snapshot": {
"status": "live",
"as_of": "2026-06-08T13:50:00Z",
"finalized_at": null
},
"builder_code": "0xab5dbc057628bc18523c4cdfc0e1e2ebdbecb704",
"eligible_teams": [
{
"team_name": "France",
"hyperliquid_outcome_id": 189
}
],
"ineligible_teams": [
{
"team_name": "New Zealand",
"hyperliquid_outcome_id": 190
}
]
}Field Notes
| Field | Description |
|---|---|
epoch_date | Current 09:00 UTC reward date, or requested historical or future reward date |
epoch_status | upcoming, provisional, or final |
epoch_start_time | Start time for the winner market scoring epoch |
epoch_end_time | End time for the winner market scoring epoch |
snapshot.status | preview, live, or final |
snapshot.as_of | Timestamp of the data returned |
snapshot.finalized_at | Timestamp when the epoch was locked, or null while live |
builder_code | Orders and trades only count when they use this builder code |
eligible_teams | Displayed Champion teams whose eligibility mid is inside the 1% to 99% band |
ineligible_teams | Displayed Champion teams whose eligibility mid is outside the 1% to 99% band |
hyperliquid_outcome_id | Outcome id from Hyperliquid outcomeMeta |
Get Daily Matches
Match markets eligible for daily match rewards.
GET /marina/campaigns/world-cup-2026/daily-matches
GET /marina/campaigns/world-cup-2026/daily-matches?epoch_date=2026-06-20
GET /marina/campaigns/world-cup-2026/all-matchesdaily-matches uses epoch_date as the 09:00 UTC epoch start date and returns epoch_end as the following end/reward date. Omitted and future start dates resolve to the latest started 09:00 UTC epoch. Latest-epoch reads return matches whose scheduled kickoff is not before that epoch start and whose incentive has already started; stored configured matches in that kickoff window also remain visible after their recorded campaign window has ended. Historical reads keep selecting by incentive start inside the epoch or scheduled kickoff inside the epoch. all-matches accepts no query parameters and returns the full known match schedule with the latest started start/end envelope.
Response
{
"campaign_id": "world-cup-2026",
"epoch_date": "2026-06-20",
"epoch_end": "2026-06-21",
"epoch_status": "provisional",
"snapshot": {
"status": "live",
"as_of": "2026-06-20T13:55:00Z",
"finalized_at": null
},
"builder_code": "0xab5dbc057628bc18523c4cdfc0e1e2ebdbecb704",
"matches": [
{
"match_id": "mexico-vs-south-africa-2026-06-20",
"hyperliquid_question_id": 837,
"match_name": "Mexico vs South Africa",
"scheduled_kickoff_time": "2026-06-20T19:00:00Z",
"recorded_kickoff_time": null,
"recorded_end_time": null,
"incentive_start_time": "2026-06-20T07:00:00Z",
"incentive_end_rule": "final_whistle_or_penalties_resolved",
"match_reward_amount_usdc": "100.00",
"live_multiplier": "5",
"publication_status": "published",
"scored_outcomes": [
{
"outcome_name": "Mexico",
"hyperliquid_outcome_id": 10351
},
{
"outcome_name": "Draw",
"hyperliquid_outcome_id": 10352
},
{
"outcome_name": "South Africa",
"hyperliquid_outcome_id": 10353
}
]
}
]
}Field Notes
daily-matches returns latest-epoch matches only after the incentive has started, while historical reads keep the incentive-start-or-kickoff selection rule. Group-stage markets return three scored YES books. Knockout markets return one scored book.
| Field | Description |
|---|---|
epoch_date | 09:00 UTC epoch start date for daily-matches and the latest started start date for all-matches |
epoch_end | Following date when that 09:00 UTC epoch ends; this is the internal reward/end date |
matches | Overlapping started incentives for the latest epoch, or the full resolved historical epoch |
match_id | Stable match id for this API |
hyperliquid_question_id | Question id from Hyperliquid outcomeMeta |
match_name | Human-readable match label |
scheduled_kickoff_time | Scheduled match kickoff time |
recorded_kickoff_time | Actual kickoff timestamp when recorded, otherwise null |
recorded_end_time | Actual final whistle or penalties-resolved timestamp when recorded, otherwise null |
incentive_start_time | Time when orders and trades can start scoring for the match |
incentive_end_rule | Rule for ending the match incentive window |
match_reward_amount_usdc | Total reward amount assigned to the match |
live_multiplier | Score multiplier applied to five-minute scoring buckets that overlap the live match window |
publication_status | scheduled for uploaded schedule-only fixtures, published for stored configured matches; unpublished is reserved by the schema |
scored_outcomes | Scored books that can score for this match. Group-stage markets include Team 1, Draw, and Team 2 YES books. Knockout markets include one book |
Get Scores
Live or finalized scores by wallet and Hyperliquid outcome.
For the completed World Cup 2026 campaign, omitting epoch_date returns the final published 2026-07-19 score epoch. An explicit epoch_date still selects that exact historical or future score epoch.
GET /marina/campaigns/world-cup-2026/scores
GET /marina/campaigns/world-cup-2026/scores?epoch_date=2026-06-08Response
{
"campaign_id": "world-cup-2026",
"epoch_date": "2026-06-08",
"epoch_status": "provisional",
"epoch_start_time": "2026-06-08T09:00:00Z",
"epoch_end_time": "2026-06-09T09:00:00Z",
"snapshot": {
"status": "live",
"as_of": "2026-06-08T13:55:00Z",
"finalized_at": null
},
"scores": [
{
"score_scope": "champion",
"wallet": "0xabc...",
"team_name": "France",
"hyperliquid_outcome_id": 189,
"team_scoring_weight": "0.16010",
"quote_depth_score": "20081.38",
"maker_fill_volume_usdc": "4800.50",
"taker_fill_volume_usdc": "1220.00",
"total_score": "21045.26",
"daily_reward_usdc": null,
"cumulative_reward_usdc": null
},
{
"score_scope": "match",
"wallet": "0xabc...",
"match_id": "mexico-vs-south-africa-2026-06-11",
"hyperliquid_question_id": 837,
"match_name": "Mexico vs South Africa",
"outcome_name": "Mexico",
"hyperliquid_outcome_id": 10351,
"quote_depth_score": "1200.00",
"maker_fill_volume_usdc": "500.00",
"taker_fill_volume_usdc": "80.00",
"total_score": "1780.00",
"daily_reward_usdc": null,
"cumulative_reward_usdc": null
}
]
}Future / No-Run Response
{
"campaign_id": "world-cup-2026",
"epoch_date": "2026-06-20",
"epoch_status": "upcoming",
"epoch_start_time": "2026-06-20T09:00:00Z",
"epoch_end_time": "2026-06-21T09:00:00Z",
"snapshot": {
"status": "preview",
"as_of": null,
"finalized_at": null
},
"scores": []
}Field Notes
| Field | Description |
|---|---|
epoch_status | upcoming, provisional, or final |
snapshot.status | preview, live, or final |
scores | Empty future scores are normal and mean the UI should show upcoming/no scores yet, not an error |
epoch_start_time | Start time for the winner market scoring epoch |
epoch_end_time | End time for the winner market scoring epoch |
score_scope | champion for World Cup winner books, or match for daily match books |
wallet | Hypercore address being scored |
team_name | Team for this World Cup winner book; only present for champion scores |
match_id | Stable match id; only present for match scores |
hyperliquid_question_id | Question id from Hyperliquid outcomeMeta; only present for match scores |
match_name | Human-readable match label; only present for match scores |
outcome_name | Scored YES outcome label; only present for match scores |
hyperliquid_outcome_id | Outcome id from Hyperliquid outcomeMeta |
team_scoring_weight | Normalized team scoring weight; only present for champion scores |
quote_depth_score | Quote depth score for the wallet and book |
maker_fill_volume_usdc | Maker fill volume observed for the wallet |
taker_fill_volume_usdc | Taker fill volume observed for the wallet |
total_score | Total score for the wallet and asset |
daily_reward_usdc | Final reward for the epoch, or null until finalized |
cumulative_reward_usdc | Total earned through the epoch, or null until finalized |
Aggregation Notes
For finalized epochs, daily_reward_usdc and cumulative_reward_usdc are row-level reward amounts and may be summed by wallet.
