TOKEN HOLDERS API · GraphQL · Snapshots · 40+ chains

Token Holders API — holder lists & distribution for any token, any chain

Skip scanning every Transfer log and replaying balances yourself. We've already indexed holders for every ERC-20, ERC-721, ERC-1155 and SPL token across 40+ chains — so top holders, holder counts, point-in-time snapshots and distribution metrics like Gini and Nakamoto are one GraphQL query away.

Powering holder data forCoinMarketCap logoNansen logoLukka logoChainalysis logo
EVM.HoldersThe largest wallets holding any ERC-20 token right now, ranked by balance.Docs
top_holders.graphqlCopy
query {
  EVM(network: eth, dataset: combined) {
    Holders(
      where: {Currency: {SmartContract:
        {is: "0xdAC17F958D2ee523a2206206994597C13D831ec7"}}}
      orderBy: {descending: Balance_Amount}
      limit: {count: 10}
    ) {
      Holder { Address }
      Balance { Amount(selectWhere: {gt: "0"}) }
    }
  }
}
responseSTREAMING
HolderTokenBalance
200 · GraphQL · 240msgraphql.bitquery.io
Trusted by 40,000+ developers & teams like
Binance logoChainalysis logoTRM Labs logoNansen logo0x logoCoinMarketCap logoCoin Metrics logoBybit logoLukka logo3Commas logoNexo logoTether logo
40+
Chains supported
1PB+
Blockchain data indexed
10B+
API calls / month
99.9%
Production uptime
01
Forget scanning every Transfer log

Holder data isn't in the chain — you have to rebuild it.

A token contract never stores its holder list. To get one yourself you replay every Transfer event from genesis, net them per address, drop the zero balances and re-run the whole thing for every historical snapshot — per token, per chain. We did that indexing once, so holders, counts and distribution are a single query across every chain at once.

What you're doing
Build it yourself
Bitquery Holders API
A token's full holder list
Replay every Transfer & net balances
A single GraphQL query
Holder count over time
Snapshot and store it daily yourself
Counts at any timestamp, built in
Distribution metrics
Compute Gini & Nakamoto in your app
Gini, Nakamoto & Theil in the query
Solana and EVM holders
Two stacks, two schemas
One schema across chains
Point-in-time snapshots
Maintain an archive node per chain
Filter by date, no node to run
NFT collection holders
Decode ERC-721 / 1155 transfers
Decoded for every token standard
02
Delivery channels

Four ways to get holder data — one schema underneath.

Design your query once in GraphQL, then read the exact same fields as GraphQL streams, Kafka, gRPC or a bulk cloud export. Pick the channel that fits your latency and volume — no second pipeline.

03
Token standard coverage

Every token standard, decoded into one holder feed.

A single Holders query works the same for fungible tokens, NFTs and multi-token contracts. Filter by token, holder or balance threshold — and aggregate to counts, snapshots, new holders or distribution metrics.

StandardTypeWhat you get
20ERC-20Fungible · EVMFull holder lists, counts and balances for any fungible token across 40+ EVM chains
721ERC-721NFT · EVMPer-collection holders and ownership for non-fungible tokens and PFP collections
1155ERC-1155Multi-token · EVMHolders and balances for semi-fungible and multi-token edition contracts
SPLSPL TokenFungible · SolanaSPL holders aggregated from balance updates — meme coins, stablecoins and more
+ Holders across Ethereum, BSC, Base, Arbitrum, Polygon, Solana & 40+ chains
05
Build it this weekend

The holder products people ship on us.

Each one is a filter on the same indexed holder data — query GraphQL for dashboards and snapshots, or stream balance updates over Kafka or gRPC for alerts.

gRPC · Kafka

Whale-alert bot

List holders above a balance threshold, then stream their balance updates so you fire an alert the moment a whale adds to or exits a position.

Holders {
  uniq(if: { Balance: { Amount: { gt: "10000000" } } })
}
Read the docs
GraphQL

Holder-growth dashboard

Run the distinct-holder count at a series of timestamps to chart adoption and retention for any token over time.

Holders
  where: { Balance: { LastChangeTime: { till: "2026-06-01T00:00:00Z" } } }
  uniq(of: Holder_Address)
Read the docs
GraphQL

Airdrop eligibility snapshot

Take a point-in-time holder list at a cutoff block or date — the exact set of addresses and balances you need for a fair airdrop or governance snapshot.

Holders {
  Holder { Address }
  Balance { Amount(selectWhere: { gt: "0" } }) }
}
Read the docs

What teams say about our data

"We did a thorough search of the market for the best onchain data. Bitquery came out on top — and now powers all live prices across Nansen. We don't think of them as a vendor. They're a partner."

A
Alexander Karsten
Nansen
40+
Chains with holder data, one schema
Gini/Nakamoto
Distribution metrics built into the query
Point-in-time
Historical holder snapshots by date

Bitquery does the hard work of parsing blockchain transaction data into a usable form so that we don't have to. We use their interface to diagnose issues with complex transactions and their analytics as a starting point for our own.

0x Protocol logo
Alex Knaggs
0x Protocol

They proved they had the technology to deliver sophisticated data solutions. We extended our support through the Binance X fellowship — building an open-source library of visualization widgets on their blockchain data.

Director, Binance X logo
Flora Sun
Director, Binance X

The complex raw data is available at different levels of detail and from different viewpoints — whether we need simple aggregated transfers or parameters for failed contract calls. The support is responsive, friendly and quick.

Backend Developer, Blockpit logo
Jan Dreske
Backend Developer, Blockpit

Partnering with Bitquery has been highly cost-effective — leveraging their established infrastructure rather than building our own let us rapidly expand our blockchain support and reach a much broader segment of on-chain users.

Co-Founder, Syla logo
Nick Christie
Co-Founder, Syla

Bitquery's products are very intuitive and easy to use. We currently use their products to obtain DEX-related trading and liquidity information, which saves us the manpower and tedious technical details required to develop our own system. Their excellent technical team deserves special praise; they provide near-24/7 support and resolve issues quickly. I greatly appreciate their products and work ethic.

Ourbit logo
Data Team
Ourbit

Bitquery provides the infrastructure we rely on every day. Fast, reliable, and comprehensive across the chains that matter to our business.

Webacy
Webacy
webacy.com
06
Pricing

Start free. Scale when you ship.

Query every blockchain on every plan — no chain is paywalled. Move to commercial when you need volume, SLAs and bulk datashares.

Developer
$0 / month
Free plan for developers or small projects.
  • All blockchains, all plans
  • 10 requests / minute
  • 2 streams for testing
  • GraphQL IDE access
Get started free
Most popular
Commercial
Custom
Tailored solutions for business and enterprise.
  • Scalable calls, no throttling
  • SQL, Cloud, Kafka & more
  • 24/7 engineering access
  • Dedicated onboarding & SLA
Talk to sales
Datashares
Custom
Bulk historical & real-time data on your cloud.
  • Snowflake, BigQuery, S3, Azure
  • No setup or infrastructure
  • Structured for AI agents & MCP
  • Audit data for custodians
Talk to sales
FAQ

Token holder data questions, answered.

How do I get the top holders of a token?
Query the Holders dataset on the EVM API with dataset: combined, filter by the token's Currency.SmartContract and order by Balance_Amount descending. You get each holder address and its non-zero balance in a single GraphQL query across 40+ chains.
Can I get historical holder counts over time?
Yes. Count distinct addresses with uniq(of: Holder_Address) and constrain Balance.LastChangeTime with a till timestamp. Run it at a series of dates to build a holder-count time series for adoption and retention charts.
What distribution metrics are available?
The holder statistics support wealth-distribution metrics including the Gini coefficient, Nakamoto index, Theil index, total supply, unique holders and top-N concentration — computed server-side so you don't have to aggregate balances yourself.
Do you support Solana SPL token holders?
Yes. Solana SPL holders are aggregated from Solana.BalanceUpdates — filter by the token MintAddress and take the latest PostBalance per owner to get current holders and balances for any mint.
Can I track holder changes in real time?
Yes. Subscribe to balance updates over WebSocket, Kafka or gRPC to catch inflows and outflows the moment they land on-chain — ideal for whale-alert bots, watchlists and live holder dashboards.
Which token standards and chains are supported?
ERC-20, ERC-721 and ERC-1155 on 40+ EVM chains — including Ethereum, BSC, Base, Arbitrum and Polygon — plus SPL tokens on Solana, all from one schema. NFT collection holders and multi-token contracts are decoded the same way as fungible tokens.

Ship your holder analytics this week.

Free API key, every chain unlocked, no node to run. Query top holders, holder counts and distribution metrics in your first call.

No credit card · 10K free points for your first month · All 40+ chains included