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
| Param | Description |
|---|---|
mint | Base-58 token mint address. |
Query parameters
| Param | Type | Default | Allowed / range |
|---|---|---|---|
limit | int | 50 | 1–500 (page size) |
offset | int | 0 | Rows to skip |
page | int | — | 1-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).
—