Score Champions

Weekly Qualification and gated Score Champions ladders, SP rules, promotion, and prizes

Last updated: April 2, 2026

Score Champions is ScorePlay’s weekly competition system: an open Qualification ladder each week and a gated Score Champions bracket for players who qualify. Rankings use ScorePoints (SP) only; USDC markets still earn SP, but USDC is never a ranking axis.

Competition weeks

  • SCORE_CHAMPIONS_SEASON_START_ISO in lib/competition/week.ts: Week 0 is the launch window Apr 1 00:00 UTC → Apr 7 00:00 UTC (half-open [start, end) so the last calendar day inside Week 0 is Apr 6 UTC).
  • Week 1 begins Apr 7 00:00 UTC; Week 2+ run Tuesday 00:00 UTC → next Tuesday 00:00 UTC (7-day UTC segments).
  • Week 0 is Qualification-only; Score Champions is disabled until Week 1.
  • Week 1 Score Champions includes only players who finished in the top 25 on Qualification in Week 0, including all ties at the cutoff.

Three leaderboard surfaces (app)

  1. All-time — Lifetime SP and accuracy (hall of fame).
  2. Qualification — Everyone; ranked by competitive SP from events whose eventUtcDate falls in that week.
  3. Score ChampionsOnly qualified players for that week; same SP rules, scoped to eligible users. If you are not eligible, the API does not return the board (forbidden).

Competitive SP (what counts)

Included (event-linked, allowlisted transaction types), summed for transactions joined to events with:

  • eventUtcDate >= weekStart and eventUtcDate < weekEnd

Allowlisted types include prediction and on-chain claim paths that write event-linked SP (e.g. PREDICTION, WARMUP_PREDICTION, BET_PLACED, PAYOUT_CLAIM). Excluded: REFERRAL, non-event transactions, and anything not on the allowlist.

Referral SP may still exist for growth rewards but does not count toward Qualification or Score Champions.

Promotion rules

  • Qualification week W: Top 25 (+ ties) → eligible for Score Champions week W+1.
  • Score Champions week W (W ≥ 1): Top 10 (+ ties) → auto-eligible for Score Champions week W+1 (includes the top 5).
  • Top 5 (+ ties) receive prize pool shares 35% / 30% / 20% / 10% / 5% of the distributable pool; ties split that rank’s percentage.

Eligibility is also written to CompetitionEligibility when weeks are finalized via the internal finalize job; until then, the app may show provisional eligibility derived from live SP.

Data safety (production)

Score Champions adds new tables only (CompetitionWeek, CompetitionLeaderboardSnapshot, CompetitionEligibility). It does not rewrite historical Transaction, User, or Event rows. Finalize jobs insert/update only those new tables.

APIs (overview)

  • GET /api/competition/meta — epoch, selected/current week, countdown label, week rail.
  • GET /api/competition/leaderboard?week=&type=qualification|champions — paginated board.
  • GET /api/competition/me — current user’s Qualification rank/SP, Champions field membership (auth).
  • POST /api/competition/finalize?week=N — cron/admin; requires COMPETITION_FINALIZE_SECRET header.

Prizes (rollout)

Weekly pool composition (fees, subsidy, future paid entries) and on-chain claims are integrated progressively.

  • GET /api/competition/prize-pool-estimateSubgraph-backed house fees (USDC on Base) for the estimated pool. Optional query week=W: totals are computed for competition week W−1, [start, min(week end, now)), funding the pool associated with week W (same rule as UI: Week 1 view uses Week 0 fees). Omit week to use the current competition week.