Spec: Arena v2 product primitives (timers, CRED, prizes, XP) #240

Closed
opened 2026-05-27 07:06:53 +00:00 by PlasticDigits · 11 comments
PlasticDigits commented 2026-05-27 07:06:53 +00:00 (Migrated from gitlab.com)

Context

Authoritative product spec for Arena v2. Parent epic: #238.

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)

  1. Revenge DOUB cost — default 1000 (same as steal)
  2. Referral registration burn — keep 1 CL8Y for existing-code continuity vs migrate to DOUB
  3. CRED referral 5% basis — 5% of the 35 CRED mint per side
  4. Podium settlement trigger — permissionless rollPodiumEpoch(cat) vs auto on first post-expiry buy
  5. Route naming — /arena primary with /timecurve redirect (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
## Context Authoritative product spec for Arena v2. Parent epic: #238. 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) 1. Revenge DOUB cost — default **1000** (same as steal) 2. Referral registration burn — keep **1 CL8Y** for existing-code continuity vs migrate to DOUB 3. CRED referral 5% basis — **5% of the 35 CRED mint** per side 4. Podium settlement trigger — permissionless `rollPodiumEpoch(cat)` vs auto on first post-expiry buy 5. Route naming — `/arena` primary with `/timecurve` redirect (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
PlasticDigits commented 2026-05-27 07:06:53 +00:00 (Migrated from gitlab.com)

marked as related to #238

marked as related to #238
PlasticDigits commented 2026-05-27 07:07:59 +00:00 (Migrated from gitlab.com)

mentioned in issue #238

mentioned in issue #238
PlasticDigits commented 2026-05-27 13:59:16 +00:00 (Migrated from gitlab.com)

mentioned in issue #261

mentioned in issue #261
PlasticDigits commented 2026-05-27 14:33:22 +00:00 (Migrated from gitlab.com)

mentioned in issue #262

mentioned in issue #262
PlasticDigits commented 2026-05-29 08:40:25 +00:00 (Migrated from gitlab.com)

Change: 100 CRED/charm not instead of 70 cred/buy

Change: 100 CRED/charm not instead of 70 cred/buy
PlasticDigits commented 2026-05-30 13:27:00 +00:00 (Migrated from gitlab.com)

mentioned in commit 9bd7c27e3f

mentioned in commit 9bd7c27e3fbc67b57d441ec7bae5f32c887ef0ff
PlasticDigits commented 2026-05-30 13:27:05 +00:00 (Migrated from gitlab.com)

Verification complete (agent — GitLab #240)

Merged to main at 9bd7c27.

What changed

  • New canonical spec: docs/product/time-arena.md — timers (per-podium table), CHARM pricing (1000 DOUB flat, admin-set), buy economics (70% prizes), Play CRED (100 CRED / 1e18 CHARM burn per #240 comment — not 70 CRED/buy), CRED yield (35 CRED/buy), Last Buy epoch CHARM/claim, XP curve, WarBow PvP costs, referrals (5%+5% of 35 CRED mint), resolved open decisions, retired v1 surfaces.
  • Updated cross-links: docs/glossary.md, docs/architecture/overview.md (Arena v2 diagram), docs/agent-phases.md (Phase 6 + Phase 20 play track), docs/product/primitives.md, docs/product/arena-v2.md (implementation companion), docs/testing/invariants-and-business-logic.md, skills/*, .cursor/skills/yieldomega-guardrails.
  • Retired v1 launchpad refs: YO-DOUB-Launch-UX-Flows.md, new redirect stub launchplan-timecurve.md, Arena v2 section in docs/product/referrals.md.

bash scripts/check-doc-anchors.sh — OK (25 anchors).

Verification checklist (for humans)

  • Read docs/product/time-arena.md — confirm timer table, CRED burn (100/charm), buy split, XP, WarBow costs match product intent
  • Confirm docs/glossary.md and Phase 20 link to time-arena.md
  • Grep v2 docs/skills for endSale / redeemCharms / linear CHARM price — should appear only under Retired sections
  • Open decisions table at time-arena.md § resolved matches stakeholder intent
  • Known implementation note: onchain bootstrap still uses shared Last Buy timer params for all four podiums (implementation note); per-podium hard-reset bands are documented but not yet enforced in TimeArena.sol — track separately if contract work is required

All issue-body acceptance criteria and the #240 comment (100 CRED/charm) are reflected in docs. Closing as verified.

## Verification complete (agent — GitLab #240) Merged to `main` at `9bd7c27`. ### What changed - **New canonical spec:** [`docs/product/time-arena.md`](docs/product/time-arena.md) — timers (per-podium table), CHARM pricing (1000 DOUB flat, admin-set), buy economics (70% prizes), Play CRED (**100 CRED / 1e18 CHARM** burn per #240 comment — not 70 CRED/buy), CRED yield (35 CRED/buy), Last Buy epoch CHARM/claim, XP curve, WarBow PvP costs, referrals (5%+5% of 35 CRED mint), resolved open decisions, retired v1 surfaces. - **Updated cross-links:** `docs/glossary.md`, `docs/architecture/overview.md` (Arena v2 diagram), `docs/agent-phases.md` (Phase 6 + Phase 20 play track), `docs/product/primitives.md`, `docs/product/arena-v2.md` (implementation companion), `docs/testing/invariants-and-business-logic.md`, `skills/*`, `.cursor/skills/yieldomega-guardrails`. - **Retired v1 launchpad refs:** `YO-DOUB-Launch-UX-Flows.md`, new redirect stub `launchplan-timecurve.md`, Arena v2 section in `docs/product/referrals.md`. `bash scripts/check-doc-anchors.sh` — **OK** (25 anchors). ### Verification checklist (for humans) - [ ] Read [`docs/product/time-arena.md`](docs/product/time-arena.md) — confirm timer table, CRED burn (**100/charm**), buy split, XP, WarBow costs match product intent - [ ] Confirm [`docs/glossary.md`](docs/glossary.md) and [Phase 20](docs/agent-phases.md#phase-20) link to `time-arena.md` - [ ] Grep v2 docs/skills for `endSale` / `redeemCharms` / linear CHARM price — should appear only under **Retired** sections - [ ] Open decisions table at [time-arena.md § resolved](docs/product/time-arena.md#resolved-open-decisions-gitlab-240) matches stakeholder intent - [ ] **Known implementation note:** onchain bootstrap still uses **shared Last Buy timer params** for all four podiums ([implementation note](docs/product/time-arena.md#onchain-timer-implementation-note)); per-podium hard-reset bands are **documented** but not yet enforced in `TimeArena.sol` — track separately if contract work is required All issue-body acceptance criteria and the #240 comment (100 CRED/charm) are reflected in docs. Closing as verified.
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-05-30 13:27:06 +00:00
PlasticDigits commented 2026-05-30 13:33:40 +00:00 (Migrated from gitlab.com)

mentioned in issue #242

mentioned in issue #242
PlasticDigits commented 2026-05-30 14:06:53 +00:00 (Migrated from gitlab.com)

marked as related to #271

marked as related to #271
PlasticDigits commented 2026-05-30 14:44:47 +00:00 (Migrated from gitlab.com)

mentioned in issue #272

mentioned in issue #272
PlasticDigits commented 2026-06-03 13:39:34 +00:00 (Migrated from gitlab.com)

mentioned in merge request !415

mentioned in merge request !415
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega#240
No description provided.