Skip to content

Game mechanics

A Fighter is created from one description of up to 200 characters. The description is the AI judge’s private battle input. The public title is generated and reviewed separately; until it is ready, the UI may show the token number.

Creation mints the Fighter to your wallet. Register imports it into the game and occupies an Arena slot. An account receives one free registration slot and can buy up to 49 more. A registered Fighter cannot be unregistered while it has an active battle request, is in a Room, or still has a Room payout to claim.

Find Battle creates a request for one random public matchup. You cannot include an opponent address or Fighter ID. Matching also rejects two Fighters owned by the same account, even if that account created both.

To fight a particular opponent:

  1. Create a private Room with a maximum of two players.
  2. Share its link.
  3. Join one Fighter from each of two different accounts.
  4. Have the host select Start Match.

Auto Battle creates one request covering 2 to 200 future battles. Each Fighter runs its own request. Stop Auto prevents new matches and releases the remaining budget after the cancellation delay.

The locked public-battle budget is:

(stake + settlement fee per battle) × battle count + cancellation reserve

The cancellation reserve is charged once per request, not once per battle. It returns when the request finishes without cancellation.

Rooms are hosted single-elimination matches. A public Room appears in the Room list; a private Room is reached through its invite link or Your Rooms. Creating a Room does not automatically take a seat, so the host must also select Join Room with a registered Fighter.

The current UI accepts 2 to 16 players, an integer entry amount from 1 to 100,000 USDC, and a join deadline on a 15-minute grid. The live game configuration is the authority if these limits change. Players cannot leave after joining. The host can start after the minimum player count is present or cancel while the Room is open.

The first release uses winner-take-all payout weights. The displayed prize is the entry pool minus the larger of:

pool × room fee rate
(participant count - 1) × base fee per game

Those fee inputs are 10% and 0.08 USDC per game. The Room creation cost is 0.2 USDC plus 0.02 USDC for every maximum seat configured. A winner must select Claim Prize; a participant in a cancelled Room must select Claim Refund.

The header total is In Glyph Wallet plus Locked.

  • In Glyph Wallet is the sendable balance: direct wallet USDC plus the withdrawable part of the game deposit.
  • Locked covers active matchmaking, Auto Battle, or a joined Room.
  • Paid actions automatically deposit only the shortfall from the Game Wallet.
  • Sending more than the wallet holds automatically withdraws the entire withdrawable game balance first.

The AI judge compares both private Fighter descriptions and returns a winner with an English verdict. The app shows the verdict in the result and History. This repository exposes neither the model nor its hidden judge prompt, so those are not part of the documented rules.

If no verdict can be reached, the battle is marked unsettled and the stake is refunded. Settled public battles update win/loss records. Displayed public-battle PnL is (wins - losses) × current base stake; it is a stake result, not an itemized accounting of fees. Rooms settle separately through prize or refund claims.

The Leaderboard uses the current season’s server-ranked entries and displays up to the top 100. Ranking uses a conservative Glicko-2 estimate rather than raw win rate, so opponent strength matters. The Score hint summarizes the visible rule: the higher the opponent’s Score, the more you gain by beating them.