Reference

Docs

How the terminal reads Arc, what each page shows, and where the numbers come from. No account, no login, no API key.

Terminal

The explorer at /pools lists every pool on every registered venue, with price, 24h change, TVL, 24h volume, 24h fees, volume over TVL and fee APR. Sorted by 24h volume by default; every column re-sorts.

  • Tabs: trending, established, new, and your watchlist. The watchlist lives in your browser.
  • Sort, filter and venue live in the URL, so a view is a link you can share.
  • Nulls render as a dash. Volume over TVL and fee APR are blank when TVL is unknown or zero; they are never infinite.
  • Exports neutralise any cell that would open as a spreadsheet formula.

The pool page shows a stats strip, hourly and daily candles, an on-chain depth mountain for venues with tick data, the risk grade with its inputs, and your positions in that pool when a wallet is connected. List-only venues show stats and candles and say why the depth panel is empty.

Pool lists, stats and candles come from GeckoTerminal through a server-side gateway that is cached, so one fetch serves every visitor. A banner says so when the data on screen is older than its cache window. Depth comes from the chain through a same-origin, read-only RPC proxy; the browser never sees an RPC URL.

Positions

Paste any address at /positions and see its liquidity positions across Uniswap V3, Uniswap V4 and SushiSwap V3. Nothing is stored server-side; recent addresses live in your browser.

  • Per position: live uncollected fees, current value, cost basis from the mint, P&L versus holding the tokens, in-range flag and venue. Totals across venues.
  • V3 history sums every add, remove and collect of the position. V4 cost basis is the mint transaction's deposits, labelled "since mint"; later changes are not yet summed.
  • A position acquired by transfer has no basis and says so.
  • If one venue cannot be read, that venue reports "unavailable, retry" rather than showing rows without a range.
  • Collect all: with a connected wallet, one panel collects fees across venues. Every send is simulated first; if one venue's simulation fails, the panel offers to send the others only.
  • CSV export of the table, with the same formula neutralisation as the explorer.

Risk grade

Every graded pool gets a letter from A to E and one plain sentence per input. The sentence is the product; the letter is never shown without it.

  • Age of the pool.
  • Volume over TVL, how hard the liquidity works.
  • Depth concentration: the share of active liquidity within two percent of spot.
  • Hook: whether a V4 hook contract can change swap and fee behaviour.
  • Holders: the top-ten wallet share of the non-USDC token.

Each input scores 0 to 4 and the average sets the letter: A at 3.4 and above, B at 2.7, C at 2, D at 1.2, E below that. The summary reads A "Sound on every input.", B "Sound, with one thing to read.", C "Mixed; read the inputs.", D "Weak on most inputs.", E "Avoid without reading every line." Inputs are refreshed every ten minutes per pool. Inputs that need an indexer, such as the number of positions, are not part of v1.

API

The terminal's pages read from a small set of same-origin routes. They answer JSON and are cached server-side; the positions and chain-proxy routes carry a per-client budget. The data contracts do not change between releases without a changelog entry.

  • /api/pools: the explorer rows for a tab and venue filter.
  • /api/pools/[venue]/[address]: one pool's stats.
  • /api/candles/[venue]/[address]: OHLCV for a pool, with interval=hour or day.
  • /api/depth/[venue]/[address]: the tick-level liquidity distribution for a pool.
  • /api/grade/[venue]/[address]: the risk grade, its inputs and sentences.
  • /api/positions/[owner]: an address's positions across venues, with its own per-client budget because an uncached owner costs a whole-chain log read.
  • /api/rpc: the read-only proxy to the chain, with a method allowlist and a batch cap.
  • /api/dividends, /api/dividends/[vault], /api/dividends/[vault]/[owner]: the Dividends vaults on Faze with net APR and USDC streamed, one vault with its 30-day stream bars, and an address's stake and claim history on it.
  • /api/stakes, /api/stakes/[pool], /api/stakes/[pool]/[owner], /api/stakes/key?poolId=: every stake pool with its band, TVL, pending fees and net APR, one stake pool with today's depth and its active bounties, an owner's deposit and claim history, and the key fields of a V4 pool for the create box.
  • /api/bounties, /api/bounties/[id], /api/bounties/mine/[owner]: every bounty as a card with its APR boost and progress, one bounty with its daily schedule and the payouts claimed on its stake pool, and the bounties an address sponsors, read live.

Behind the routes sits a keyed gateway that caches GeckoTerminal responses per path for a short window, so the upstream is hit once per path per window for every visitor, and rate limits are handled with backoff and single-flighting. There are no alerts, no notifications and no accounts.

Venues

One registry lists 22 venues on Arc. The explorer lists every entry; depth and positions work for the 3 with verified V3 or V4 contracts. The rest are list-only, and the pool page says so. A venue is promoted once its factory and position manager are verified from one of its pools on chain. A bad entry degrades to list-only, never to an error.

VenueKindDepth and positions
Uniswap V3V3Yes
Uniswap V4V4Yes
Uniswap V2OtherList only
AeroOtherList only
Archery V3OtherList only
SushiSwap V3V3 forkYes
SushiSwap V2OtherList only
SynthraOtherList only
DyorSwapOtherList only
Pools TradeOtherList only
UnitflowOtherList only
ArctideOtherList only
aka.funOtherList only
O1 LaunchpadOtherList only
MinaraOtherList only
VirtualsOtherList only
ArgusOtherList only
Long SupplyOtherList only
LunyaOtherList only
FociOtherList only
FazeOtherList only
PeachOtherList only