Spec: Arena v2 product primitives (timers, CRED, prizes, XP)
Context
Authoritative product spec for Arena v2. Parent epic: #238 (closed).
Replace docs/product/primitives.md launchpad semantics with TimeArena rules.
Relevant files
- New:
docs/product/time-arena.md - Update:
docs/glossary.md,docs/architecture/overview.md - Retire references in:
YO-DOUB-Launch-UX-Flows.md,launchplan-timecurve.md
Acceptance criteria
Document these timer rules:
| Podium | Initial timer | Extension on buy | Hard-reset if remaining below | Reset to |
|---|---|---|---|---|
| Last Buy (primary) | 24h | +120s | 13m | 15m |
| Streak | 18h | +90s (+1.5m) | 8.5m | 10m |
| Time Booster | 12h | +60s (+1m) | 4m | 5m |
| WarBow | 48h | +300s (+5m) | 55m | 1h |
- Each podium has independent deadline + epoch counter; epochs are not synchronized
- CHARM: fixed 1000 DOUB / CHARM (admin-settable); min/max CHARM band unchanged in spirit
- Buy economics: 10% DOUB → each podium pool; 7.5% DOUB → each podium next-round seed; 30% → admin sell vault; 70% total to prizes
- Play CRED: non-transferable; 70 CRED = one free buy (min/max CHARM band applies); admin + optional grantor contract can mint
- CRED yield: each buy mints 35 CRED split pro-rata to current-epoch CHARM holders
- Last Buy epoch: CHARM tracked per epoch; on Last Buy reset → claim pending CRED, zero epoch CHARM onchain
- XP: linear 1–10 from min→max buy; L1=20 XP; +5 XP per level requirement until 100 XP/level cap, then flat 100 XP/level forever
- WarBow PvP: steal/guard/revenge/flag; costs 1000 / 10000 / 1000 / 50000 DOUB; WarBow scores reset when WarBow timer epoch ends; indexer retains historical epochs for admin finalize
- Referrals: existing codes preserved; 5% CRED to referrer + 5% CRED to buyer (not CHARM)
Open decisions (resolve in this issue)
- Revenge DOUB cost — default 1000 (same as steal)
- Referral registration burn — keep 1 CL8Y for existing-code continuity vs migrate to DOUB
- CRED referral 5% basis — 5% of the 35 CRED mint per side
- Podium settlement trigger — permissionless
rollPodiumEpoch(cat)vs auto on first post-expiry buy - Route naming —
/arenaprimary with/timecurveredirect (optional)
Verification checklist
- Spec reviewed against Arena v2 requirements
- Cross-links from glossary + agent-phases Phase 20 play track
- No remaining sale-end / redeemCharms / linear CHARM price as v2 behavior