classes

six bands, fixed at genesis

A class is a band of residues. The modulus is cut into six named bands at genesis and every residue falls into exactly one of them. Nothing chooses which. The class is derived from the residue by comparison, stored nowhere, and recomputed identically by anyone who reads the contract.

Two of the six are single values rather than bands. Zero is the case where the reduction leaves nothing at all, and edge is the case one below the modulus, the last reading before the count wraps. Both are rare by construction: each is one residue out of the modulus, while the four bands between them each hold a share of what is left.

The distribution below is not designed and it is not expected to be even. A source that increments by one every block will walk the classes in order and hit each with the same frequency. A source that jumps unpredictably will scatter. A source that barely moves will sit in one class for thousands of blocks. Reading the shape of this distribution is reading the behaviour of the chain, filtered through a number that has no opinion about it.

Six is a small enough number that a reading can be held in the head and large enough that the middle is not the only answer. Two would make this a coin flip and sixty would make every reading unique and therefore meaningless. The bands were cut at genesis alongside the modulus and are part of the same fixed record.

A source that sits in one class for a long stretch is not stuck and nothing is wrong. It means the quantity is moving slowly against a modulus that does not care how fast it moves. The classes were never calibrated to produce an even spread, and any evenness in the chart below is a property of the chain rather than a design goal.

No class pays anything, unlocks anything, or is worth more than another. They are names for where the chain currently is.

   zero     |
   unit     |
   low      |
   middle   |
   high     |
   edge     |
            +--------------------------------------------
             0                                    readings
zerounitlowmiddlehighedge0readings
classboundsreadingsshare
zeroresidue equals nothing
unitresidue equals one
lowabove unit, below a third of the modulus
middlethe third either side of the halfway mark
highabove two thirds, below the edge
edgeresidue equals the modulus less one