Cambrian Top token holders API
GET /api/v1/evm/tvl/top-owners
Top Token Holders
Overview
Returns the top token holders for a given EVM token address, ranked by holding value. It reports token amounts and USD valuations for the largest wallets holding a specific token.
Business Value
- Portfolio Analysis: Identify whale wallets and major token holders for investment research and risk assessment
- Token Distribution: Analyze token concentration and decentralization metrics for due diligence
- Market Intelligence: Track large holder movements to anticipate potential market impacts
- Risk Management: Monitor concentration risk by identifying addresses holding significant portions of token supply
- Competitive Analysis: Research major stakeholders and institutional holders across different tokens
Endpoint Details
URL:
https://api.cambrian.org/evm/tvl/top-owners
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 |
| token_address | string | Yes | - | Token address (pattern: ^0x[a-fA-F0-9]{40}$) |
| limit | integer | No | 20 | 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 holder data belongs to |
| ownerAddress | FixedString(42) | Wallet address of the token holder |
| tokenAddress | FixedString(42) | Contract address of the token |
| tokenSymbol | String | Symbol of the token |
| tokenAmount | Float64 | Raw amount of the token held by the owner |
| valueUsd | Float64 | USD value of the held token amount |
Examples
1. Top Holders of a Token on Base
Retrieve the top 10 holders of the ODOS token on Base (chain ID 8453), ranked by holding value.
curl -X GET "https://api.cambrian.org/evm/tvl/top-owners?token_address=0xca73ed1815e5915489570014e024b7ebe65de679&limit=10" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json"
Response:
[
{
"columns": [
{
"name": "chainId",
"type": "UInt16"
},
{
"name": "ownerAddress",
"type": "FixedString(42)"
},
{
"name": "tokenAddress",
"type": "FixedString(42)"
},
{
"name": "tokenSymbol",
"type": "String"
},
{
"name": "tokenAmount",
"type": "Float64"
},
{
"name": "valueUsd",
"type": "Float64"
}
],
"data": [
[
8453,
"0xae82febe00a21257ee813cfe2f913dcaa973d33b",
"0xca73ed1815e5915489570014e024b7ebe65de679",
"ODOS",
3567543874.61476,
3049247.842549925
],
[
8453,
"0x9d1e93bbc148fe7b19eb9ec22a5be4b75b57239f",
"0xca73ed1815e5915489570014e024b7ebe65de679",
"ODOS",
2666692701.38885,
2279273.1504477016
],
[
8453,
"0x32235fe0b39849ddff11bce74d93bf981c9fe5ea",
"0xca73ed1815e5915489570014e024b7ebe65de679",
"ODOS",
723197383.5800779,
618130.6072535497
],
[
8453,
"0xe12be6d836bba65f1f91b61fb49fb109fba57e72",
"0xca73ed1815e5915489570014e024b7ebe65de679",
"ODOS",
638144699.6775,
545434.4549403503
],
[
8453,
"0xc80afd311c9626528de66d86814770361fe92416",
"0xca73ed1815e5915489570014e024b7ebe65de679",
"ODOS",
512180868.2757961,
437770.7639976721
],
[
8453,
"0x7ec74ce1ff4c7c2b0bc2bc2f64ac8481db616b34",
"0xca73ed1815e5915489570014e024b7ebe65de679",
"ODOS",
458315000,
391730.5782564985
],
[
8453,
"0xc3681709ee476308b45812eabe0eb22f3b816880",
"0xca73ed1815e5915489570014e024b7ebe65de679",
"ODOS",
366912550.6162723,
313607.1601899984
],
[
8453,
"0x2ef73b65a9033c2e9707b0372f382a14d0d71252",
"0xca73ed1815e5915489570014e024b7ebe65de679",
"ODOS",
253350055.77781546,
216543.12830948102
],
[
8453,
"0x4c8f8055d88705f52c9994969dde61ab574895a3",
"0xca73ed1815e5915489570014e024b7ebe65de679",
"ODOS",
229230686.5125222,
195927.84303739664
],
[
8453,
"0x56939b55d3a69ca79a556110a1a2e98cdc4c9fd6",
"0xca73ed1815e5915489570014e024b7ebe65de679",
"ODOS",
92599680,
79146.71392550258
]
],
"rows": 10
}
]
Result collections are limited to 10 items. The response shows the top 10 ODOS token holders on Base, ordered by USD value from highest to lowest. The largest holder controls roughly $3.05M worth of ODOS tokens.
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/tvl/top-owners"
);
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/tvl/top-owners")
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