reading the index
reading the index
A ranking is a claim about other people's money, so the method has to be readable. This page is the method. It is deliberately boring and deliberately specific: where a number comes from, what bounds it, and where it goes blind. If something here is not true of the code that renders the board, that is a bug — the copy is written against the implementation, not against a pitch.
scope first — a ranking of the wrong population is wrong before any arithmetic happens.
Every token that traded inside the window in at least one Uniswap pool our walker has indexed on Robinhood Chain (chain id 4663), across all three venues — V2, V3 and V4. We index the venues, not the launchpads: a token appears because it has a pool that traded, not because its deployer told us about it, integrated with us, or paid us. Tokens fletch itself launched get no special treatment and no separate path onto this board.
The trade is what puts a row here, which makes this board narrower than the index behind it. We hold pools and tokens that recorded no indexed swap in the last 24h, and those are simply absent — not ranked last, not filtered out for a reason, absent. That absence is a fact about the window and about what we managed to read inside it. It is never a statement that the token does not exist, has no pool, or was rejected by us. The gap is not small, and both halves of it are on screen: what the index holds — pools decoded, tokens seen — is on /chain/stats with its own timestamp, and how many of those traded inside the window is the tokens tile at the top of the board.
Ranking is the ETH leg of the swaps we indexed inside the last 24h — the notional that actually moved, not a count of transactions and not a figure since the index opened. Sorting is one of five columns from a closed list in our own source; the query string selects one of those literals or nothing, and never reaches SQL itself. The database orders every matching token before cutting to the rows you see, so “top by change” means what it says rather than the volume top hundred reshuffled.
The tiles above the table total every token in the window that matches your filter, not the hundred rows on screen. A filter nothing survived shows a dash, because a sum over an empty selection is not a measurement of zero.
the reason certain numbers are floors, and why the board keeps saying so.
A worker walks the chain forward from a recorded start block, writing pools, hourly volume buckets and 5-minute candles, then advances its cursor. The volume and candle writes are accumulations, so they commit in the same database transaction as the cursor advance — replaying a window twice would double-count, and coupling them makes that structurally impossible.
The index does not reach back to genesis. This chain is tens of millions of blocks deep at roughly ten blocks a second, which is not walkable on a public RPC. The first run opens a window near the head (about an hour, by default) and records that block, and the board prints “index measuring since” rather than implying all-time figures. Swaps in pools created before that origin are counted into a disclosed unattributed tally — shown on the board, never silently dropped.
Two spans live on that page and they are never collapsed into one word: how far the index reaches, and how far each figure reaches (24h). While the index is younger than 24h, the window is a ceiling our own coverage does not fill, and the strip says so with the age.
When a log walk is truncated — a call budget spent, a range that keeps failing after bisection — the cursor still advances to the end of the window it was given, and the ranges that went unread are never re-walked. We advance rather than retry because the volume write is an accumulation: replaying a window would double-count it, and an inflated number is worse than a missing one. So the loss is permanent, and the failure direction is the one we chose — volume under-counts, never over-counts. That is what “floor” means everywhere on this terminal, and it is why no sum here is written as an exact total.
One consequence deserves its own sentence, because it is the place the floor rule does not hold. A candle is not a sum, so a lost range does not merely shorten a bar — it can remove the swap that would have been that bar's open, high or low, and the stored bar then describes the swaps we saw rather than the swaps that happened, with nothing in the row marking which. We keep the narrowed bar instead of dropping it, because a missing bar renders as “nothing traded” — a claim about the token — while a narrow one is covered by the partial-history disclosure the charts already carry. Truncations are logged loudly on our side; there is no per-row badge for them, and we would rather say that here than imply one exists.
The RPC-level specifics (ignored topic filters, chunking and bisection, the venues' opposite sign conventions, the missing V3 quoter) are on /chain/stats, with the live counts.
every one of these is bounded. The bound is the part people skip, so it is the part stated first.
Every figure above that is derived from candles — 1h, chg, price, and the mcap built on that price — inherits the truncation caveat from the section above: a bar can be narrower than the trading it stands for, and nothing on the row marks which bar that happened to.
Symbols, names and images are written by whoever deployed the token. They are decoration: sanitised before rendering, and they order nothing, colour nothing and gate nothing. A picture is not a check that was passed and a blank crest is not a warning. The only unforgeable thing on a row is the address.
the one mechanism worth switching terminals for, and its limits stated in the same breath.
A buy quote on its own is close to worthless — the failure that empties wallets on this chain is a token that prices a buy everywhere and a sell nowhere. So on both of the trade surfaces this board leads to — the one-click buy that sits on a row and on a token page, and the full ticket on a token's safety read — before a buy can be sent we also quote a sell of exactly the amount that buy would hand you, on the same pool. If that exit does not price, the buy is blocked.
The result is kept in three states that are never merged: quoted (the pool priced it), refused (the pool said no — a fact about the token), and unavailable (we could not ask — a fact about our connection, and never dressed up as a finding). The last two both block the trade, and they never share a sentence.
A refused exit does not send us hunting for a friendlier pool. If the pool that prices the buy will not price the way out, that is the finding, not a routing inconvenience.
Freshness is enforced at the moment of intent. A reading that has aged past twenty to thirty seconds is re-measured before anything is signed, and if the way out no longer quotes, nothing is sent. The ticket also re-measures on that cadence in the background, but only while its tab is visible and nothing is sitting in your wallet; the one-click control deliberately does not poll at all, because a hundred armed rows refreshing would spend the whole RPC budget on numbers nobody is about to trade on. The slippage floor is computed in basis points, never whole percent — integer division on a whole percent floors a small quote to zero, and a floor of zero is an unprotected market order, so we refuse to send instead. On the ticket that floor only ever ratchets up across a re-measure: a better price is passed to you, and a price that has moved past the slippage you chose stops the send and puts the new numbers on screen rather than filling you at a level you never read.
What the gate does not prove. It proves a sell quotes, not that it quotes well: a pool can satisfy it and still hand back a fraction of your ETH, so the ticket separately shows what proportion of the ETH reaching the pool comes back out on an immediate round trip. Both legs are simulations against the current state — a measurement of this block, not a promise about the next one, and not protection against a token whose behaviour changes after you buy. It is quoted at your size; a larger size can fail where yours passed. It runs on native-ETH V4 pools, which is what our router can safely encode — where there is no such pool we show no buy button rather than route a trade we have not proven.
a list is only worth reading if breaking it would be visible. Each of these is checkable against the product.
the honest limit of everything above — these are the questions this board cannot answer for you.
Live counts and the index heartbeat: /chain/stats · contracts, keys and audit status: /trust · per-token safety reads: /scan · the raw frame behind the stats page: /api/v1/chain/stats.
Tokens listed on this board are not endorsed, reviewed, or affiliated. Nothing here is financial advice.