the grid
The grid holds 144 cells, arranged 12 by 12, and every cell exists in exactly one of three states at any given time.
cell states
Empty means no wallet is currently assigned to that cell. Filled means a wallet holding a nonzero balance of the token occupies that cell, represented by a whole egg. Cracked means the wallet occupying that cell still holds a nonzero balance, but that balance decreased since it was last observed, represented by a broken egg in the same cell. A cell only ever moves between these three states. It never disappears, and no fifth or sixth state exists anywhere in the design.
assignment
Assignment works on a first available basis. When a wallet that previously held zero of the token acquires a nonzero balance for the first time, it's treated as a new unique holder, and it's assigned the lowest-numbered empty cell available at that moment. That assignment persists for as long as the wallet continues holding any balance at all, regardless of how that balance moves up or down afterward. A wallet doesn't get reassigned to a different cell if its balance grows, and it doesn't get bumped out early if its balance shrinks, as long as it stays above zero. The only thing that frees a cell is the wallet's balance reaching exactly zero.
detection
Detecting these state changes requires comparing two snapshots of the same underlying data, not reacting to individual transactions as they happen. On a fixed interval, currently every 15 to 30 seconds, coop queries Solana's public RPC for the current set of token accounts holding the mint and their balances. It compares that snapshot against the one taken in the previous interval. Any wallet present in the new snapshot that wasn't present in the old one is a new holder and gets assigned an empty cell. Any wallet present in both snapshots whose balance decreased between them has its cell's egg cracked, if it wasn't already. Any wallet present in the old snapshot but absent from the new one, or present with a balance of exactly zero, has its cell cleared. This interval based comparison is a deliberate choice over trying to subscribe to every individual transfer instruction in real time, since polling and diffing two full snapshots is simpler to reason about and cheaper to run continuously without needing a paid indexing service.
market data
Market cap and price data come from a separate source entirely, a public Dexscreener endpoint queried against the token's trading pair, refreshed on its own short interval independent of the wallet polling cycle. This keeps the two data paths decoupled, a failure or rate limit on one doesn't block the other from continuing to update.
capacity and queueing
Capacity is fixed at 144 and never changes. If all 144 cells are occupied and a wallet that wasn't previously holding acquires a balance, that wallet is recorded as waiting rather than being assigned a cell immediately. It enters a queue in the order it was detected, and the moment any occupied cell clears, the longest waiting wallet in the queue claims that cell on the next polling interval. A wallet sitting in the queue that fully exits before ever being assigned a cell is simply removed from the queue without ever having occupied one.
on chain footprint
Nothing in this system writes to chain. coop doesn't hold a vault, doesn't execute any instruction against the token's mint or its holders, and has no wallet of its own with any authority over anything it's observing. Every value shown, cell states, market cap, price, is read only, sourced from public endpoints that anyone else could query independently and arrive at the same numbers. There's no proprietary data feed and no interpretation layer between what the chain shows and what the grid displays. If the grid and the chain ever disagree, the chain is correct, and the disagreement is a bug in coop's polling, not a difference of opinion.