01 / Codex

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.

Values read from game/sim.js
02 / Resolution

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.

Birds per round 8 fixed by the protocol
Ticks per race 360 one full round
Gates 30 one every 12 ticks
Lane height 1000000 integer units, floor is 0
The seed
  1. 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.

  2. 02

    Close the gate

    Betting stops. From this point the pools are frozen and the odds are final.

  3. 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.

  4. 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.

  5. 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.

One tick, in order

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.

A. New gateevery 12 ticks
B. Drain staminaper tick, per bird
C. Decide the flap5 ticks of lookahead
D. Apply gravity2400
E. Move, check floor and ceilingfloor is fatal
F. Advance distanceby the speed stat
G. Cross the gateat offset 11
Three ways to go out
GATEclipped a pylon, and the dodge roll failed
FLOORtouched the deck
EXHAUSTEDstamina reached zero
Ranking at the end

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.

Why a graze is survivable

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.

03 / Classes

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.

Balanced to equal win rates
Simulation module did not load

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.

04 / Abilities

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.

Read from FlapSim.ABILITIES. Percentages are applied to the class base with integer arithmetic, so the browser and the contract land on the same number.
Id Ability What it does Touches
Ability list could not be read

game/sim.js did not load, so no ability values are available.

05 / Draft

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.

Caps are protocol constants read from FlapSim.BUFFS. A magnitude of 1000 buys the full cap. Anything less buys a proportional share of it.
Buff Grants Derived from Cap at magnitude 1000
Buff list could not be read

game/sim.js did not load, so no buff caps are available.

Order of operations

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.

What the Draft cannot do

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.

06 / Rarity

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.

Roll weights are set by the bird NFT contract at deployment. No contract is deployed, so those cells are em-dashes. They will never be filled with an estimate.
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
Rarity is not power

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.

07 / Stats

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.

Limits read from FlapSim.CONST. All values are integers. The simulation contains no floating point arithmetic anywhere, which is what lets the browser and the contract agree exactly.
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
Gate gap at gate 1 130000 half-gap, either side of centre
Gap lost per gate 3200 the track tightens as it goes
Smallest gap 42000 hard floor, reached late in a round
Why the gates walk instead of jumping

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.