Indexer: GET /v1/arena/wallet/{{address}}/stats for profile modal
Context
Wallet stats API for participant profile modal. Parent epic: #238 (closed).
Relevant files
indexer/src/api.rs- SQL aggregations over buy, podium payout, XP, CRED, WarBow epochs
Acceptance criteria
API returns:
-
epochs_participated(Last Buy epochs with ≥1 buy) -
prizes_won[]:{ podium, epoch, rank, amount_doub } -
total_won_doub,total_spent_doub,buy_count -
xp,level -
highest_scores[]:{ podium, epoch, score, rank }for Streak, TimeBooster, WarBow, LastBuy - Bonus stats: first buy timestamp, longest defended streak, WarBow steals/guards, referral CRED earned, CRED claimed, average buy size, max single buy, podium win rate, rank distribution
Verification checklist
- Integration test with fixture buys across 2 Last Buy epochs
- p95 query latency acceptable on Anvil-rich dataset