War
0
cells
0 units
Pick a cell to read it.
Peace
0
cells
0 units
Nobody has moved here yet.
A wallet picks a side once, and it cannot change it.
One transaction: the buy, and a memo that names the cell.
Connect a wallet to read your side of the board.
Nothing to claim yet.
No battle yet. The first one runs when the pot reaches 0.5 SOL.
The needle is the pot. Nothing here runs on a clock.
The map is not stored anywhere. It is worked out from the transactions of $HEX, and the script that works it out is in the repository.
HEX join WAR or HEX join PEACE. It cannot be changed.HEX <cell> in one transaction. 0.01 SOL is one unit.The board is waiting for its first move.
| Move | Side | Cell | Units | Wallet |
|---|
The tape fills from the chain once $HEX is live. Until then the board above is a sample, drawn from the seed "HEX SAMPLE".
The transaction is an ordinary pump.fun buy from your own wallet. You hold the $HEX.
The same transaction carries a memo naming the cell. 0.01 SOL is one unit, so 0.5 SOL puts 50 units down.
A buy made anywhere else still counts: with no memo the units land in cell hash(signature) mod 91.
When a battle runs, the winning side's $HEX is split by units on the map: your units divided by every unit your side has standing. The list of wallets and amounts is fixed by a merkle root written into a memo, so the split can be checked before anyone claims.
For the side holding more cells, split by units, claimed on page 371.
Bought and burned. The burn signature is printed next to the battle.
The RPC and the hosting the keeper runs on.
Units are the SOL of the buy times 100, held as lamports so the arithmetic is exact. A buy made before the wallet picked a side places nothing.
Any transaction that lowers your $HEX balance takes units off the map in the same proportion, starting with the ones you placed last.
The side with more units in a cell holds it. On a tie the cell stays with whoever held it before, and a cell emptied by selling goes back to nobody.
Transactions are read in slot order, then by their index in the block, then by signature, so two people replaying the chain get the same board.
Run the script in the repository against your own RPC. It imports the same lib/rules.mjs this page does, so a difference would be a bug in one of them, not a matter of opinion.
node tools/recompute.mjs <mint>