/hype/holders
The HYPE holder leaderboard — spot balance plus staked, per wallet.
GET https://data.vike.io/v1/hyperliquid/hype/holdersThe HYPE holder leaderboard — spot balance plus staked, per wallet. A wallet appearing in only one of the two sources is still a holder, so the two are unioned rather than joined.
# the biggest HYPE holders, spot plus staked
curl -s "https://data.vike.io/v1/hyperliquid/hype/holders?limit=3" \
-H "X-API-KEY: $VIKE_API_KEY"
# the board from the small end: rank counts in the requested direction, so 1 is the smallest
curl -s "https://data.vike.io/v1/hyperliquid/hype/holders?order=asc&limit=100" \
-H "X-API-KEY: $VIKE_API_KEY"
# the largest page the route serves
curl -s "https://data.vike.io/v1/hyperliquid/hype/holders?limit=500" \
-H "X-API-KEY: $VIKE_API_KEY"
# next page: NEXT is the previous response's nextCursor, passed back verbatim
curl -s "https://data.vike.io/v1/hyperliquid/hype/holders?limit=500&cursor=$NEXT" \
-H "X-API-KEY: $VIKE_API_KEY"
# concentration: the share of the page's HYPE held by its ten largest holders
curl -s "https://data.vike.io/v1/hyperliquid/hype/holders?limit=100" \
-H "X-API-KEY: $VIKE_API_KEY" \
| jq '.holders | (map(.total_amount) | add) as $all | ((.[:10] | map(.total_amount) | add) / $all)'
# which large holders are also top realized-PnL traders; pnl_cohort is resolved at query time, so it is today's label
curl -s "https://data.vike.io/v1/hyperliquid/hype/holders?limit=100" \
-H "X-API-KEY: $VIKE_API_KEY" \
| jq '.holders[] | select((.pnl_cohort // "") | test("smart")) | {wallet, rank, total_amount, pnl_cohort}'orderqueryoptionalasc | desc. Default desclimitqueryoptionalcursorqueryoptional{
"holders": [
{
"wallet": "0x43e9abea1910387c4292bca4b94de81462f8a251",
"rank": 1,
"spot_amount": 3.00327328,
"spot_amount_usd": 246.15128130208,
"staked_amount": 241107400.82591507,
"staked_amount_usd": 19761403679.092823,
"total_amount": 241107403.82918835,
"total_amount_usd": 19761403925.244106,
"account_value": 0.0,
"size_cohort": null,
"pnl_cohort": "unknown"
},
{
"wallet": "0xd57ecca444a9acb7208d286be439de12dd09de5d",
"rank": 2,
"spot_amount": 4.4E-7,
"spot_amount_usd": 0.00003606284,
"staked_amount": 60365562.87615384,
"staked_amount_usd": 4947621898.892445,
"total_amount": 60365562.87615428,
"total_amount_usd": 4947621898.892481,
"account_value": 0.0,
"size_cohort": null,
"pnl_cohort": "unknown"
},
{
"wallet": "0x2222222222222222222222222222222222222222",
"rank": 3,
"spot_amount": 54535484.50059421,
"spot_amount_usd": 4469782845.153202,
"staked_amount": 0.0,
"staked_amount_usd": 0.0,
"total_amount": 54535484.50059421,
"total_amount_usd": 4469782845.153202,
"account_value": 0.0,
"size_cohort": null,
"pnl_cohort": "unknown"
}
],
"hype_price_usd": 81.961,
"label_basis": "current",
"label_computed": {
"grading": "realized",
"label_basis": "current",
"when": "at query time",
"lookahead": false,
"source": "live wallet realized-PnL ladder",
"detail": "Balances are last-known FINAL state and the label is resolved now: row and label are both 'now'. There is no time axis here, so a current label cannot contaminate an earlier row — the lookahead hazard the liquidation listing declares does not exist on this shape.",
"caveat": "Balances are last-known, not simultaneous: each wallet carries whatever its most recent poll saw, so a stale balance can sit beside a fresh label."
},
"nextCursor": "eyJyYW5rIjozLCJ0b3RhbCI6NTQ1MzU0ODQuNTAwNTk0MjEsInciOiIweDIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIifQ"
}rank is position in the requested ordering: 1 is the largest holder under order=desc and
the smallest under order=asc.
Balances are last-known and the USD column is not
The balance columns and the USD column are not equally fresh. The USD figure applies a single current HYPE price to every row rather than each row's own
recorded mark_price — a wallet last polled in June would otherwise carry a June price and the
column would be non-comparable row to row. The balance itself is still whatever was last seen, so
a stale balance can sit beside a fresh price. Staked balance is amount_delegated only;
pending_rewards is excluded because it is 0 across the whole table today, and folding it in
would silently change the definition the day it stops being 0.
pnl_cohort here is a current label, which is right for a leaderboard: Label basis.