--- title: Play-earn special item shop type: feat date: 2026-10-23 topic: play-earn-special-shop artifact_contract: ce-unified-plan/v1 product_contract_source: ce-brainstorm execution: code status: requirements-only ---
Play-earn special item shop
Goal Capsule
Objective: Wall owners can earn coins by playing a short arcade game, buy special objects into a personal inventory as those objects get more expensive with demand, and place earned objects on their wall later — without making free catalog adds harder.
Means: A play-earn coin loop, a small curated special shop with rising coin prices, an inventory, and a place-from-inventory path. Free catalog stays one-click add onto the wall.
Product authority: This plan owns the play → coins → buy → inventory → place loop for special objects. Community submissions, real on-chain ownership, pay/ads unlocks, and discovery feeds are surrounding ideas, not active scope.
Open blockers: None that block planning. Remaining product knobs (price curve shape, coin drip rates, starter catalog size) are deferred to planning under explicit assumptions below.
Product Contract
Summary
Ship a special-item shop for existing wall owners: play Frogger-class arcade games to earn coins, spend coins on curated special objects that land in inventory, and place those objects on the wall when ready. Special-item coin prices rise as more people buy them. The free catalog is unchanged.
Problem Frame
Today every catalog object is free and places straight on the wall. Owners who want something that feels *earned* or scarce have no path — and there is no observed demand yet, only a product thesis that earning will make special objects matter. The risk to avoid: making specials feel worthless after the grind, or adding friction that makes people leave before they decorate.
Key Decisions
- Scarcity lever = rising coin price, not harder mint games (session-settled: user-directed — chosen over harder-game minting and over both-at-once: simpler v1 scarcity). Governs R4, R5.
- Mint/purchase lands in inventory, not on the wall (session-settled: user-directed — chosen over instant wall place: decorate stays optional and low-friction). Governs R6, R7, R10.
- Play-only unlocks in v1 (session-settled: user-directed — chosen over pay and ads: ship the earned loop first). Governs R2; see Scope Boundaries.
- No hard supply cap (session-settled: user-directed — chosen over hard max / soft seasons: always buyable if you earn enough). Governs R5.
- Starter game = short Frogger-class arcade; more game types later (session-settled: user-directed — short skill challenges with different types like Frogger). Governs R1, R2.
- Primary actor = existing wall owners wanting special objects (session-settled: user-directed). Governs Actors, R8.
- Demand for specials is an assumption, not evidence (session-settled: user-directed — user stated they don’t know / imagine the need). See Dependencies / Assumptions.
How This Work Fits Together
<!-- ce-section: work-relationships -->
This plan covers play-earn special shop + inventory only. Broader “universe” ideas stay candidates, not commitments:
- Community item submission & approval — Enables a larger special catalog later; Can proceed independently of this loop if a small curated set is seeded by hand
- Real on-chain ownership — Can proceed independently; not required for v1 scarcity
- Discovery / “what’s new” — Depends on items existing in the shop; defer
- Pay-with-money / watch-an-ad shortcuts — Shares the shop purchase surface; deferred deliberately for v1
Actors
- Wall owner (primary): Signed-in user with a wall who plays, earns coins, buys specials into inventory, and places them while editing.
- Operator / curator (you): Chooses the small starter special catalog and game availability. Not a full community-submission workflow in this plan.
Key Flows
Free catalog (unchanged) Special path (this plan)
───────────────────────── ────────────────────────
Open catalog Open special shop / play
→ Add → on wall → Play Frogger-class game
→ Earn coins
→ Buy special (price = f(buy count))
→ Item in inventory
→ Place from inventory onto wall
1. Earn: Owner starts a short arcade run; on success (or per game rules), coin balance increases. 2. Browse specials: Owner sees special items with current coin prices (prices reflect how many times that item has been bought globally). 3. Buy: If balance ≥ price, purchase succeeds; item enters inventory; that item’s price rises for subsequent buyers; balance decreases. 4. Place: From inventory, owner places a copy onto their wall in edit mode (same decorating experience as other objects once placed). 5. Free catalog unchanged: Selecting a free catalog object still adds it directly to the wall with no coin or inventory step.
Requirements
Play & coins
- R1. The product includes at least one short Frogger-class arcade game a signed-in wall owner can play from the special-item experience.
- R2. Successful play awards coins to that owner’s balance. Coins are not purchased with real money in this scope.
- R3. The owner can see their current coin balance when earning or shopping.
Special shop & scarcity
- R4. A curated set of special objects is offered for coin purchase, distinct from the free catalog.
- R5. Each special object’s coin price increases as more purchases of that object occur globally. There is no hard maximum number of copies.
- R6. A successful purchase adds the object to the owner’s personal inventory (not directly onto a wall).
Inventory & wall
- R7. The owner can browse inventory and place an owned special object onto a wall they can edit.
- R8. Free catalog add behavior stays one-click onto the wall; it does not require coins, play, or inventory.
- R9. Special objects placed on a wall behave like other wall objects for viewing and editing once placed (move, inspect, visit mode).
Quality / anti-failure
- R10. The path from inventory to wall placement must stay short — no grind between “I own it” and “it’s on my wall.”
- R11. Special objects must be visually or thematically distinguishable from free catalog items so “earned” is legible on the wall.
Acceptance Examples
- AE1. When an owner finishes a qualifying Frogger-class run, their coin balance increases by the awarded amount and the new balance is visible before they leave the play surface.
- AE2. When two owners buy the same special item in sequence, the second pays a higher coin price than the first.
- AE3. When an owner buys a special with sufficient coins, the item appears in inventory and does not appear on any wall until they place it.
- AE4. When an owner with the item in inventory chooses place on an editable wall, the object appears on that wall and can be moved like other items.
- AE5. When an owner adds a free catalog object, it still lands on the wall immediately with no coin check.
- AE6. When an owner has fewer coins than the current price, purchase is refused and inventory is unchanged.
Success Criteria
- Owners complete the loop: play → balance up → buy → inventory → place on wall.
- Free catalog add remains as easy as today (no new mandatory steps).
- Early signal to keep going: specials appear on walls and look distinct from free catalog filler.
- Early signal to kill or rethink: owners say items aren’t worth the grind, or drop off before placing.
Scope Boundaries
In scope
- One starter arcade game (Frogger-class), coin balance, rising-price special shop, inventory, place-on-wall from inventory, small curated special set.
Deferred for later
- Additional arcade game types beyond the starter
- Real-money purchase and watch-an-ad shortcuts
- Community-submitted items and approval workflow
- Discovery / “what’s new” feeds
- Harder-game-as-mint scarcity (original blockchain metaphor)
- Trading or gifting between users
Outside this product’s identity (for now)
- Real blockchain / on-chain minting and wallets
- Turning the free catalog into a paid or gated catalog
Dependencies / Assumptions
- Assumption: wall owners will value earned specials enough to play; demand is not yet evidenced.
- Assumption: a small hand-curated special catalog is enough for v1 (no submission system).
- Assumption: “no hard supply cap” plus rising price is enough scarcity; planning may pick the price curve formula.
- Dependency: owners are signed-in wall users (guest-only play/purchase is out unless planning finds a forced need).
- Grounding: no coin, inventory, mint, or scarcity features exist today; free catalog places straight on the wall from client-hardcoded variants.
Outstanding Questions
Deferred to Planning
- Exact price curve (linear, step, asymptotic) and starting prices
- Coin award amounts per run / difficulty of the starter game
- How many starter special items and which art
- Whether coin balance and purchase counts are per-account global or need other scopes
- Inventory UX placement (panel, modal, catalog tab) — product rule is R6–R7 and R10; layout is planning
Resolve Before Planning
- None
Sources / Research
- Grounding dossier (session): play-to-mint / coin / inventory absent; catalog add =
public/wall.jsdirectaddItem; plannedobject_catalog_itemsdeferred indocs/DATA_MODEL.md - Claim verification (session): all five absence/current-behavior claims confirmed against schema and APIs
- Product context:
docs/PRODUCT_REQUIREMENTS.md(catalog add to wall),docs/ARCHITECTURE.md(static catalog sprites)