Skip to content

Every chain and the route of each capability

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

The directory an agent starts from. One entry per chain Chord serves, with its constants (native asset, wrapped native, dollar anchors with real decimals, explorer) and, for each capability, the route that serves it on that chain. A capability the chain does not have is null: the data routes grew chain by chain, so this is the one place that says where to read what. Solana is listed with id: null and base58, case-sensitive addresses; its quote and swap are /sol/trade/quote and /sol/trade/send while its trade lane is open to everyone. A chain that is not public yet appears only for a caller with an API key.

Media typeapplication/json
object
chains
Array<object>
object
key

Chain key, the value every chain parameter accepts.

string
Allowed values: monad robinhood arc avalanche base bnb arbitrum ethereum solana
id

EVM chain id; null for Solana.

integer | null
name
string
short

Short label.

string
addressFormat

evm (0x, case-insensitive) or base58 (case-sensitive).

string
Allowed values: evm base58
native
object
symbol
string
decimals
integer
wrappedNative

The token the native asset is stored under.

string
anchors
Array<object>
object
symbol
string
address
string
decimals

Read on chain. BNB Chain’s dollar stables have 18.

integer
stableUsd

1 for a dollar stable; null for a rate anchor.

number | null
explorer
string
blockTimeSec

Measured average.

number
capabilities
object
overview

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
tokens

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
search

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
token

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
trades

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
candles

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
wallet

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
walletTrades

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
smartMoney

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
holders

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
lpPools

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
lpPositions

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
quote

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
swap

The route that serves this capability on this chain, or null when the chain does not have it.

object
method

GET or POST.

string
path

Path under the host, with {address} / {wallet} placeholders to fill.

string
query

Fixed query values; {address} / {wallet} / {q} inside a value are placeholders too.

object
key
additional properties
any
mcp

The hosted MCP endpoint pinned to this chain.

string
capabilities

Every capability name, in table order.

Array<string>
updatedAt

ISO time.

string
Example
{
"chains": [
{
"key": "arc",
"id": 5042,
"name": "Arc",
"short": "Arc",
"addressFormat": "evm",
"native": {
"symbol": "USDC",
"decimals": 18
},
"wrappedNative": "0x3600000000000000000000000000000000000000",
"anchors": [
{
"symbol": "USDC",
"address": "0x3600000000000000000000000000000000000000",
"decimals": 6,
"stableUsd": 1
}
],
"explorer": "https://explorer.arc.io",
"blockTimeSec": 0.5,
"capabilities": {
"search": {
"method": "GET",
"path": "/v1/tokens/search",
"query": {
"chain": "5042",
"q": "{q}"
}
},
"candles": {
"method": "GET",
"path": "/v1/candles",
"query": {
"chain": "5042",
"token": "{address}"
}
},
"wallet": {
"method": "GET",
"path": "/v1/portfolio/{wallet}/pnl",
"query": {
"chain": "5042"
}
},
"walletTrades": {
"method": "GET",
"path": "/v1/portfolio/{wallet}/trades",
"query": {
"chain": "5042"
}
},
"lpPools": {
"method": "GET",
"path": "/v1/lp/pools",
"query": {
"chain": "5042"
}
},
"lpPositions": {
"method": "GET",
"path": "/v1/lp/positions",
"query": {
"chain": "5042",
"owner": "{wallet}"
}
},
"overview": {
"method": "GET",
"path": "/v1/arc/overview"
},
"tokens": {
"method": "GET",
"path": "/v1/arc/tokens"
},
"token": {
"method": "GET",
"path": "/v1/arc/token/{address}"
},
"trades": {
"method": "GET",
"path": "/v1/arc/token/{address}/trades"
},
"smartMoney": {
"method": "GET",
"path": "/v1/smart-money/top",
"query": {
"chain": "5042",
"source": "onchain"
}
},
"holders": {
"method": "GET",
"path": "/v1/arc/token/{address}/holders"
},
"quote": {
"method": "GET",
"path": "/v1/meta/quote",
"query": {
"chain": "5042"
}
},
"swap": {
"method": "POST",
"path": "/v1/meta/swap"
}
},
"mcp": "https://api.getchord.xyz/v1/mcp?chain=arc"
},
{
"key": "base",
"id": 8453,
"name": "Base",
"short": "Base",
"addressFormat": "evm",
"native": {
"symbol": "ETH",
"decimals": 18
},
"wrappedNative": "0x4200000000000000000000000000000000000006",
"anchors": [
{
"symbol": "WETH",
"address": "0x4200000000000000000000000000000000000006",
"decimals": 18,
"stableUsd": null
},
{
"symbol": "USDC",
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"decimals": 6,
"stableUsd": 1
}
],
"explorer": "https://basescan.org",
"blockTimeSec": 2,
"capabilities": {
"overview": {
"method": "GET",
"path": "/v1/chains/base/overview"
},
"tokens": {
"method": "GET",
"path": "/v1/chains/base/tokens"
},
"search": {
"method": "GET",
"path": "/v1/tokens/search",
"query": {
"chain": "8453",
"q": "{q}"
}
},
"token": {
"method": "GET",
"path": "/v1/chains/base/token/{address}"
},
"trades": {
"method": "GET",
"path": "/v1/chains/base/token/{address}/trades"
},
"candles": {
"method": "GET",
"path": "/v1/candles",
"query": {
"chain": "8453",
"token": "{address}"
}
},
"wallet": {
"method": "GET",
"path": "/v1/chains/base/wallet/{wallet}"
},
"walletTrades": null,
"smartMoney": null,
"holders": null,
"lpPools": null,
"lpPositions": null,
"quote": {
"method": "GET",
"path": "/v1/meta/quote",
"query": {
"chain": "8453"
}
},
"swap": {
"method": "POST",
"path": "/v1/meta/swap"
}
},
"mcp": "https://api.getchord.xyz/v1/mcp?chain=base"
}
],
"capabilities": [
"overview",
"tokens",
"search",
"token",
"trades",
"candles",
"wallet",
"walletTrades",
"smartMoney",
"holders",
"lpPools",
"lpPositions",
"quote",
"swap"
],
"updatedAt": "2026-10-11T17:33:08.447Z"
}

Over the per-minute limit (RATE_LIMIT_EXCEEDED). Read X-RateLimit-Reset and back off.

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"
}