# Every chain and the route of each capability

`GET https://api.getchord.xyz/v1/chains`

Source: https://getchord.xyz/docs/api-reference/operations/chainsdirectory/

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.

## Response 200

Example (captured from the live API):

```json
{
  "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"
}
```

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