The technical side
Under the hood
The rest of the site keeps it simple on purpose. This page is for anyone who wants to know exactly how a fight is decided, how the money moves, and how to check that we are telling the truth. New here? Start with how it works.
Promise and proof
What we say, and what makes it true
There is no luck in a fight.
The engine that decides a fight contains no random number generator and no clock. A build check fails if one is ever added. Two identical fighters draw 1000 times out of 1000.
The fairness document →Nobody can rig a result — including us.
Every fight is stored as the list of moves both sides chose. The result is recomputed from that list by the same function, live or later. You can run that check yourself, offline, and it also rejects a record that has been cut short.
Check a fight yourself →You never fight the house in a ranked fight.
Our own bots are fixed reference policies. They are barred from any rated match, never fill an empty queue, and a tournament that does not fill is cancelled and refunded rather than padded.
Principle III →Skins cannot win a fight.
A body or a skin changes geometry and colour only. Every body drives the same animation rig and the engine never learns which one it is drawing. There is no stat block to buy.
The full rules →What you fought with is what is on the record.
A fight freezes the game plan, the AI model and the rating exactly as they were at the bell. Editing a fighter later never rewrites an old replay.
How records are kept →Measured, not asserted
The numbers
Everyone in this business says theirs is a game of skill. We measure it: a harness plays graded reference bots against each other with noise injected, and reports how much noise the format absorbs before the better bot stops winning. The code is in the repository and the report is regenerated whenever anything about combat changes. The full report →
How a fight runs
Move by move
Both sides commit blind
Each move, both AI models are asked for one of six actions at the same time. Neither sees the other’s answer, and nothing is shown to spectators until both have answered.
Ten seconds to decide
A model that times out, refuses, or answers with something that is not a move takes a basic fallback move instead, and the replay says so.
A thinking limit per fight
The weight class is a budget of AI tokens for the whole fight. Spend it all early and the fighter runs dry. That is the equaliser between a big model and a small one.
One function decides
The live fight collects the moves and hands them to the adjudicator. The offline checker calls the very same function. Live and replayed results match because they are literally the same code.
The money
Where every cent goes
Two balances
Play credit is money you added: you can spend it, never withdraw it. Winnings are money won in fights. Keeping them apart is an anti-laundering control, not a quirk.
Stakes are held, not spent
In a ranked fight both stakes are held from the bell. The pot is paid exactly once. If a fight cannot be completed, both stakes go back to the balances they came from.
The 5% fee
Taken from the pot of a decided ranked fight. Nothing on a draw. The smallest ranked stake is 10 cents a side, the point where 5% is a whole cent.
Our AI at a printed markup
If we run the AI for you, you pay what the model costs plus 25%. Each fight page lists tokens used, cost, markup and what was charged.
An open ledger
Every movement in your wallet is a line with the balance before and after. Lines are never edited or deleted.
Adding money
In naira through a hosted checkout (Figo), or by crypto deposit. Either way we credit only after asking the payment provider ourselves; a message arriving from outside is never taken as proof.
Withdrawals
Not open yet. When they open they will be for winnings only.
For builders
Bring your own AI
Your own key
Enter a fighter on an OpenRouter key and reach hundreds of models from every major lab. The key is encrypted before it is stored and is only used to run your own fights.
Your own model
Point a fighter at any OpenAI-style endpoint — your fine-tune, your hardware. It must be a public https address. Its results are listed as self-declared, because we cannot see what is behind it.
Scripts and tools
Make an API key in Settings to open fights and read results from code.
The fight record is public data. Download every match as one row per fight or one row per move. Private game plans are never in it.
Against the field
How this differs from the usual
“Skill-based”
Said on the landing page. Never measured.
Measured every season
A harness anyone can re-run, with confidence intervals, published whichever way it comes out.
Results you take on trust
The operator scores the match and tells you who won.
Recompute it yourself
Any match replays offline. No login, no network, no trust in us.
The platform sells the compute
A cut of the pot, plus a quiet margin on the thing that decides who wins.
Your key, or ours at a printed markup
Bring your own AI key or use ours. Both are rated. Ours costs 25% more for the same models, so it buys convenience and never an edge. Every fight carries its receipt.
Hidden opponents
House bots and padded queues are the usual way these places go wrong.
No house bots in ranked
Every ranked opponent is another player. Practice bots are labelled and never rated.
The documents