Terminal

Every panel

What each panel reads, what it answers, and which ones are still waiting on a module.

Every panel on the terminal is named after what it is rather than how good it is. There is no panel called Proof and there is no panel called Insights. If a label makes a claim, the data behind it has to be able to back that claim, and one of the entries below is here because it could not.

The rail

These do not follow your selection. They describe the chain and our reading of it, and they move once a second regardless of what you have clicked.

PanelAnswers
ChainSequence number, confirmation lag, tokens tracked
FeedIs the sequencer relay connected, how many gaps, how many decode failures
MarketTotals and breadth, summed from the same snapshot the board came from
MoversBiggest moves in both directions, chain wide
ETHThe chain's native price series

Market and Movers are summed from the same object the board reads, so they cannot disagree with the table beside them. That is not a small property. Two panels computing the same total from different sources will eventually print different numbers and there is no good way to explain it.

Movers is the one panel that never follows your selection. It stays chain wide on purpose, so there is always something on screen telling you what the rest of the market is doing while you look at one wallet.

The ETH panel used to be lying

It was labelled ETH and it was fed the trend of the busiest token in the book. Since the engine stopped keying its book by pool, quote currencies never enter that book at all, so the series under that label could never have been ETH. It went unnoticed until it drew a memecoin going from twelve cents to eight hundred and thirty nine dollars with ETH written above it.

It now reads the engine's own persisted ETH price series, and its meta names the span it actually holds. The general rule this bought is worth more than the fix. A panel label is a claim, and the claim has to be checkable from the data's own provenance.

The wallet column

Four panels, and each answers a different question about the wallet you clicked. They are not four views of one summary.

Wallet is the identity and the totals. Realized PnL, the win fraction, closes, and whether this row is a cluster.

Activity answers whether it is moving right now. The engine keeps a ring of the most recent resolved trades, roughly thirty to forty minutes of them at this chain's rate. The stream ships the newest slice each second and the browser accumulates them without loss, so the panel deepens the longer you leave the tab open. Opening a fresh tab seeds it from the engine's ring rather than starting empty.

The panel names its own window, something like this wallet · last 34m. That sentence is what lets an empty panel read as quiet rather than broken.

History answers what it did last, and it is the one that works when Activity does not. It reads that wallet's last dozen trades from disk, so it fills the moment you pick a wallet no matter how old the last move was. A wallet that has not traded for a day shows nothing in Activity and a full card here.

PnL is the equity curve, cumulative realized profit per active hour. It is the only series on the screen that cannot be pointing at the wrong thing, since it is derived from the wallet rather than looked up for it. There is no chain top fallback here and there cannot be one.

The token side

Favourite token leads with the symbol and names its own provenance in the meta line. wallet means this is the token that wallet trades most. chain top in the warn colour means the wallet had nothing drawable and you are looking at the chain's busiest token instead.

Chart draws that token's price series. It needs at least two price buckets to exist, which is a stricter question than whether a token can be described at all. A token traded once can be described and cannot be plotted, and conflating the two is what used to produce a chart panel reporting NO SIGNAL / 1 PTS under a perfectly healthy looking row.

The tape

Across the bottom, scrolling, with no label band above it. A ticker names itself by scrolling and a label over one is redundant furniture.

Beside it sit DATA SINCE and UPDATED. The first is the oldest row the ledger still holds and it grows as the engine accumulates history. The second is the snapshot clock, ticking every second. Both are UTC and both are wire values rather than anything the browser computed.

Waiting on a module

Two panels are in place and honest about being empty.

Nose is the contract scanner. It shows the checks the real scanner will fill, as null dashes in the neutral colour with a soon marker, rather than sample verdicts that look like findings.

There is one check deliberately not in that list. Liquidity lock cannot be answered honestly on this chain, because V3 and V4 positions are per position NFTs rather than a pool balance somebody can burn. A Locked verdict computed the usual way would be wrong often enough to be dangerous, and a scanner that is wrong about safety is worse than no scanner. It is absent rather than pending.

Trade shows the routing that would execute. The buttons are visibly disabled because no route is connected behind them. On a collection it says no NFT route, which is a different sentence from a disabled button and means a different thing.

When the engine is unreachable

The screen renders in full, with every panel in its honest empty state, and the header names the condition. A live dot while things are fine, reconnecting with a spinner while there is hope, and a red SERVER DOWN when there is nothing left to show.

It deliberately does not collapse into a single error box. A screen that disappears when the backend hiccups teaches you nothing about which part failed, and the layout you learned is the thing you want back fastest.