🚧 SportsPerp is currently live on devnet. Mainnet target: before Jun 12, 2026 (World Cup kickoff).
RoadmapDevnet β†’ Mainnet

Devnet β†’ Mainnet

SportsPerp has been live on Solana devnet since early 2026. Mainnet is targeted before June 12, 2026 β€” the kickoff of the 2026 FIFA World Cup. This page documents what’s done, what remains, and the order of operations.

Current state (as of 2026-05)

ComponentStatus
On-chain programDeployed β€” 30 instructions, ~710 KB, 7 PDA types, 47 error codes, 13 #[event] structs
Markets live68 (20 teams + 48 players)
OBV engineRunning β€” 5-min crank + live overlay on the partner’s live event feed + Python obv-engine sidecar (XGBoost PV-GF/PV-GA)
Oracle pusherDeployed (single-source; multi-source 2-of-N built, not deployed)
Trigger keeper + funding crankDeployed
Liquidation botDeployed
MonitoringDeployed β€” Telegram alert webhook (NanoClaw) not yet wired; alerts queue to disk on Hetzner until configured
Trade-history indexerLive since 2026-05-11 (decoder wired; Anchor EventParser + BorshCoder against the regenerated IDL). Exposed publicly at https://api.sportsperp.xyz/indexer/* via Caddy handle_path; frontend Trade History panel ships on /portfolio
Live↔REST ID bridgePhase 2 verified β€” V2 cutover applied on Hetzner 2026-05-10 (ENABLE_REALTIME_OBV_V2=true, SHADOW_REALTIME_OBV=false); Phase 3 verification timer fires every 15 min Sat/Sun 10–22 UTC
Insurance fundLive β€” 20 K USDC, 50 K max exposure, 10 K target
Liquidity poolLive β€” singleton global pool (replaces per-market vaults)
SDKPublished β€” @sportsperp/sdk@0.1.0
FrontendDeployed on Vercel β€” app.sportsperp.xyz (Caddy reverse proxy at api.sportsperp.xyz)
Self-auditComplete β€” 17 findings (1 Critical + 5 High, all fixed), plus Apr 2026 fix sweep (S4-01 LimitOpen expiry + 5 additional + 2 bonus)
External auditPending β€” engagement with two Solana-specialist firms targeted before mainnet

Detail on every item: PRD.md Β§14 Roadmap.

What β€œmainnet-ready” means

Nine gates must close before mainnet:

1. External security audit (engagement pending)

Two Solana-specialist audit firms will be engaged before mainnet β€” names published here once engagement letters are signed. Scope: full on-chain program, oracle pipeline, SDK math parity, liquidation cascade. The mainnet date is gated on a clean final report, with remediation + re-review windows ahead of deploy.

2. Multi-source oracle deployed

oracle-pusher/multi-oracle.mjs (588 lines, built) replaces the single-source admin oracle with 2-of-N weighted-median consensus. Remaining work: second Hetzner node, second Helius key, configuration testing, deploy cutover. ~1 day of engineering, €4.50/month infrastructure.

3. Admin keys β†’ multi-sig + timelock

Today the admin keypair is a single key. For mainnet, admin operations (update_market_params, pause_market, configure_insurance, etc.) move behind a 3-of-5 multi-sig with a 48-hour timelock on parameter-changing instructions. The upgrade authority moves to the same multi-sig.

4. Switchboard PullFeed integration

For additional oracle resilience on mainnet, the 2-of-N consensus will include Switchboard TEE-backed feeds as a third leg. This adds hardware-level attestation to the existing off-chain sources.

5. Insurance fund mainnet seeding

The 20K USDC devnet fund will scale to a mainnet-appropriate size, seeded from protocol treasury. Target: $250K–$500K at launch, sufficient to absorb normal Layer 2 flow without ADL risk during the initial low-liquidity window.

6. Mainnet USDC + roster migration

All 68 markets will be re-initialized on mainnet with the mainnet USDC mint (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v). Insurance fund, oracle feeds, all PDAs β€” fresh. Devnet state does not carry over by design: mainnet is a clean slate for real capital.

7. Points program go-live

Points Program wires up at the same moment as mainnet. First trading activity earns points.

8. Frontend mainnet cutover

The frontend auto-switches when it detects the mainnet program ID. Users connect their Phantom / Solflare / Backpack wallets, approve mainnet USDC, trade.

9. Operational runbooks

Every admin operation (emergency pause, market initialization, sunset, insurance top-up) has a runbook. The on-call rotation is established. Telegram alerts point to the oncall channel.

Target sequencing

Now (2026-04) ─────────────────────────────────────────┐
  β”‚                                                     β”‚
  β”œβ”€ External audit engagement (in flight)              β”‚
  β”œβ”€ Multi-source oracle 2nd deploy                     β”‚ 4-6
  β”œβ”€ Admin CLI + operational tooling                    β”‚ weeks
  β”œβ”€ Multi-sig + timelock setup                         β”‚
  β”œβ”€ Switchboard PullFeed integration                   β”‚
  β”‚                                                     β”‚
  └─► 2026-05 (late May): Audit report received ◄───────
      β”‚                                                 β”‚
      β”œβ”€ Remediation window (high-sev findings)         β”‚ 1-2
      β”œβ”€ Re-review of fixes                             β”‚ weeks
      β”‚                                                 β”‚
      └─► 2026-06 (early June): Mainnet deploy ◄────────
          β”‚                                             β”‚
          β”œβ”€ Insurance fund seeded ($250K–$500K)        β”‚ 1
          β”œβ”€ All 68 markets reinitialized                β”‚ week
          β”œβ”€ Points program activates                    β”‚
          β”œβ”€ Frontend mainnet cutover                    β”‚
          β”‚                                              β”‚
          └─► 2026-06-12: World Cup kickoff β—„β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The window is tight but feasible. The biggest schedule risks are external-audit findings requiring structural changes (have mitigations drafted for likely scenarios) and multi-source oracle coordination (one-day implementation, but requires operational setup on a second VPS).

What ships later

These are post-mainnet additions, not mainnet blockers:

  • Limit order book (currently trigger orders only)
  • Cross-market portfolio margin
  • Sub-accounts (multiple positions per trader per market)
  • Mobile app (PWA today; native iOS/Android later)
  • Keeper economic incentives tuning β€” live reward data will inform rebalancing
  • Admin CLI consolidation
  • Live match processor systemd hardening β€” deployed but needs extended stress testing under matchday load

What deliberately doesn’t ship

A few features we’ve ruled out for v1, each for a specific reason:

  • More leagues / sports. La Liga, Bundesliga, or NFL markets could launch, but doubling the market count before mainnet tests of EPL at scale would dilute focus. See Expansion.
  • Token launch at mainnet. $SPERP launches post-mainnet. See $SPERP β†’ Overview for the rationale.
  • Non-USDC collateral. SOL, other stablecoins, LP tokens are plausible; none are v1.
  • Leveraged staking or yield wrappers on $SPERP. Post-TGE conversation at earliest.

Discipline on the β€œno” list is what makes the timeline credible.

Devnet continues

Devnet stays live throughout mainnet. It’s the canonical testing environment for SDK consumers, keeper development, and any protocol changes. Mainnet does not replace devnet β€” they coexist.

Further reading