/tokens/{token_address}/holders
The holder leaderboard for a token, ranked by cumulative net inflow USD.
GET https://data.vike.io/v1/onchain/tokens/{token_address}/holdersThe holder leaderboard for a token, ranked by cumulative net inflow USD. Returns wallet, net flow USD, volume USD, transaction count, first and last seen dates, and known labels.
The capture makes the warning below concrete. Every one of the top three USDC "holders" is an
intermediary, not an owner: a Coinbase wallet, the Morpho lending protocol and an MEV bot. The
second row moved 11.3 trillion USD of volume to net 45.5 billion — a ratio that only makes sense
for a contract money passes through. Read this route as who moves the most of this token, and use
/wallets/{address}/balances when you mean who
holds it.
Note entity and wallet_type are populated on all three rows here (coinbase/cex,
morpho/defi, mev bot/mev), which is what makes the list interpretable — an unlabelled
address at the top of this ranking tells you very little on its own.
# the wallets with the largest accumulated net inflow of USDC over our transfer history: the top three
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/tokens/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48/holders?limit=3"
# the longest ranking the route serves: 50 rows, whatever larger limit you send
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/tokens/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48/holders?limit=50"
# the same ranking for another token: WETH
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/tokens/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/holders?limit=10"
# a token on BSC: TOKEN is a token_address from /tokens/search?chain=bsc (bare or 0x-prefixed), since the address has to be the one on that chain
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/tokens/$TOKEN/holders?chain=bsc&limit=10"
# the unlabelled addresses in the ranking, the ones that need a second look
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/tokens/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48/holders?limit=50" \
| jq '[.[] | select((.entity // "") == "") | {wallet, net_flow_usd, volume_usd}]'
# the ranking is net flow over our transfer history, not a balance: WALLET is a wallet from it, whose current holdings the balances route reads from the chain
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/wallets/$WALLET/balances?min_usd=1000"token_addresspathrequiredchainqueryoptionalethereum | bsc | base. Default ethereumlimitqueryoptionalThe USDC holder leaderboard, captured 2026-09-03 — the complete response for limit=3.
[
{
"wallet": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43",
"net_flow_usd": 85269157826.77954,
"volume_usd": 1920884159776.6255,
"tx_count": 11431454,
"first_seen": "2022-07-19",
"last_active": "2026-09-03",
"entity": "coinbase",
"wallet_type": "cex"
},
{
"wallet": "0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb",
"net_flow_usd": 45553365504.30071,
"volume_usd": 11301542548648.928,
"tx_count": 2150944,
"first_seen": "2024-01-03",
"last_active": "2026-09-03",
"entity": "morpho",
"wallet_type": "defi"
},
{
"wallet": "0x06cff7088619c7178f5e14f0b119458d08d2f5ef",
"net_flow_usd": 27999681851.978294,
"volume_usd": 5320232364455.69,
"tx_count": 641309,
"first_seen": "2025-02-06",
"last_active": "2026-09-03",
"entity": "mev bot",
"wallet_type": "mev"
}
]Ranked by accumulated net inflow, not by current balance
The ranking is net inflow accumulated over our recorded transfer history, not current on-chain
balance. A wallet that accumulated and then exited still ranks by what it moved through. For the
present holdings of one specific wallet, use
/wallets/{address}/balances.
/tokens/{token_address}/transfers
Who bought and who sold a token over a period — the top buyers or the top sellers with quantities and USD values.
/labels/batch
Enrich a list of addresses in one call: entity, wallet type, risk flag, 30-day net flow, 30-day volume and 30-day transaction count, one row per input address in input order.