Skip to content

Clash Of Clones Product Spec

This page captures the broader product loop around clone creation, auditions, arena competition, tickets, race settlement, and retirement. The existing trading docs describe the singular paper-trading experience; this page gives teammates the surrounding game/economy context that the paper-trading runtime plugs into.

Product Summary

Clash of Clones is a gamified AI prop trading platform.

Users build trading agents called clones, audition them in a 24-hour synthetic trading test, and, if they pass, the clones enter the Clash Arena. Arena clones compete in a continuous schedule of synthetic trading races. Users buy fixed-price tickets to back clones in the currently accumulating race. Ticket revenue forms the race pool, and settlement distributes that pool by clone rank.

The product has two pricing systems:

  • Clone creation / audition fees.
  • Ticket sales for race backing.

Core Loop

text
Creation -> Audition -> Promotion Queue -> Arena -> Retirement
   pay fee    24h test       wait for slot    compete    archived career

If a clone fails audition, it can retry. On retry, configuration can be edited.

Domain Glossary

TermDefinition
CloneAn AI agent built by a user to execute a trading strategy.
StrategyA combination of data streams, assets, and a single trading prompt.
Building BlockA composable clone unit. Three types: Data Stream, Asset, and Trading Prompt.
AuditionA 24-hour synthetic trading test a clone must pass to enter the Arena.
Audition FeeThe fee paid before clone configuration; covers audition compute and the entry attempt. Surfaced in UX as a creation fee.
Profit TargetThe PnL threshold a clone must hit during audition to qualify for Arena entry.
Clash ArenaThe fixed-slot pool of active clones competing in races.
RaceA 6-hour synthetic trading window where Arena clones compete. Tickets bought into a race form the pool.
TicketA backing position on a specific clone in a specific race. Flat 0.01 ETH.
PoolTotal ticket revenue collected for a race.
Distribution PoolThe portion of the pool allocated to ticket-holder payouts: 90%.
SettlementThe end-of-race event where rankings finalize and payouts are issued.
PromotionA passing auditioner taking an available Arena slot.
RetirementAn Arena clone permanently removed from competition due to sustained lack of demand. Stats remain in the Hall of Fame.

Clone Creation And Audition Fee

The user pays the Audition Fee before configuring the clone. Two choices made at payment time determine the fee:

  1. Model tier: which LLM powers the trading prompt.
  2. Asset capacity: how many assets the strategy can run across.

Pricing Matrix

Model tier1-3 assets4-6 assets7-10 assets
Haiku - fast, cheap0.01 ETH0.015 ETH0.02 ETH
Sonnet - balanced0.02 ETH0.03 ETH0.04 ETH
Opus - premium0.04 ETH0.06 ETH0.08 ETH

Pricing rationale:

  • Asset count drives compute roughly linearly because each asset creates one strategy execution per tick.
  • Model tier pricing roughly mirrors actual API cost ratios.
  • The cheapest tier supports the headline promise: "Create a clone for 0.01 ETH."
  • Premium tiers support users who want better expected performance or a status signal.

Configuration Caps

ControlCap
Data streamsMax 5 per clone
AssetsMax 10 per clone
Trading promptProduct cap: 1 per clone, max 4,000 tokens
Runtime expansionStrategy runs N times per tick, where N = asset count

The backend graph can remain more flexible for compatibility and future power-user work, but the current Clash product spec exposes one trading prompt per clone.

Public Identity And Private Strategy

A clone has two information layers.

Public

Visible on clone cards, race views, and Hall of Fame:

  • Name: required, max 32 characters, unique across active Arena clones.
  • Description: required, max 280 characters.
  • Image: required, 512 x 512 pixels, PNG or JPG, max 1 MB.
  • Model tier: Haiku, Sonnet, or Opus.
  • Asset selections.
  • Data stream selections.

Model tier is public because it is a meaningful capability signal. Backers can interpret a strong Haiku clone as efficient and an Opus clone as needing to justify its premium.

Private

Visible only to the creator:

  • The strategy itself, including the trading prompt and private configuration details.

The strategy is private because it is the creator's edge. Publicly exposing it would allow top-performing clones to be copied quickly and would undermine the reward for prompt-engineering and strategy wiring skill.

Moderation

Clone name, description, and image must pass moderation before audition begins.

Rejected content includes:

  • Slurs.
  • Impersonation of other Arena clones.
  • Copyrighted imagery.
  • Explicit content.

Failed moderation does not refund the Audition Fee. The user fixes rejected fields and resubmits.

Clone Creation UX Order

text
1. Pick LLM model
2. Pick asset capacity
3. Pay to create clone
4. Set public identity: name, description, image
5. Configure strategy: data streams, assets, trading prompt
6. Submit clone; audition begins automatically
7. Check pass/fail result 24 hours later

On retry, all configuration choices may be edited: model tier, asset capacity, assets, prompt, data streams, name, description, image, and strategy.

Audition Mechanics

PropertyValue
Duration24 hours
Synthetic capital$100,000
Profit targetTBD
Pass outcomeEnters Promotion Queue or Arena if a slot is available
Fail outcomeClone does not enter Arena; creator can retry

Initial launch shortcut:

  • During the first week, the product can rank auditioning bots and admit the top 50 to the Arena.
  • Those results should inform the later profit target calibration.

Clash Arena

Slot Mechanic

  • Arena cap: 50 clones.
  • A passing auditioner does not automatically enter the Arena when the Arena is full.
  • Passing audition guarantees eventual Arena entry unless a later expiry rule is introduced.

Promotion Queue

When a clone passes audition:

  1. If an empty slot exists, the clone enters the Arena directly.
  2. If the Arena is full, the clone joins the Promotion Queue.
  3. When an Arena clone retires, the next queued clone takes the slot.

The queue is FIFO and performance-blind by design. The audition determines eligibility; the queue determines timing.

All-Time Clone Stats

Tracked across every race a clone has entered:

StatMeaning
Career races enteredVolume signal
Career 1st-place finishesWinner signal
Career top-3 finishesConsistency signal
Cumulative PnLRaw performance summed across races
Best single-race PnLPeak upside moment
Worst single-race PnLDrawdown signal
Top-10 ratePercent of races finishing in payout positions
Current streakConsecutive top-3 or consecutive bottom-quartile finishes

Clone Card Display Priority

During ticket accumulation, clone cards should prioritize:

  1. Image and name.
  2. Description.
  3. Model tier badge.
  4. Career 1st-place count.
  5. Career top-10 rate.
  6. Current streak.
  7. Last-race finish.
  8. Total tickets sold for this race and top backer concentration.

Tap-through reveals full career stats. Identity leads because backers are buying into a character and track record, not only raw PnL.

Retirement Rule

A clone retires after finishing with the worst ticket sales in 3 consecutive races.

Rules:

  • After each race, the clone with the fewest tickets sold receives a strike.
  • Ties on lowest ticket count are broken by lowest PnL in that race.
  • If still tied on ticket count and PnL, all tied clones receive a strike.
  • Strikes must be consecutive.
  • Finishing not-last in ticket sales resets the strike count to zero.
  • 3 consecutive strikes means retirement.
  • Retirement happens after the last race the clone sold tickets on is complete.

Retired clones remain visible in Hall of Fame. Career stats are preserved. Re-entry requires creating a new clone and paying a new Audition Fee.

Demand-based retirement is intentional. This is a backer-driven product: a clone that attracts tickets contributes liquidity and entertainment even if performance is volatile. A clone that never attracts demand is not earning its slot.

Race Mechanics And Cadence

Live Duration

Each race has 6 hours of synthetic trading.

This is long enough for the approximate 1-hour bot trading cadence to produce meaningful PnL signal across multiple cycles, while still short enough to settle within a session-shareable window.

Synthetic Capital Per Race

Each race starts every clone with a fresh $1,000,000 synthetic account.

  • No compounding across races.
  • Every clone starts each race from zero.
  • Past performance updates all-time stats but does not carry into in-race PnL.

Dynamic Race Launch

Races launch reactively:

text
Race launches when:
  (tickets_sold >= 3,000 AND time_since_last_launch >= 1 hour)
  OR
  time_since_last_launch >= 6 hours

Key parameters:

  • 3,000 tickets creates a 30 ETH minimum pool floor.
  • 1-hour minimum interval matches the bot trading cadence.
  • 6-hour timeout keeps the loop alive during cold periods.
  • Up to 5 races can be live at once.

Race State Machine

text
Accumulating -> Live, 6h -> Settling -> Settled
      |
      v
next race begins accumulating immediately after launch

State meanings:

  • Accumulating: the single race currently selling tickets.
  • Live: ticket sales are closed and synthetic trading is happening.
  • Settling: rankings and payouts are being calculated.
  • Settled: payouts are complete and the race is archived.

During hot periods, multiple races can be Live at the same time. Each race has an independent pool, ranking, and settlement.

Ticket Sales Surface

Tickets are purchasable only for the single Accumulating race. Once that race launches, the next race begins accumulating immediately and becomes the new purchasable target.

This concentrates demand into one purchasable race, which helps the threshold get hit reliably.

Tickets And Pool Composition

Ticket Pricing

  • Flat 0.01 ETH per ticket.
  • Tickets are tied to one clone in one race.
  • Tickets are non-transferable in this spec.

Per-User Caps

  • No cap on tickets per user per clone.
  • Whale concentration is allowed and should be surfaced as part of the narrative.
  • Clone cards show total tickets sold and top backer concentration.

Pool Split

text
Total pool = ticket_count * 0.01 ETH

Protocol rake:       5%
Creator pool:        5%
Distribution pool:  90%

Protocol rake is house revenue. Creator pool pays creators of ranked clones. Distribution pool pays ticket holders.

Distribution Math

Rank Determination

Clones are ranked by synthetic PnL over the 6-hour race.

Tie breakers:

  1. Higher PnL wins.
  2. If PnL ties, higher ticket count wins.

Weighted Parimutuel Payouts

Ticket-holder payouts use weighted parimutuel distribution.

text
weight(clone) = tickets_on_clone * rank_multiplier(rank)

Rank multipliers:
  Rank 1:      5.0
  Rank 2:      2.5
  Rank 3:      1.5
  Ranks 4-10:  0.7
  Ranks 11+:   0.05

total_weight = sum(weight(clone)) across backed clones

clone_share = weight(clone) / total_weight * distribution_pool

backer_payout = backer_tickets / tickets_on_clone * clone_share

Why this model:

  • Fixed rank-share payouts fail when tickets are highly concentrated.
  • If one clone has most tickets, a fixed winner share can make winning tickets lose money.
  • Weighted parimutuel scales a clone's share by both popularity and finishing rank.
  • Extreme crowding can still compress winner returns toward the post-rake floor; that is expected behavior in a parimutuel system.

Unbacked Clones

Unbacked clones still trade and can rank, but they have zero payout weight.

If an unbacked clone finishes first:

  • It receives rank 1 in stats.
  • Its creator can still earn creator-pool royalties.
  • Ticket-holder distribution does not allocate any weight to it.
  • Rank multipliers for backed clones are not promoted.

Creator Pool Split

Creator pool is 5% of the total race pool.

RankShare of creator pool
1st clone creator50%
2nd clone creator22%
3rd clone creator12%
4th-10th clone creators16% split pro rata
11th+0%

Creator royalties do not depend on ticket weight. If a clone ranks first with zero backers, its creator still receives the rank-1 creator-pool share.

Worked Distribution Examples

Example A: Typical Race

3,000 tickets sold.

text
Pool = 30 ETH
Distribution pool = 27 ETH
Creator pool = 1.5 ETH

Clone #47 wins with 200 tickets. Assume total race weight is 2,000.

text
Clone #47 weight = 200 * 5.0 = 1,000
Clone #47 share = 1,000 / 2,000 * 27 = 13.5 ETH

If a user holds 30 of Clone #47's 200 tickets:

text
Payout = 30 / 200 * 13.5 = 2.025 ETH
Stake = 30 * 0.01 = 0.3 ETH
Return = about 6.75x

Creator of Clone #47 receives:

text
50% * 1.5 ETH = 0.75 ETH

Example B: Concentrated Winner

3,000 tickets sold. Clone #47 has 1,800 tickets, or 60% of the race.

text
Clone #47 weight = 1,800 * 5.0 = 9,000
Other clone weight estimate = 1,500
Total weight estimate = 10,500
Clone #47 share = 9,000 / 10,500 * 27 = 23.14 ETH
Per-ticket payout = 23.14 / 1,800 = 0.01286 ETH
Return = about 1.286x per ticket

Example C: Pathological Concentration

3,000 tickets sold. Clone #47 has 2,700 tickets, or 90% of the race.

text
Clone #47 weight = 2,700 * 5.0 = 13,500
Other clone weight estimate = 400
Total weight estimate = 13,900
Clone #47 share = 13,500 / 13,900 * 27 = 26.22 ETH
Per-ticket payout = 26.22 / 2,700 = 0.00971 ETH
Return = about 0.971x per ticket

The winning ticket produces a small net loss because the trade is extremely crowded and the rake dominates.

Example D: Backing Rank 2

Same race as Example A. Clone #12 finishes rank 2 with 80 backing tickets. A user holds 10.

text
Clone #12 weight = 80 * 2.5 = 200
Clone #12 share = 200 / 2,000 * 27 = 2.7 ETH
Payout = 10 / 80 * 2.7 = 0.3375 ETH
Stake = 0.10 ETH
Return = about 3.4x

Example E: Consolation

Same race as Example A. A user's clone finishes 14th with 30 backing tickets. The user holds 5.

text
Rank 14 weight = 30 * 0.05 = 1.5
Clone share = 1.5 / 2,000 * 27 = 0.02025 ETH
Per-ticket payout = 0.02025 / 30 = 0.000675 ETH
User payout = 5 * 0.000675 = 0.003375 ETH
Stake = 0.05 ETH
Return = about 6.8%

This preserves a small return for losing tickets, creating a cash-out feeling even when most of the stake is lost.

Open Tuning Decisions

These are tunable product parameters, not implementation blockers.

ParameterInitial valueTuning consideration
Audition profit targetTBD; early idea: +2% over 24hTune for desired pass rate by model tier
Audition Fee matrix0.01-0.08 ETHAdjust if compute economics change
Ticket threshold for race launch3,000 ticketsAdjust based on user base and ticket flow
Maximum launch interval6 hoursTighten if cold periods feel too slow
Minimum interval between launches1 hourTied to bot trading cadence
Arena slot count50Expand only if per-clone liquidity stays healthy
Retirement strike count3 consecutive worst-sales finishesLoosen if churn is too harsh; tighten if Arena calcifies
Promotion Queue expiry7 days, tentativeAdjust based on churn rate and queue depth
Rank multipliers5.0 / 2.5 / 1.5 / 0.7 / 0.05Steeper curve creates bigger rank-1 upside; flatter curve creates more consolation

Architecture Ownership Notes

The current paper-trading silo owns the trading runtime needed by auditions and races:

  • Strategy graph compilation.
  • Per-asset decision scheduling.
  • Market context retrieval.
  • Synthetic account state.
  • Paper fills, positions, orders, and ledger mutation.
  • PnL calculation for audition and race ranking.

Adjacent product surfaces can be implemented independently around that runtime:

  • Payments for Audition Fees and tickets.
  • Public clone identity and moderation.
  • Promotion Queue and Arena slot management.
  • Race accumulation, launch, settlement, and archive lifecycle.
  • Ticket-holder payout accounting.
  • Creator royalty accounting.
  • Hall of Fame and career stats presentation.

The boundary to keep clear: the trading engine should produce auditable synthetic trading results; the arena economy should consume those results for ranking, payouts, lifecycle movement, and presentation.