SDK
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getTokenHoldersPaginated('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', 100);
curl --request GET \
--url https://data.solanatracker.io/tokens/{tokenAddress}/holders/paginated \
--header 'x-api-key: <api-key>'import requests
url = "https://data.solanatracker.io/tokens/{tokenAddress}/holders/paginated"
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/paginated', 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/paginated",
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/paginated"
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/paginated")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.solanatracker.io/tokens/{tokenAddress}/holders/paginated")
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": 629520,
"accounts": [
{
"wallet": "2RH6rUTPBJ9rUDPpuV9b8z1YL56k1tYU6Uk5ZoaEFFSK",
"account": "HkykUVWTctptXZmRTWearMsH4SaQNmE4Ku3tMJe5v2mH",
"amount": 800000026.912776,
"value": {
"quote": 4794089882.482378,
"usd": 4794089882.482378
},
"percentage": 80.00006034693021
},
{
"wallet": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"account": "7DaumTmUaK3xcpd8XJXAjUzDrCqPuj3S1Sc2cbootBUN",
"amount": 29442390.303223,
"value": {
"quote": 176436825.90046737,
"usd": 176436825.90046737
},
"percentage": 2.944241152222513
}
],
"cursor": "Cd3HX8ToTVeJYTN4dB6BuRvnvmTFeXHJ3E4EAfR9s8QA",
"hasMore": true,
"limit": 10
}{
"error": "Invalid token address"
}{
"error": "Token not found, please check back later"
}{
"error": "Unable to fetch holders data"
}{
"error": "Request timeout while fetching holders data"
}Tokens
Get All Token Holders (Paginated)
Lista de tenedores con paginación por cursor; orden descendente por saldo.
GET
/
tokens
/
{tokenAddress}
/
holders
/
paginated
SDK
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getTokenHoldersPaginated('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', 100);
curl --request GET \
--url https://data.solanatracker.io/tokens/{tokenAddress}/holders/paginated \
--header 'x-api-key: <api-key>'import requests
url = "https://data.solanatracker.io/tokens/{tokenAddress}/holders/paginated"
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/paginated', 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/paginated",
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/paginated"
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/paginated")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.solanatracker.io/tokens/{tokenAddress}/holders/paginated")
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": 629520,
"accounts": [
{
"wallet": "2RH6rUTPBJ9rUDPpuV9b8z1YL56k1tYU6Uk5ZoaEFFSK",
"account": "HkykUVWTctptXZmRTWearMsH4SaQNmE4Ku3tMJe5v2mH",
"amount": 800000026.912776,
"value": {
"quote": 4794089882.482378,
"usd": 4794089882.482378
},
"percentage": 80.00006034693021
},
{
"wallet": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"account": "7DaumTmUaK3xcpd8XJXAjUzDrCqPuj3S1Sc2cbootBUN",
"amount": 29442390.303223,
"value": {
"quote": 176436825.90046737,
"usd": 176436825.90046737
},
"percentage": 2.944241152222513
}
],
"cursor": "Cd3HX8ToTVeJYTN4dB6BuRvnvmTFeXHJ3E4EAfR9s8QA",
"hasMore": true,
"limit": 10
}{
"error": "Invalid token address"
}{
"error": "Token not found, please check back later"
}{
"error": "Unable to fetch holders data"
}{
"error": "Request timeout while fetching holders data"
}SDK Example
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getTokenHoldersPaginated('6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN', 100);
Autorizaciones
Clave API para autenticación
Parámetros de ruta
Dirección mint del token en Solana
Pattern:
^[1-9A-HJ-NP-Za-km-z]{32,44}$Parámetros de consulta
Tenedores por página (mín. 1, máx. 5000, predeterminado 1000)
Rango requerido:
1 <= x <= 5000Cursor de paginación; use el valor devuelto en la respuesta anterior para la página siguiente.
Respuesta
Successful response
Total number of token holders
Array of holder accounts for current page
Show child attributes
Show child attributes
Cursor for retrieving the next page. Null if no more pages.
Indicates if there are more pages available
Number of items requested per page
¿Esta página le ayudó?