Data API

GET /v1/tokens/{mint}/holders

Holder list with supply concentration. Paginated.

Endpoint

GET  https://solindex.infinityblocks.io/v1/tokens/{mint}/holders

Authentication

Send your key in the x-api-key header (or ?api-key=). See Authentication.

Path parameters

ParamDescription
mintBase-58 token mint address.

Query parameters

ParamTypeDefaultAllowed / range
limitint501–500 (page size)
offsetint0Rows to skip
pageint1-based page (alternative to offset)

Request

curl -s "https://solindex.infinityblocks.io/v1/tokens/<MINT>/holders?limit=50" \
  -H "x-api-key: <API_KEY>"
const r = await fetch("https://solindex.infinityblocks.io/v1/tokens/<MINT>/holders?limit=50", {
  headers: { "x-api-key": "<API_KEY>" },
});
const { data } = await r.json();

Response

{ "data": {
  "count": 150, "top1Pct": 51.82,
  "holders": [ { "wallet": "…", "balance": 30511727.23, "pct": 51.824 }, … ] },
  "page": { "limit": 50, "offset": 0, "total": 150,
    "returned": 50, "hasMore": true, "nextOffset": 50 } }
Paginated by limit + offset (or 1-based page); page.total equals the holder count. count and top1Pct are whole-set aggregates — they don't change as you page. Holder balances come from a live token-account change stream — coverage is strongest for actively-trading tokens.

Try it

Run GET /v1/tokens/{mint}/holderslive · GET

Your key is stored only in this browser (localStorage).