Skip to content

Chain totals

GET
/arc/overview
curl --request GET \
--url https://api.getchord.xyz/v1/arc/overview

Last 24 hours (volume, swaps, tokens), venue share, 24 hourly buckets and up to 30 daily rows. The numbers on Chord’s landing page come from this call.

Served from Chord’s rollup and index tables (every swap on Arc summed by hour, token and venue), never from a raw scan — so calls are cheap and every answer carries its coverage. No key needed. 503 NOT_READY until the rollup has run on the deployment.

Media typeapplication/json
object
chain
integer
Allowed value: 5042
last24h
object
volUsd
number
swaps
integer
tokens
integer
sinceHour
integer
venues24h

Biggest first.

Array<object>
object
dex
string
volUsd
number
trades
integer
tokens
integer
sharePct
number
hourly24

Oldest first.

Array<object>
object
hour
integer
volUsd
number
swaps
integer
daily

Up to 30 days.

Array<object>
object
day
integer
swaps
integer
volUsd
number
tokens
integer
wallets

Attributed wallets only.

integer
venues
integer
coverage

How fresh and how deep the rolled-up data is. Trust these flags, not the clock.

object
recentAt

Unix time, seconds, UTC.

integer | null
stale

True when the most recent rolled-up hour is older than the lane’s freshness bar.

boolean
floorHour

Oldest hour the rollup has reached so far.

integer | null
genesisHour

The chain’s first indexed hour.

integer | null
backfillComplete

True once the rollup reaches genesis — before that, long windows undercount.

boolean
updatedAt

Unix time, milliseconds — when the server built this answer.

integer
Example
{
"chain": 5042,
"last24h": {
"volUsd": 70377594.2336901,
"swaps": 788926,
"tokens": 6288,
"sinceHour": 1789808400
},
"venues24h": [
{
"dex": "uniswap_v4",
"volUsd": 55014882.201828234,
"trades": 683313,
"tokens": 4059,
"sharePct": 78.17101849084284
},
{
"dex": "uniswap_v3",
"volUsd": 12910961.69548591,
"trades": 91957,
"tokens": 2163,
"sharePct": 18.345272861437724
}
],
"hourly24": [
{
"hour": 1789808400,
"volUsd": 3234644.52212066,
"swaps": 50225
},
{
"hour": 1789812000,
"volUsd": 2223745.3392903497,
"swaps": 36071
}
],
"daily": [
{
"day": 1787356800,
"swaps": 5712,
"volUsd": 609934.6437347728,
"tokens": 292,
"wallets": 768,
"venues": 4
},
{
"day": 1787443200,
"swaps": 3057,
"volUsd": 241890.2647458107,
"tokens": 274,
"wallets": 508,
"venues": 6
}
],
"coverage": {
"recentAt": 1789891429,
"stale": false,
"floorHour": 1780520400,
"genesisHour": 1780520400,
"backfillComplete": true
},
"updatedAt": 1789891764243
}

The lane behind this endpoint is not ready or not enabled here (NOT_READY, CHAIN_NOT_ENABLED, NOT_ENABLED, *_UNAVAILABLE). Retry later; do not treat it as an empty answer.

Media typeapplication/json

Every non-2xx body.

object
error
required

Stable machine code, e.g. INVALID_PARAMS, NOT_READY, RATE_LIMIT_EXCEEDED.

string
message

For humans.

string
statusCode

HTTP status, when included.

integer
Example
{
"error": "INVALID_PARAMS",
"message": "amount must be an integer string in the token's smallest unit"
}