Skip to content

Data freshness and honesty

Every number in a read endpoint comes from Chord’s own index of the chain: every swap event on every venue, decoded and priced at index time, stored as a tape, and rolled up by hour, token and venue. Nothing is fetched from a third-party price API on the request path.

  • The tape is one row per swap: block, transaction, venue, pool, token, side, size, USD, price and the attributed wallet. Trade tapes, wallet PnL and positions read it.
  • The rollups sum the tape by hour per token and venue, and by day per chain. /arc/*, /rh/*, boards and overviews read only rollups, so they answer in milliseconds and never scan the tape.
  • Live layers sit on top where seconds matter: Arc prices are pushed from the chain head over WebSocket, and the Arc top-wallets board keeps the last minutes of trades in memory between rebuilds (live in the response).

Rollup answers carry a coverage object. Read it before you trust a quiet number.

Field Meaning
recentAt The most recent hour the rollup has processed.
stale True when recentAt is older than the lane’s freshness bar. A quiet chart with stale: true is a lane that stopped, not a market that stopped.
floorHour The oldest hour rolled up so far. Windows reaching further back undercount.
genesisHour The chain’s first indexed hour.
backfillComplete True once floorHour reached genesis.

Other families expose the same idea in their own words: the holder ledger says tracked and complete; /lp/status shows each lane’s cursor against the chain head; /arc/status shows the pool index cursor and whether discovery reached genesis. updatedAt on any answer is when the server built it.

A swap’s wallet is the account that initiated the transaction, resolved through routers, aggregators and account-abstraction executors. On Robinhood Chain, routers and executors were 71 % of transactions in a day before attribution landed; publishing a “top wallets” board of routers would have been a lie. So: wallets, traders, providers count attributed wallets only, and bots are removed from rankings by cadence, nonce rate and behaviour (botsRemoved on the board says how many).

Chord flags rather than hides, and sorts flagged rows below clean ones.

Flag Where Rule
flags: ["wash"] token rows ≥ $5k of volume from ≤ 2 wallets, or ≥ $50k from fewer than 5. A fake ARGUS once printed “$9.97M” from ten $500k self-trades in one second.
flags: ["impostor"] token rows An unlisted token wearing a listed or trusted symbol.
suspect pool rows Turnover no honest pool reaches (24h volume ÷ TVL above 300×, or above 50× with under 25 traders), dust TVL under real volume, or fewer than five wallets printing over $10k. Hidden from /lp/pools unless flagged=1.
token0.impostor / token1.impostor pool rows A symbol that copies the chain’s anchor (a “USDC” that is not the predeploy).
screened /arc/graduated Launches removed by each screen: impostor symbols, launch farms (one creator, many pools), no sells, too few traders, no trades.
jit · unreconciled positions Opened and closed within seconds (a swap trick); dollars out far above dollars in (the tape missed an add). Shown, never scored.

Forged pools — forks emitting Swap events with no USDC actually moving — are dropped from the tape entirely when detected.

priceUsd on a token row is the last trade on the token’s dominant venue for the day, not a blend; a thin fork cannot move it. Market cap is totalSupply × price and is fully diluted, because nothing on-chain says what is locked. Candles are built from the tape (source: "db"); a token with too few trades for a bucket has no candle rather than a fake one.