vike
API EndpointsOn-chain

/tokens/screener

Find tokens by activity within a window — rank by volume, net inflow, holder count or smart-money inflow.

GET https://data.vike.io/v1/onchain/tokens/screener

Find tokens by activity within a window — rank by volume, net inflow, holder count or smart-money inflow, with floors on volume and holder count and a smart-money-only toggle.

symbol is empty and name is null on every captured row

That includes USDC, WBTC and WETH, the three most identifiable ERC-20s on Ethereum. The screener identifies tokens by address only. Plan to resolve names yourself via /tokens/search (which does carry symbol, name and a logo), and do not build a UI that assumes these two fields are populated. The addresses above are USDC, WBTC and WETH respectively.

net_flow_usd is 0.0 on two of the three rows

in_usd is exactly equal to out_usd to the cent. Where a token's flow nets to zero this precisely, the figures are almost certainly a double-counted transfer volume rather than a directional flow — every transfer landing on both sides. Sorting by net_inflow will rank such tokens at zero regardless of what actually moved.

The native coin ranks as the zero address

ETH is screened too, as token_address 0x0000000000000000000000000000000000000000. On 2026-10-18 it was the first row for sort=smart_inflow&window=7d. It is not a contract, and /tokens/{token_address}/transfers returns no buyers for it, so skip it before you drill into a screened token.

cURL
# the default screen: the busiest tokens by volume, three of them, over the 24h window (a window is counted in calendar dates, so 24h spans yesterday and today)
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/tokens/screener?limit=3&window=24h"

# which tokens took the biggest net inflow over 7d, largest first (a net_flow_usd of exactly 0 is the warning above, not a quiet token)
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/tokens/screener?sort=net_inflow&window=7d&limit=20"

# the same ranking counting only the smart-money cohort's flow
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/tokens/screener?sort=smart_inflow&window=7d&limit=20"

# volume among smart-money wallets only, the cohort filter without changing the sort
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/tokens/screener?smart_money_only=true&sort=volume&window=30d&limit=20"

# drop thin tokens: at least 1,000,000 USD of volume and 500 distinct wallets active in the window, ranked by wallet count
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/tokens/screener?sort=holders&min_volume_usd=1000000&min_holders=500&window=7d&limit=25"

# the same screen on BSC
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/tokens/screener?chain=bsc&sort=volume&window=24h&limit=10"

# the widest screen the route serves: limit=500 is accepted and applied as 100
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/onchain/tokens/screener?sort=volume&window=90d&limit=500"
chainqueryoptional
ethereum | bsc | base. Default ethereum
windowqueryoptional
24h | 7d | 30d | 90d. Default 24h
sortqueryoptional
volume | net_inflow | holders | smart_inflow. Default volume
min_volume_usdqueryoptional
Drop tokens below this window volume
min_holdersqueryoptional
Drop tokens below this holder count
smart_money_onlyqueryoptional
Boolean. Restrict to smart-money cohort flows
limitqueryoptional
Route default 50; applied cap 100

The complete response for limit=3, captured 2026-09-03, is a bare array.

Example response
[
  {
    "token_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "symbol": "",
    "name": null,
    "volume_usd": 137340073415.62,
    "net_flow_usd": -36603751.18,
    "in_usd": 68651734832.22,
    "out_usd": 68688338583.4,
    "unique_holders": 262663,
    "tx_count": 1706155
  },
  {
    "token_address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
    "symbol": "",
    "name": null,
    "volume_usd": 127606890479.48,
    "net_flow_usd": 0.0,
    "in_usd": 63803445239.74,
    "out_usd": 63803445239.74,
    "unique_holders": 2785,
    "tx_count": 72340
  },
  {
    "token_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "symbol": "",
    "name": null,
    "volume_usd": 107747906503.82,
    "net_flow_usd": 0.0,
    "in_usd": 53873953251.91,
    "out_usd": 53873953251.91,
    "unique_holders": 17781,
    "tx_count": 775235
  }
]
cURL
# the default screen: the busiest tokens by volume, three of them, over the 24h window (a window is counted in calendar dates, so 24h spans yesterday and today)curl -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/onchain/tokens/screener?limit=3&window=24h"# which tokens took the biggest net inflow over 7d, largest first (a net_flow_usd of exactly 0 is the warning above, not a quiet token)curl -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/onchain/tokens/screener?sort=net_inflow&window=7d&limit=20"# the same ranking counting only the smart-money cohort's flowcurl -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/onchain/tokens/screener?sort=smart_inflow&window=7d&limit=20"# volume among smart-money wallets only, the cohort filter without changing the sortcurl -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/onchain/tokens/screener?smart_money_only=true&sort=volume&window=30d&limit=20"# drop thin tokens: at least 1,000,000 USD of volume and 500 distinct wallets active in the window, ranked by wallet countcurl -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/onchain/tokens/screener?sort=holders&min_volume_usd=1000000&min_holders=500&window=7d&limit=25"# the same screen on BSCcurl -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/onchain/tokens/screener?chain=bsc&sort=volume&window=24h&limit=10"# the widest screen the route serves: limit=500 is accepted and applied as 100curl -H "X-API-Key: $VIKE_API_KEY" \  "https://data.vike.io/v1/onchain/tokens/screener?sort=volume&window=90d&limit=500"
Example response
[  {    "token_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",    "symbol": "",    "name": null,    "volume_usd": 137340073415.62,    "net_flow_usd": -36603751.18,    "in_usd": 68651734832.22,    "out_usd": 68688338583.4,    "unique_holders": 262663,    "tx_count": 1706155  },  {    "token_address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",    "symbol": "",    "name": null,    "volume_usd": 127606890479.48,    "net_flow_usd": 0.0,    "in_usd": 63803445239.74,    "out_usd": 63803445239.74,    "unique_holders": 2785,    "tx_count": 72340  },  {    "token_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",    "symbol": "",    "name": null,    "volume_usd": 107747906503.82,    "net_flow_usd": 0.0,    "in_usd": 53873953251.91,    "out_usd": 53873953251.91,    "unique_holders": 17781,    "tx_count": 775235  }]