SDK
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getTokenHolders('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN');curl --request GET \
--url https://data.solanatracker.io/tokens/{tokenAddress}/holders \
--header 'x-api-key: <api-key>'import requests
url = "https://data.solanatracker.io/tokens/{tokenAddress}/holders"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://data.solanatracker.io/tokens/{tokenAddress}/holders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://data.solanatracker.io/tokens/{tokenAddress}/holders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://data.solanatracker.io/tokens/{tokenAddress}/holders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data.solanatracker.io/tokens/{tokenAddress}/holders")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.solanatracker.io/tokens/{tokenAddress}/holders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"total": 2,
"enrich": [
"identity",
"walletPnl"
],
"accounts": [
{
"wallet": "HYLHTXn74S378oYQHmoJa9yqrfr3DCd8TZtnFCNvySC5",
"amount": 1032622458.645721,
"value": {
"quote": 7.100269258380428,
"usd": 597.7253928072596
},
"percentage": 103.2622458645721,
"identity": {
"pool": {
"program": "pumpfun",
"poolAddress": "HYLHTXn74S378oYQHmoJa9yqrfr3DCd8TZtnFCNvySC5"
},
"type": "pool",
"tags": [
"pool"
]
}
},
{
"wallet": "BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s",
"amount": 967377541.354279,
"value": {
"quote": 6.651647909279076,
"usd": 559.9588853192754
},
"percentage": 96.7377541354279,
"pnl": {
"wallet": {
"realized": 63155439.72,
"unrealized": 21353443.56,
"total": 84508883.29,
"invested": 203648590.41,
"proceeds": 266804030.13,
"totalTrades": 24242430,
"tokensTraded": 639911
},
"token": {
"realized": 63.48,
"unrealized": -2.48,
"total": 61,
"invested": 48.27,
"proceeds": 109.27,
"roi": 126.36,
"buys": 5,
"sells": 6,
"totalTrades": 11,
"balance": 967377541.354279,
"costBasis": 2.48,
"value": 0,
"price": 0,
"avgCost": 0,
"totalBought": 31796306.208048,
"totalSold": 64418764.853769004,
"avgBuy": 9.65,
"avgSell": 18.21,
"firstBuy": 1779813188896,
"lastBuy": 1779813195367,
"firstSell": 1779813188038,
"lastSell": 1779813194596,
"firstTrade": 1779813188038,
"lastTrade": 1779813195367,
"holdTimeSecs": 26
}
},
"identity": {
"bot": {
"name": "Mayhem Bot",
"avatar": "https://kol-avatar.solanatracker.io/BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s"
},
"name": "Mayhem Bot",
"avatar": "https://kol-avatar.solanatracker.io/BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s",
"type": "bot",
"tags": [
"bot"
]
}
}
]
}Tokens
Top 100 Solana token holders API
Get the top 100 holders of a Solana token and the total holder count. Add wallet identity or PnL with enrich. GET /tokens//holders.
GET
/
tokens
/
{tokenAddress}
/
holders
SDK
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getTokenHolders('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN');curl --request GET \
--url https://data.solanatracker.io/tokens/{tokenAddress}/holders \
--header 'x-api-key: <api-key>'import requests
url = "https://data.solanatracker.io/tokens/{tokenAddress}/holders"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://data.solanatracker.io/tokens/{tokenAddress}/holders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://data.solanatracker.io/tokens/{tokenAddress}/holders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://data.solanatracker.io/tokens/{tokenAddress}/holders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data.solanatracker.io/tokens/{tokenAddress}/holders")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.solanatracker.io/tokens/{tokenAddress}/holders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"total": 2,
"enrich": [
"identity",
"walletPnl"
],
"accounts": [
{
"wallet": "HYLHTXn74S378oYQHmoJa9yqrfr3DCd8TZtnFCNvySC5",
"amount": 1032622458.645721,
"value": {
"quote": 7.100269258380428,
"usd": 597.7253928072596
},
"percentage": 103.2622458645721,
"identity": {
"pool": {
"program": "pumpfun",
"poolAddress": "HYLHTXn74S378oYQHmoJa9yqrfr3DCd8TZtnFCNvySC5"
},
"type": "pool",
"tags": [
"pool"
]
}
},
{
"wallet": "BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s",
"amount": 967377541.354279,
"value": {
"quote": 6.651647909279076,
"usd": 559.9588853192754
},
"percentage": 96.7377541354279,
"pnl": {
"wallet": {
"realized": 63155439.72,
"unrealized": 21353443.56,
"total": 84508883.29,
"invested": 203648590.41,
"proceeds": 266804030.13,
"totalTrades": 24242430,
"tokensTraded": 639911
},
"token": {
"realized": 63.48,
"unrealized": -2.48,
"total": 61,
"invested": 48.27,
"proceeds": 109.27,
"roi": 126.36,
"buys": 5,
"sells": 6,
"totalTrades": 11,
"balance": 967377541.354279,
"costBasis": 2.48,
"value": 0,
"price": 0,
"avgCost": 0,
"totalBought": 31796306.208048,
"totalSold": 64418764.853769004,
"avgBuy": 9.65,
"avgSell": 18.21,
"firstBuy": 1779813188896,
"lastBuy": 1779813195367,
"firstSell": 1779813188038,
"lastSell": 1779813194596,
"firstTrade": 1779813188038,
"lastTrade": 1779813195367,
"holdTimeSecs": 26
}
},
"identity": {
"bot": {
"name": "Mayhem Bot",
"avatar": "https://kol-avatar.solanatracker.io/BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s"
},
"name": "Mayhem Bot",
"avatar": "https://kol-avatar.solanatracker.io/BwWK17cbHxwWBKZkUYvzxLcNQ1YVyaFezduWbtm2de6s",
"type": "bot",
"tags": [
"bot"
]
}
}
]
}Gets the top 100 holders for a specific token and the total holder count. Optional enrichment adds wallet identity (
?enrich=identity) and/or PnL (?enrich=walletPnl). Use ?enrich=identity,walletPnl, ?enrich=all, or ?enrich=* for both. When enrichment is requested, the response includes an enrich array listing applied modules. pnl.token uses the same flat field set as PnL V2 (invested, proceeds, trade counts, volume, timing, avgCost, holdTimeSecs). pnl.wallet is lifetime wallet PnL. Enrichment fields are omitted per account when not applicable — for example, pool accounts may have identity only, and wallets with no trade history for the token omit pnl.
SDK Example
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getTokenHolders('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN');
Authorizations
API Key for authentication
Path Parameters
Query Parameters
Optional enrichment modules. Use identity, walletPnl, identity,walletPnl, all, or *. When omitted, no extra enrichment work is done.
Example:
"all"
Was this page helpful?