how tile works, start to finish. no step is left out.
tile is a coin and a picture. the coin is an ordinary solana token launched on pump.fun. the picture is a field of text characters, 640 across and 200 down, that is rewritten by the coin's own trades and by nothing else. tile stands for trade inscribed liquidity engine: trades are the input, characters are the output, and the rules between them are fixed.
the supply is 1,000,000,000 tokens. it is divided into 1,000 tiles of 1,000,000 tokens. each tile is a block of 16 by 8 cells. the tiles are laid out 40 across and 25 down, in index order from the top left, which gives a field of 640 by 200 cells, 128,000 in total. every cell holds a weight from 0 to 15. on screen a weight is shown as one of sixteen characters, from a space for 0 up to an at sign for 15.
a wallet is owed one tile for every whole 1,000,000 tokens it has bought and not sold. when a buy takes a wallet across that line, a tile is assigned and written. a solana signature is 64 bytes, which is 128 half bytes, and a tile is 128 cells. so the tile is filled with the signature of the buy that earned it, one half byte per cell, left to right and top to bottom. nobody chooses the pattern and no two buys can produce the same one, because no two transactions share a signature.
most trades are smaller than a tile. they still mark the field. every trade presses on one tile: the newest tile of the wallet that made it, or, if that wallet holds none, a tile picked by the first two bytes of the signature. a buy thickens cells in the pressed tile by one step each, and a sell thins them. how many cells depends on the size of the trade in sol: one cell for the smallest trades, up to fifteen for the largest. which cells is read from the signature.
after pressing, the field runs one generation around the pressed tile, across that tile and the eight tiles around it. on a buy the growth rule runs: a cell lighter than the average of its eight neighbours gains a step, and a cell more than four steps heavier than that average loses one. on a sell the decay rule runs: a cell heavier than the average loses a step, and an empty cell in a heavy neighbourhood picks up a single step. the field has no clock. it advances one generation per trade and stands still between them.
when a sell takes a wallet back under a whole tile, its newest tile is released. on release, the first sixteen characters of the seller's address are cut across one of the tile's eight rows. the row is chosen by the third byte of the sell's signature, moving to the next free row if that one is already cut. struck cells show the address characters, weigh nothing, never change again, and count as empty to their neighbours, so growth cannot pass through them.
a released tile is not destroyed and not reissued clean. it goes on top of the return stack. the next wallet that is owed a tile takes the top of the stack before any blank tile is touched. it gets the tile with every cut still in it, and its own signature is laid over what remains with an exclusive or, so the earlier picture shows through. a tile can pass through many hands, and each one leaves a row.
a tile has eight rows, so it can be cut eight times. the eighth strike seals it. a sealed tile is entirely struck: it weighs nothing, it never returns to the stack, and no generation changes it. the number of live tiles can fall and can never rise. what is left over time is a field of fewer, older tiles and a growing wall of addresses.
the mass of a tile is the sum of its cell weights, at most 1,920. the mass of the field is the sum of all tiles. mass is not fixed at the moment a tile is written. it rises when buys press on the tile or near it and falls when sells do. a tile's share is its mass divided by the mass of the field.
every trade is folded into a running hash: the previous hash, the 64 signature bytes, the pressed tile and the side, through sha 256. the starting value is the hash of a fixed string. the field has no hidden state, so anyone holding the list of trades can start from an empty field, apply the rules above in order, and check both the picture and the hash. the replay page does exactly that in your browser every time it is opened.
the field is built by a reader that takes the coin's swaps from birdeye once per second and applies them in the order it stores them. it sees swaps. it does not see tokens sent from one wallet to another without a trade, so a wallet's tile count follows what it bought and sold, not what it was sent. if the coin has more history than the reader can reach, the replay starts at the earliest trade it could read, and that signature is printed on the replay page as the replay origin.
field the whole picture, 640 by 200 cellstile 16 by 8 cells, 1,000,000 tokenscell one character position, weight 0 to 15weight how heavy a cell isinscription writing a signature into a tilepress the mark every trade leaves on one tilegeneration one run of the growth or decay rulestrike an address cut across a rowreturn stack where struck tiles wait for the next buyersealed a tile with eight strikesmass the sum of a tile's weightsreplay rebuilding the field from the trades