Cambrian All Tokens API
GET /api/v1/evm/tokens
All Tokens
Overview
Returns a list of all ERC20 tokens for a specified EVM chain, including their contract addresses, symbols, names, decimal places, and stablecoin status. Supports filtering by symbol or name, along with pagination via limit and offset parameters.
Business Value
- Token Discovery: Access a comprehensive catalog of verified tokens across EVM chains for integration purposes
- Contract Verification: Get validated contract addresses to avoid interaction with malicious or fake tokens
- Metadata Standardization: Retrieve standardized token information including symbols, names, and decimal precision
- Chain Compatibility: Support for multiple EVM-compatible networks through a single endpoint
- Application Development: Essential data for wallets, DEXs, and portfolio tracking applications
Endpoint Details
URL:
https://api.cambrian.org/evm/tokens
Method: GET
Authentication: Required via X-API-Key header
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| chain_id | integer | No | 8453 | EVM chain ID. Enum: 1, 8453, 42161, 4663 |
| filter | string | No | - | Search symbol or name of the token |
| limit | integer | No | 100 | Limit the number of results (min 1, max 10000) |
| offset | integer | No | 0 | Offset the results, allows you to skip a number of rows before starting to return rows (min 0, max 100000000) |
Response Field Descriptions
| Response Field | Type | Description |
|---|---|---|
| chainId | UInt16 | EVM chain ID the token belongs to |
| tokenAddress | String | Contract address of the ERC20 token |
| tokenSymbol | String | Token symbol (e.g., AAA) |
| tokenName | String | Full name of the token |
| tokenDecimals | UInt8 | Number of decimal places used by the token contract |
| isStable | UInt8 | Flag indicating whether the token is a stablecoin (1) or not (0) |
Examples
1. List Tokens on Base
Retrieve a list of ERC20 tokens on Base (chain ID 8453), limited to 10 results.
curl -X GET "https://api.cambrian.org/evm/tokens?limit=10" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json"
Response:
[
{
"columns": [
{
"name": "chainId",
"type": "UInt16"
},
{
"name": "tokenAddress",
"type": "String"
},
{
"name": "tokenSymbol",
"type": "String"
},
{
"name": "tokenName",
"type": "String"
},
{
"name": "tokenDecimals",
"type": "UInt8"
},
{
"name": "isStable",
"type": "UInt8"
}
],
"data": [
[
8453,
"0x307a0926d788d9d43ca6a70d28bd617abaa3bd9d",
"AAA",
"AAA",
18,
0
],
[
8453,
"0xa18bfe67e90afb6146934eda5bab47e039a240a4",
"AAA",
"AA",
18,
0
],
[
8453,
"0x53b83bb2e34b6b7331a8e05f6a0ebbee3145be9c",
"AAA",
"AAA",
18,
0
],
[
8453,
"0xa7477167c142e2289cf057cbf8f9198632e98cd3",
"AAA",
"AAA",
18,
0
],
[
8453,
"0xb6519dda5826bc69dcc1ec381cc6a955f6183438",
"AAA",
"ANation",
18,
0
],
[
8453,
"0x3fb46ea3ead4a48b00194183b08a96996302cef0",
"AAA",
"AAADOG",
18,
0
],
[
8453,
"0xf85437811ac23d5d4f16e621f036d7323537b78f",
"AAA",
"AAA",
18,
0
],
[
8453,
"0xb0f70b45754529eb100f346f50695c1d596f1ce5",
"AAA",
"Orcadia",
18,
0
],
[
8453,
"0x477385341b929d96a9dad9cbb2b9cf3e7ba58675",
"AAA",
"AAA",
18,
0
],
[
8453,
"0x25f82ab546fe1c6dc1020c3090bec921d13e00b6",
"AAA",
"aaa",
18,
0
]
],
"rows": 10
}
]
Result collections are limited to 10 items here. The response above lists 10 ERC20 tokens on Base (chain ID 8453), each with 18-decimal precision, and none of them are flagged as stablecoins (isStable: 0).
x402 Payment Option
This endpoint supports pay-per-use access via the x402 payment protocol (v2): pay $0.05 USDC per request using blockchain micropayments. No API key required.
Quick Start (TypeScript)
npm install @x402/fetch @x402/evm viem
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY as `0x${string}`);
const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const response = await fetchWithPayment(
"https://x402.cambrian.org/evm/tokens"
);
const data = await response.json();
Quick Start (Python)
pip install "x402[httpx]"
import asyncio, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
async def main():
client = x402Client()
account = Account.from_key(os.getenv("EVM_PRIVATE_KEY"))
register_exact_evm_client(client, EthAccountSigner(account))
async with x402HttpxClient(client) as http:
response = await http.get("https://x402.cambrian.org/evm/tokens")
print(response.json())
asyncio.run(main())
Payment Flow
- Send a normal request to the endpoint (no API key needed)
- Server returns
402 Payment Requiredwith payment details - The x402 SDK automatically signs a payment authorization with your wallet
- The SDK resubmits the request with the signed payment
- Server verifies payment and returns the API response
The x402 SDK handles steps 2 through 5 automatically.
Network: Base (chain ID 8453) | Currency: USDC | Price: $0.05 per request