/leaderboard/flow-adjusted
Ranked on fills-derived realized PnL, with external flow reported beside it.
GET https://data.vike.io/v1/hyperliquid/leaderboard/flow-adjustedRanked on fills-derived realized PnL, with external flow reported beside it.
Truncated: traders holds 3 rows (limit=3); the first is shown in full, including the deposit and
withdrawal figures and the flow_unbalanced flag described below.
# who earned the most from trading in 30 days, deposits excluded by construction
curl -s "https://data.vike.io/v1/hyperliquid/leaderboard/flow-adjusted?limit=3&window=30d" \
-H "X-API-KEY: $VIKE_API_KEY"
# next page of the first call: NEXT is its nextCursor, passed back verbatim with the same window
curl -s "https://data.vike.io/v1/hyperliquid/leaderboard/flow-adjusted?window=30d&limit=3&cursor=$NEXT" \
-H "X-API-KEY: $VIKE_API_KEY"
# this week's board
curl -s "https://data.vike.io/v1/hyperliquid/leaderboard/flow-adjusted?window=7d&limit=25" \
-H "X-API-KEY: $VIKE_API_KEY"
# the all-time board, the largest page the route serves
curl -s "https://data.vike.io/v1/hyperliquid/leaderboard/flow-adjusted?window=all&limit=500" \
-H "X-API-KEY: $VIKE_API_KEY"
# drop the wallets whose attribution is unreliable; the route reports flow_unbalanced but never filters on it
curl -s "https://data.vike.io/v1/hyperliquid/leaderboard/flow-adjusted?window=30d&limit=100" \
-H "X-API-KEY: $VIKE_API_KEY" \
| jq '.traders[] | select(.flow_unbalanced | not) | {wallet, rank, total_realized_pnl}'windowqueryoptional1d | 7d | 30d | all. Default 30dlimitqueryoptionalcursorqueryoptional{
"traders": [
{
"wallet": "0x9bbb821a51d9c0ef24dd8592e9caad7fc469bbf2",
"rank": 1,
"account_value": 0.0,
"total_realized_pnl": 2152061.802894,
"cum_realized_pnl": 4018227.3687610077,
"roi": 0.0,
"pnl_pct": null,
"total_volume": 45909810.173497,
"total_fee": 3873.5595550000003,
"trade_count": 10,
"win_count": 7,
"loss_count": 3,
"win_rate": 0.699999988079071,
"long_win_rate": 0.6000000238418579,
"short_win_rate": 0.800000011920929,
"long_pnl": 1163849.598942,
"short_pnl": 988212.203952,
"profit_factor": 32.784751892089844,
"expectancy": 215206.18028939998,
"max_drawdown_pct": 154.60000610351562,
"current_drawdown_pct": 100.0,
"calmar_ratio": 0.0,
"recovery_factor": 999.0,
"max_win_streak": 7,
"max_loss_streak": 3,
"avg_leverage": 0.0,
"avg_duration_seconds": 82171,
"size_cohort": "shrimp",
"pnl_cohort": "3x smart",
"pnl_cohort_tag": "consistent_winner",
"style_cohort_tag": "whale_hunter",
"attributed": {
"trading_pnl_total": -225513.68282699987,
"realized_trading_pnl": -296967.9990569999,
"delta_unrealized_pnl": 71454.31623000004,
"funding_paid_usd": 0.0,
"delta_account_value": -858691.0119069999,
"account_value_eod": 0.0,
"active_days": 2,
"last_day": "2026-08-24",
"perps_trading_pnl": -225513.6828269998
},
"flow": {
"deposit_usd": 0.0,
"withdraw_usd": 0.0,
"net_external_flow_usd": -633177.32908,
"net_total_flow_usd": -633177.32908
},
"flow_unbalanced": true
}
],
"totalCount": 145165,
"nextCursor": "eyJrIjoiZmxvd2FkanwzMGQiLCJyIjozLCJ2IjoxMTc5NzcxLjYzNzU2Mjk5OTcsInciOiIweDAwNGVkY2Q0MDM2MGUyOTNlNGNmMjYwZDJlYmRmOGM3MDc2YzFiYjgifQ",
"ranked_by": "total_realized_pnl (fills-derived; excludes deposits by construction)"
}An account-value delta is not a trading result: a wallet that deposits $1M and loses $50k reads as +$950k on any equity-delta ranking. The rank here comes from the sum of closed round-trip PnL, which excludes deposits by construction — there is no flow term in it to corrupt. Deposits, withdrawals and the daily attribution figures come back in the same row, so a caller can see what was excluded rather than trust that something was.
flow_unbalanced is a per-row honesty flag, not a filter
flow_unbalanced is true when the wallet had a send in the window, which is when the
attributed block beside the rank is unreliable —
the ledger records send one-sided (measured 2026-08-04: 1,010,263 negative rows against
835,295 positive over 30 days, netting −$1.27B, while spotTransfer, internalTransfer and
subAccountTransfer each net about 0). The rank itself does not depend on attribution and is
unaffected. The flag is reported and never used to filter: active traders move money constantly,
and excluding them would empty the board rather than clean it.