Cambrian Token Holders by Program ID API

By Cambrian Network solana

GET /api/v1/solana/tokens/holders

Token Holders

Overview

Returns a list of accounts currently holding a specific Solana token (identified by its program ID/mint address), sorted by their current balance in descending order. This endpoint leverages pre-aggregated data for high performance and is ideal for analyzing token ownership distribution. It supports pagination to efficiently retrieve large holder lists.

Business Value

  • Portfolio Analysis: Track token distribution across holders to understand concentration and diversification patterns
  • Community Insights: Identify large holders and community distribution for token governance and ecosystem health
  • Risk Assessment: Monitor holder concentration to assess potential liquidity and market manipulation risks
  • Market Research: Analyze token adoption patterns and holder behavior for investment and partnership decisions
  • Compliance Monitoring: Track token distribution for regulatory reporting and AML compliance requirements

Endpoint Details

URL:

https://opabinia.cambrian.network/api/v1/solana/tokens/holders

Method: GET
Authentication: Required via X-API-Key header

Query Parameters

Parameter Type Required Default Description
program_id string Yes - The program ID (mint address) of the token. Must match the pattern ^[1-9A-HJ-NP-Za-km-z]{32,44}$.
limit integer No 100 Limit the number of results. Minimum: 1, Maximum: 1000.
offset integer No 0 Offset the results, allows you to skip a number of rows before starting to return rows. Minimum: 0, Maximum: 100000.

Response Field Descriptions

Response Field Type Description
account String The wallet address of the token holder (base58-encoded Solana public key).
balanceRaw UInt64 The raw token balance in the token's smallest unit (before applying decimals).
balanceUi Float64 The human-readable token balance with decimals applied.
balanceUSD Float64 The current USD value of the holder's token balance based on the latest token price.

Examples

1. Top Token Holders for ORCA

Retrieve the top 5 holders of the ORCA token by balance to analyze ownership concentration.

curl -X GET "https://opabinia.cambrian.network/api/v1/solana/tokens/holders?program_id=orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE&limit=5" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response:

{
  "columns": [
    {
      "name": "account",
      "type": "FixedString(44)"
    },
    {
      "name": "balanceRaw",
      "type": "UInt64"
    },
    {
      "name": "balanceUi",
      "type": "Float64"
    },
    {
      "name": "balanceUSD",
      "type": "Float64"
    }
  ],
  "data": [
    [
      "5ooCx5vKiV2ZxAEKNNHAJjAJ7BARfLUZPGvgiApZjgFD",
      14200768337139,
      14200768.337139,
      17180883.18414367
    ],
    [
      "Ce5j11WAsSzM3nkzrw4Kw6v6ic3nbyqpv5eywjYKeKc5",
      9279147186819,
      9279147.186819,
      11226430.857848316
    ],
    [
      "3YzoJK4pS8Urmd6PZtj16BMBVtc8eepk3MLs6LYtrArV",
      8350646724836,
      8350646.724836,
      10103079.107081903
    ],
    [
      "BwzWKw33iBQin9E8HwFgevCeMByioZCvoZFk7uN433ft",
      6027328553947,
      6027328.553947,
      7292198.9387709405
    ],
    [
      "3qPbC7P9baPCXxz2Duqk2Qmbj21ap8pRRbRY8sfobKje",
      4078280040240,
      4078280.04024,
      4934131.118831049
    ]
  ],
  "rows": 100
  // ... additional rows omitted for brevity
}

The top holder (5ooCx5vKiV2ZxAEKNNHAJjAJ7BARfLUZPGvgiApZjgFD) holds approximately 14.2 million ORCA tokens valued at ~$17.2M USD, indicating significant concentration among the largest wallets.

2. Paginated Holder List

Use pagination to retrieve the next page of holders after the top 100, useful for comprehensive holder analysis.

curl -X GET "https://opabinia.cambrian.network/api/v1/solana/tokens/holders?program_id=orcaEKTdK7LKz57vaAYr9QeNsVEPfiu6QeMU1kektZE&limit=100&offset=100" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response:

{
  "columns": [
    {
      "name": "account",
      "type": "FixedString(44)"
    },
    {
      "name": "balanceRaw",
      "type": "UInt64"
    },
    {
      "name": "balanceUi",
      "type": "Float64"
    },
    {
      "name": "balanceUSD",
      "type": "Float64"
    }
  ],
  "data": [
    [
      "3qPbC7P9baPCXxz2Duqk2Qmbj21ap8pRRbRY8sfobKje",
      4078280040240,
      4078280.04024,
      4934131.118831049
    ]
  ],
  "rows": 100
  // ... additional rows omitted for brevity
}

By setting offset=100, you retrieve holders ranked 101–200 by balance, allowing you to page through the full holder distribution for deep ownership analysis.

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.network/api/v1/solana/tokens/holders"
);
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.network/api/v1/solana/tokens/holders")
        print(response.json())

asyncio.run(main())

Payment Flow

  1. Send a normal request to the endpoint (no API key needed)
  2. Server returns 402 Payment Required with payment details
  3. The x402 SDK automatically signs a payment authorization with your wallet
  4. The SDK resubmits the request with the signed payment
  5. Server verifies payment and returns the API response

The x402 SDK handles steps 2–5 automatically.

Network: Base (chain ID 8453) | Currency: USDC | Price: $0.05 per request


Related Endpoints

  • /api/v1/solana/tokens/holders-over-time - Returns snapshots of token holders at specified block intervals within a given range, useful for tracking holder changes over time.
  • /api/v1/solana/tokens/holder-distribution-over-time - Returns the distribution of token holders over a block range grouped by USD value tiers for macro-level ownership analysis.
  • /api/v1/solana/tokens/security - Provides comprehensive security analysis for a Solana token including ownership concentration and holder distribution metrics.
  • /api/v1/solana/token-details - Retrieves comprehensive details about a Solana token including price history, trade statistics, and holder information.
  • /api/v1/solana/traders/leaderboard - Leaderboard of the top traders by trade count and volume for any SPL token across major Solana DEXs.