Solana Token Holders API
Get real-time and historical token holder data for any SPL token on Solana. Bitquery provides two approaches to retrieve token holders — choose the one that fits your use case.
Can I get Solana token holder data using Bitquery?
Yes. Bitquery exposes Solana SPL holder analytics via GraphQL: use V1 transfer-based aggregates for full history and top holders, or V2 BalanceUpdates for fast snapshots on recently active tokens (roughly the last hours of balance updates). Pick V1 for long-lived tokens and trends; V2 for brand-new launches and near-real-time rankings.
How do I track whale wallets and their token holdings on Solana?
Use V1 holder queries sorted by net balance to list the largest wallets, or V2 BalanceUpdates ordered by PostBalance for fresh launches. Filter minimum PostBalance or post-process balances to focus on whales, then correlate with Solana transfers or DEX trades for accumulation or distribution.
Choosing the Right API
Bitquery provides two versions of Solana APIs — each with different strengths for retrieving token holder data:
| Feature | V1 API (Transfers) | V2 API (Balance Updates) |
|---|---|---|
| Data coverage | Complete historical data from token launch | Last ~8 hours of balance updates |
| Best for | Any token, any age | Newly launched tokens (< 8 hours old) |
| Data freshness | Lags a few minutes behind real-time | Real-time |
| Method | Calculates holders from cumulative transfers (sum of inflows − outflows) | Reads latest balance snapshot directly |
| Query complexity | Requires aggregation (sum, expression) | Simple — just read PostBalance |
| Ideal use cases | Tokens older than 8 hours, historical holder analysis, whale tracking | Tokens launched within the last 8 hours, Pump.fun launches, fast holder snapshots |
- Token launched more than 8 hours ago → Use V1 API (complete history)
- Token launched within the last 8 hours → Use V2 API (faster, simpler)
- Need both speed and history → Combine both: V2 for the latest snapshot, V1 for historical trends
V1 API — Historical Token Holders via Transfers
The V1 API calculates token holders by summing all incoming and outgoing transfers for each wallet address. This gives you complete, accurate holder data for any token regardless of when it was launched.
Strengths:
- Full historical coverage from token genesis
- Works for any SPL token, any age
- Accurate holder balances computed from on-chain transfer history
Limitation:
- Data may lag a few minutes behind real-time
For more V1 Solana transfer examples, see the V1 Solana Transfers documentation.
Top Token Holders
Get the top holders for any SPL token by calculating net balances from transfer history.
Try it live: Solana Token Holders V1
{
solana(network: solana) {
transfers(
date: { since: "2026-02-19" }
currency: { is: "943YczGfS95e1ZnUSMd5DPQrGXaKBS2zGR76htycpump" }
options: { limit: 10000, desc: "balance" }
) {
sum_in: amount(calculate: sum)
sum_out: amount(calculate: sum)
balance: expression(get: "sum_in - sum_out")
count_in: countBigInt
count_out: countBigInt
currency {
address
symbol
tokenType
}
receiver {
address
}
}
}
}