Quests
Event-driven progression system with 10 quests across 3 phases.Quest Catalog
- Phase 1 (Core)
- Phase 2 (Intermediate)
- Phase 3 (Advanced)
| Quest | Trigger | Target | Reward | |---|---|---|---| | First Challenge |
challenge_start | Complete 1 | Mutagen + raffle ticket | | Scout Graduate
| challenge_pass (Scout) | Pass 1 | Mutagen + raffle ticket | | Metals
Explorer | challenge_start_metals | Start 1 | Mutagen + raffle ticket | |
Energy Pioneer | challenge_start_energy | Start 1 | Mutagen + raffle
ticket | | Comeback Trail | challenge_pass_after_fail | Pass after failing
| Mutagen + raffle ticket |How It Works
- Trade events (challenge lifecycle, threshold crossings) fire trigger events
checkProgress(event)increments matching quests toward their target- When target is reached, quest completes — mutagen reward + raffle tickets are granted
- Progress is persisted to the database via
/api/competition/quests
Streaks
Daily activity tracking with multiplier bands. Rewards consistent engagement.Streak Multipliers
| Consecutive Days | Multiplier | Bonus |
|---|---|---|
| 1 day | 1.0x | — |
| 2 days | 1.5x | — |
| 3–4 days | 2.0x | — |
| 5–9 days | 3.0x | +1 raffle ticket |
| 10+ days | 5.0x | ”Unbreakable” badge |
Streak States
| State | Condition | Visual |
|---|---|---|
| Alive | Activity in last 24h | Green — streak is safe |
| Warning | Last activity 1–3 days ago | Yellow — at risk of breaking |
| Broken | 3+ days inactive | Red — streak resets to 0 |
lastActivityDate against the current UTC date to determine state.
Head-to-Head Matchups
Real-time competitive pairings generated from leaderboard standings.Matchup Generation
Traders are paired deterministically by rank: #1 vs #2, #3 vs #4, etc. Each matchup has a 6-hour window (2h before to 4h after creation).Match Resolution
- Risk Event Noise: Active risk events apply random +/-40% variance per trader
- Draw Threshold: Score margin < 0.5 points = draw
- Winner: Highest final score
Live P&L Race
During active matchups, the system tracks momentum:| Momentum | Condition |
|---|---|
| Surging | PnL delta > +10% |
| Stable | PnL delta 0–10% |
| Fading | PnL delta < 0% |
Matchup Odds
Pre-match odds use a logistic probability model:Rivalries
Persistent head-to-head relationship tracking across multiple matchups.Rivalry Requirements
- Minimum 2 meetings between the same pair
- Tracked: wins, losses, draws per pair
- Intensity score:
meetings × 2 + winDifferential
Rivalry Tags
| Tag | Condition |
|---|---|
| Bitter Rivals | 5+ meetings |
| Mirror Match | 2+ draws |
| David vs Goliath | One trader has 0 wins |
| The Rematch | Exactly 2 meetings |
| Dead Even | Win differential <= 1 |
| Old Enemies | 4+ meetings |
| Emerging Rivalry | Default (2–3 meetings) |
Narrative Commentary
Auto-generated story beats from real standings changes. Creates a live “sports broadcast” feel.Beat Types
| Beat | Trigger | Severity |
|---|---|---|
| Rank Surge | Climbed 3+ positions | Hype (Legendary if top 3) |
| Iron Hands | Low drawdown + high PnL | Hype |
| Risk Event Survivor | Top 3 trader holds through severe event | Legendary |
| Funded Promotion | Top 2 finish | Hype |
| Upset | Lower-ranked beats higher-ranked in matchup | Legendary |
| Perfect Record | #1 leader with 18%+ PnL | Hype |
| Streak Milestone | 10+ day streak | Hype |
| Golden Trade | Highest PnL trader’s best single trade | Legendary |
Golden Trade
Awarded to the trader with the highest PnL% in standings. The system extrapolates their best single trade (PnL USD, leverage, direction, market) and generates a narrative highlight.Commentary Feed
The feed combines all sources into a single stream:- Narrative beats (from standings changes)
- Golden trade highlight
- Crowd favorites (from spectator votes)
- Active rivalries (from matchup history)
- Risk event updates (from scenario engine)
Spectator Voting
Audience engagement for head-to-head matchups.How It Works
- Spectators (non-competing wallets) can vote for a trader in any active matchup
- Votes are persisted to the database with voter wallet, match ID, and timestamp
- Crowd Favorite status is awarded to the trader with the most votes in a match
- Featured Matchup status triggers when a match exceeds 30 votes
Dynamic Risk Events
Scenario-based modifiers that test trader adaptability during competitions.Event Types
| Event | Severity | Duration | Effect | Eligible Tiers |
|---|---|---|---|---|
| Flash Crash | Severe | 4h | −35% PnL modifier | All |
| Liquidity Drain | Moderate | 8h | −20% volume | Veteran+ |
| Volatility Spike | Moderate | 6h | +40% max drawdown | All |
| Forced Market | Mild | 12h | −15% consistency | Elite+ |
| Correlation Break | Moderate | 10h | −12% win rate | Veteran+ |
| News Blackout | Mild | 24h | −10% consistency | Scout–Veteran |
| Leverage Cap | Mild | 12h | −10% PnL | Scout+Ranger |
| Spread Widening | Moderate | 6h | −15% volume | All |
How Events Are Generated
Events are deterministic per cohort — a seeded random number generator picks 2–3 events from the catalog, assigns them to scenario names (e.g., “Black Monday Redux”, “Liquidity Apocalypse”), and sets activation times within the cohort window. Events affect matchup resolution by adding noise to scores, creating upsets and drama in otherwise predictable standings.Desk Wars
Team-based competition for social cohesion.Desk Teams
8 desks organized by specialist type and tier:| Desk | Specialist | Tier |
|---|---|---|
| Crypto Apex | Crypto | Apex |
| Impulse | Crypto | Elite |
| Forex Orbit | Forex | Veteran |
| Precision | Forex | Ranger |
| Metals Vault | Metals | Elite |
| Energy Macro | Energy | Veteran |
| Multi Alpha | Multi-Asset | Apex |
| Rotation | Multi-Asset | Elite |
Desk Score Formula
| Status | Condition |
|---|---|
| Promoted | Score > 120 |
| Stable | 60–120 |
| Relegated | Score < 60 |