The instructions the contract executes, in invocation order.
The constructor runs once and leaves nothing behind it. It mints the full supply to the deployer, sets the thermal pair to ambient at the deployment timestamp, writes the immutable constants, and renounces ownership inside the same transaction. There is no initialize step, no proxy, no admin to wait for. From its first block the contract is already only what it will ever be.
Before any transfer, turn, seal, or pip does its work, the contract settles time. It evaluates the cooling curve since the last touch, computes the crossing time if the curve fell through the floor, integrates degree-hours and scorch exactly, applies the adhesion drag, updates the air cell for the elapsed days, checks whether a stage boundary was crossed, and only then hands control to the instruction that woke it. Settlement is the only place the clock moves, and it runs at the top of everything.
Settlement is the only place the clock moves, and it runs at the top of everything.
The transfer hook is deliberately small. After settlement it adds dT = 42.0 × amount / supply, clamped by the 1.5 °C block cap, increments the epoch's transfer and volume counters, emits Heated, and returns. It never blocks a transfer, never charges a fee, never reads the market. An ordinary wallet-to-wallet send costs a handful of storage operations more than a plain token.
Callable by anyone, at most once per ninety minutes. Settlement runs first, which is where any overdue adhesion is booked; the turn then stamps its caller and timestamp and emits Turned. The function has no arguments and no return; its entire purpose is to exist in the record. Turners are the site's only roll of honor.
Once the epoch boundary passes, anyone may seal the ring. The instruction snapshots the epoch's counters into the next slot of the ring array, stamps the tone by comparing volume against the previous ring, records the air-cell grade, resets the counters, and emits RingSealed. Rings are append-only; there is no instruction anywhere in the bytecode that writes to a sealed ring.
Reverts before the pipped stage and after the hatch. Burns the amount (minimum one thousand tokens), derives the caller's sector, and checks the zip order: if the sector is the next unscored sector clockwise, the pip scores floor(sqrt(amount)) against the shell and emits Pipped; otherwise it emits Mispipped and the burn stands. The asymmetry is the point. Chipping at the wrong place still weakens the flock's supply, not the shell.
Callable by anyone once every sector has scored and the cumulative scored weight meets the shell integrity. It sets the terminal stage, emits Hatched with the final clock, the total burned, and the temperature at the moment of hatching, and permanently closes pip(). Nothing else changes: transfers keep flowing, heat keeps arriving, rings keep sealing. The egg is simply open, and stays open.