Codex
Everything the race runs on. Eight classes, eight abilities, six Draft buffs and one tick loop. Every number on this page is read from the simulation module at load time, so it cannot drift from the code that actually races.
How a race is resolved
Nothing about the outcome depends on your browser. The contract runs the whole race and stores the finishing order. Your browser downloads that order and plays the same simulation back so you can watch it happen.
-
01
Commit
Before betting opens, the contract stores a commitment to a secret seed. The seed itself stays hidden, so nobody can pick a favourable one after watching where the money goes.
-
02
Close the gate
Betting stops. From this point the pools are frozen and the odds are final.
-
03
Reveal and mix
The seed is revealed, checked against the commitment, then mixed with the hash of the closing block. Neither side controls both halves, so neither side controls the result.
-
04
Run and store
The contract runs the tick loop and writes the finishing order to storage. That order is the result. Payouts are computed from it.
-
05
Replay
Your browser reruns the same integer simulation from the same seed and draws it. If the browser ever disagrees with the chain, the renderer says so and shows the chain's winner.
A tick is one step of the race. All eight birds are processed in lane order, every time, whether they are alive or not. That fixed order is what keeps the contract and the browser reading the same random numbers.
Birds still flying come first, ordered by distance, then by stamina left, then by lane number. Birds that went out come after, latest exit first, then by distance, then stamina, then lane. First place is the winner.
When a bird misses the gap, it rolls against its dodge stat. A successful roll is a graze: the bird is dragged to the edge of the gap, loses 14000 units of stamina and keeps flying. A failed roll is elimination. That is the only place luck enters after the seed, and dodge is the only stat that changes the odds of it.
The eight classes
A class is six numbers and nothing else. The bars below show where each class sits between the protocol minimum and maximum for that stat. Drain is inverted, so a longer bar always means better.
game/sim.js or game/sprites.js is missing, so the class table could not be read. Nothing is shown rather than something invented.
Power is the published rating from the simulation module. It is presentation only. The race never reads it.
Abilities
One ability is bound to a bird when it is rolled and never changes. It is a single modifier applied after the class base and before the Draft buffs.
| Id | Ability | What it does | Touches |
|---|
game/sim.js did not load, so no ability values are available.
The Draft
Six buffs, each from exactly one fact that anyone can read on chain. The contract turns the fact into a magnitude from 0 to 1000, then spends that magnitude up to the cap in the last column.
| Buff | Grants | Derived from | Cap at magnitude 1000 |
|---|
game/sim.js did not load, so no buff caps are available.
Class base, then ability, then Draft. PLUMAGE is the odd one out: it adds a small share to flap, stamina, speed, dodge and reaction all at once, and it is the smallest cap of the six.
Reaction is handled differently from the rest. A reaction buff eats the gap between your current reaction and the maximum, so a class that already reacts well still gains something and the ceiling is never breached.
Every stat is clamped after the Draft is applied. A stacked buff cannot push a bird past the protocol maximum for any stat, and cannot pull drain below its minimum. The clamps are listed in the stat reference below.
The Draft also cannot change your class or your ability. Those are fixed at roll time and stored on the NFT.
Rarity
Rarity changes which abilities a roll can draw from. It does not change your class, and it does not add a hidden stat bonus on top.
| Tier | Ability pool | Roll weight | Minted so far |
|---|---|---|---|
| Common | The base pool, open to every roll | ||
| Rare | Adds the stamina and drain abilities | ||
| Epic | Adds the reaction and dodge abilities | ||
| Legendary | Adds the two abilities that touch more than one stat |
A legendary roll draws from a wider ability pool, not a stronger one. The classes were balanced to equal win rates and the abilities were kept in the same range on purpose. A common bird with a good class matchup beats a legendary one often enough that betting on rarity alone is a bad plan.
Stat reference
Six numbers drive everything. These are the hard limits every bird is clamped to after the class, the ability and the Draft have all been applied.
| Stat | What it does | Minimum | Maximum | Better when |
|---|---|---|---|---|
| Flap | The strongest correction the bird can make in one beat. More flap buys a bigger altitude change without costing precision. | 11000 | 28000 | higher |
| Stamina | The tank. Every flap costs some, a graze costs a lot, and hitting zero ends the race for that bird. | 160000 | 460000 | higher |
| Reaction | How accurately the bird aims at the middle of the next gap. Low reaction means a wide, sloppy aim. | 0 | 1000 | higher |
| Dodge | Chance per thousand of surviving a clipped gate as a graze instead of an elimination. | 0 | 400 | higher |
| Speed | Distance gained per tick. It decides placings between birds that both survive. | 700 | 1600 | higher |
| Drain | Stamina burned every tick just by being in the air, before any flap cost. | 120 | 240 | lower |
Each gate centre moves by at most 230000 from the last one, pulled gently back toward mid lane. That makes the track a serpentine rather than a random scatter, and it is why the flap stat matters: a bird with a weak flap cannot keep up with a long climb.