L
buyers, moves
R
sellers, moves
position value
outcome
zeroing swap
mex
zeros in tape
swaps since zero
count game value
buyssellszero hitslatest 8*0*4*8*12*15
classbuyssellsall
*0 to *3
*4 to *7
*8 to *11
*12 to *15
all
largest moves
zeros
nimbers
x xor y for x 0 to 63 and y 0 to 15. outlined cell: buy value against sell value
[ position / tape / heaps / players ] [ plate / market ] [ docs / raw ] [ x ]
ca
nimbers ยป docs
what this is

nimbers is a coin on solana and a way of reading it. the site takes the last 64 swaps and treats them as a position in nim. it then works out the value of that position, the same way a mathematician would for a pile of matchsticks. nothing here is a prediction. it is arithmetic on the tape.

nim

nim is played with heaps of stones. two players take turns. on your turn you pick one heap and remove any number of stones from it, at least one. whoever takes the last stone wins. it was solved in 1901 by charles bouton, and the solution is one operation: write the heap sizes in binary and xor them.

nimbers

a nimber is the value of a nim heap. a heap of 3 is written *3. the star is there because nimbers do not add like ordinary numbers. *3 plus *3 is *0, because two equal heaps cancel: whatever one player does to one, the other copies on the second. *1 plus *2 is *3, but *1 plus *3 is *2. the rule is xor on the binary digits. john conway showed that every impartial game, however complicated, is secretly worth exactly one nimber.

how a swap becomes a heap

each swap is one heap. its size is the swap's class, the whole part of log2 of its dollar size, capped at 15. doubling the size of a swap adds one stone. a swap under $2 is *0, an empty heap, and changes nothing. a swap of $32,768 or more is *15, the largest heap on the board.

the window

the position is always the newest 64 swaps. when a new swap arrives the oldest one leaves. the window is counted in swaps, not in minutes, so a quiet hour and a busy minute are read the same way.

the position value

xor every class in the window. the result is the position value. it is a number from *0 to *15. the buy value is the same xor over buys only, the sell value over sells only, and the position value is always the buy value xor the sell value.

n positions and p positions

when the value is not zero the position is an n position: the next player to move can win with correct play. when the value is zero it is a p position: the previous player, the one who just moved, holds the win. in nim every move out of a p position lands in an n position, and from every n position there is at least one move back to a p position.

the zeroing swap

a new swap adds a new heap. the only heap that brings the value to zero is one equal to the current value. so if the position is *6, a swap of class *6, anything from $64 to $128, zeroes it. the site prints that range each second. it moves whenever a swap lands or leaves the window.

mex

mex means minimum excluded value: the smallest number missing from a set. it is how the value of any impartial game is found, by taking the mex of the values you can move to. here it is applied to the classes present in the window. if the tape holds classes 0, 1, 2 and 4, the mex is *3.

the running value

start at zero at the oldest swap in the window and xor in one class at a time. that path is the running value. each time it touches *0, everything up to that swap cancelled out exactly. the site counts those zeros and tells you how many swaps ago the last one was.

the count game

a second reading of the same tape. make sixteen piles, one per class, and put one stone in a pile for each swap of that class. this is ordinary nim with piles of up to 64 stones. its value is the xor of the pile sizes. when that value is not zero the heaps page lists every winning move: which pile, how many stones to take, and what is left.

players

combinatorial game theory calls the two sides left and right. here left is every buyer and right is every seller. each wallet also has a value of its own, the xor of its swaps. a wallet that buys $50 and later sells $50 has played *5 twice and is worth *0.

where the numbers come from

swaps, price, market cap, liquidity, holders and volume are read from birdeye once per second. the classes, values, mex, zeros and winning moves are computed in your browser from those swaps. the raw page prints the snapshot exactly as it arrived. every wallet and transaction on the site links to solscan.

limits

nothing on this site touches the coin. there is no program, no treasury and no wallet behind it. a p position does not mean the price will hold and an n position does not mean it will move. the mapping from dollars to heaps is a choice, and a different choice would give different values. what is exact is the arithmetic after that choice is made.

buysellzero
*0*5*10*15116324864
running value
*0*5*10*15116324864
price
market cap
liquidity
holders
volume, 24h
buys, 24h
sells, 24h
swaps, 24h
wallets, 24h
change, 24h
pages
every swap, its class and its running value
swaps
the count game and its winning moves
every wallet in the tape and its value
wallets
the nim addition table, with this position on it
by
price, depth and flow by window
how every number here is made
14 chapters
the snapshot as it arrives
1 s