---
title: "Chain totals"
method: GET
path: "/chains/{chain}/overview"
tags: ["Avalanche, Base, BNB Chain"]
---

# Chain totals

`GET /chains/{chain}/overview`

## Request

- Base URL: `https://api.getchord.xyz/v1`
- URL: `https://api.getchord.xyz/v1/chains/{chain}/overview`
- Auth: none declared

Last 24 hours (volume, swaps, tokens, venues), distinct wallets per UTC day, venue share, 24 hourly buckets and up to 14 daily rows.

Chain-keyed data for Avalanche C-Chain, Base and BNB Chain, served from Chord's rollup tables for the chain (every swap summed by hour, token and venue). Only the trade tape, the prints ticker and the wallet read raw rows, scoped to one token or one wallet and bounded.

- **Access.** No key needed while the chain is public (all three are today). A chain whose tape is off, or that is not public yet, answers `400 UNSUPPORTED_CHAIN` ("chain N is not served yet") unless the request carries an `X-API-Key`; those answers are sent `Cache-Control: private`.
- **Ingest floor.** Every count, volume and print covers trades at or above the chain's floor, returned as `ingestFloor`. BNB Chain runs at $100 today; Avalanche and Base at 0.
- **Readiness.** `503 NOT_READY` until the chain's rollup has run on this deployment; `503 CHAIN_DATA_UNAVAILABLE` when the store cannot be read. Never treat either as "no trades".

## Path parameters

- `chain` 'avalanche' | 'base' | 'bnb' | 'arbitrum' | 'ethereum' | '43114' | '8453' | '56' | '42161' | '1', required

## Response `200`

- object
  - `chain` integer
  - `last24h` object
    - `volUsd` number
    - `swaps` integer
    - `tokens` integer
    - `venues` integer
    - `sinceHour` integer: Start of the window.
  - `wallets` object: Calendar-day counts, never a sliding 24 hours. Null = no day row yet.
    - `day` integer: Unix time, seconds, UTC.
    - `today` integer, nullable: Distinct attributed wallets so far today (UTC); partial.
    - `yesterday` integer, nullable
  - `venues24h` ChainVenueShare[]: Biggest first.
    - `dex` string: Venue id.
    - `volUsd` number
    - `trades` integer
    - `tokens` integer
    - `sharePct` number
  - `hourly24` object[]: Oldest first.
    - `hour` integer
    - `volUsd` number
    - `swaps` integer
  - `daily` object[]: Up to 14 days, oldest first. The first day of a young tape is partial.
    - `day` integer
    - `swaps` integer
    - `volUsd` number
    - `tokens` integer
    - `wallets` integer: Attributed wallets only.
    - `venues` integer
  - `coverage` ChainCoverage: When the rollup last ran.
    - `recentAt` integer: Unix time, seconds, UTC.
    - `stale` boolean: True when the last rollup pass is more than 30 minutes old.
  - `ingestFloor` IngestFloor: The tape's ingest floor. BNB Chain runs at $100 today; Avalanche and Base at 0.
    - `minTradeUsd` number: Trades under this USD value (at index time) are not in the index, so every count, volume and candle covers trades at or above it. 0 = every priced trade.
    - `history` object[]: Floors in force over time, oldest first. Empty when the chain was never floored. Raising a floor does not remove older, smaller rows.
      - `usd` number: Floor in force.
      - `fromTs` integer: Unix time, seconds, UTC.
  - `updatedAt` integer: Unix time, milliseconds — when the server built this answer.

## Other responses

- `400`: `UNSUPPORTED_CHAIN` (unknown chain, a chain with its own routes, or a chain not served to this caller yet).
- `429`: Over the per-minute limit (`RATE_LIMIT_EXCEEDED`). Read `X-RateLimit-Reset` and back off.
- `503`: `NOT_READY` (the chain's rollup has not run on this deployment yet) or `CHAIN_DATA_UNAVAILABLE` (the store could not be read). Retry later; do not treat it as an empty answer.

---

[API](https://skmtc.dev/getchord/apis/chord-api.md) · [All operations](https://skmtc.dev/getchord/apis/chord-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getchord/apis/chord-api/revisions/d3bc4640fea0?raw)
