Token search
Resolve a symbol or name to the tokens we know about.
GET https://data.vike.io/v1/onchain/tokens/searchResolve a symbol or name to the tokens we know about. The entry point for the two
address-keyed routes —
/tokens/{token_address}/transfers and
/tokens/{token_address}/holders.
token_address is 0x-prefixed lower-case hex
It pipes straight into /tokens/{token_address}/holders
and /tokens/{token_address}/transfers. Before
2026-10-19 it came back as bare hex without the 0x, and both routes still accept either spelling; a
caller that prepends 0x itself should test for the prefix first.
Every matching token is returned, ranked, not only the exact match
The search scores every token on the chain it reads — an exact symbol first, then symbols that start
with the text, symbols that contain it, then names — and returns the best limit. q=USDC with
limit=3 returned a single token because only one matched, so a short result means few matches, not
truncation, and a limit above the match count costs nothing. Only one chain's list is read per
call, so this route will not by itself warn you about symbol collisions across chains — pass chain
explicitly when the symbol is ambiguous. On hyperevm the registry this route searches holds about 50
tokens, so no match there can mean the token is not in it.
# resolve a ticker to the token you mean before calling a token route
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/tokens/search?q=USDC&limit=3"
# look a token up by name when you do not know the ticker (%20 is the space)
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/tokens/search?q=Wrapped%20Ether&limit=5"
# a short symbol returns a ranked list: an exact symbol match first, then symbols that start with it, then symbols that contain it, then name matches
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/tokens/search?q=ETH&limit=10"
# the same ticker on BSC: the search reads one chain's token list at a time, so the addresses it returns are that chain's
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/tokens/search?q=USDC&chain=bsc&limit=3"
# the address for the token routes: it comes back 0x-prefixed, so it goes straight into their path
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/onchain/tokens/search?q=USDC&limit=1" \
| jq -r '.[0].token_address'qqueryrequiredchainqueryoptionalethereum | bsc | base | hyperevm. Default ethereumlimitqueryoptionalThe complete response, captured 2026-09-03 and shown with the 0x prefix the route has served since
2026-10-19. limit=3, but only one token matched USDC.
[
{
"symbol": "USDC",
"name": "USD Coin",
"token_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"logo": "https://pub-468f7b552e104638ac0daeddde8a6aab.r2.dev/logos/coins/USDC.png"
}
]The parameter is q here and query on the MCP tool
Same search, different spelling. This is also the only endpoint in the namespace that MCP prices at 0 credits; over REST it logs 1 like every other route.