Find tokens by symbol or name on Ethereum, Monad and Arc
/v1/tokens/searchCall this for the search box. q is trimmed and lowercased by Sona, and must be 2 to 64 characters without control characters. A token matches when its symbol starts with q, then when its name starts with q, then when its symbol contains it, then when its name does. A full address matches that token.
Verified tokens come first. A token on a curated list (the Uniswap default list, and the Monad Foundation's list for Monad) has verified: true. Among them the better match comes first, then the deeper pool liquidity. Every other token has verified: false and comes after, so a token that copies the name of a real one, such as another USDC, can never come before it. Being on a list only says that someone put the address there, so it is not an endorsement.
Each item holds chain, token (lowercase), name, symbol, decimals, verified and logo_url (an https URL, or null). A search with no match answers 200 with items: []. The route is not chain-scoped, and the native coin is not a token and is never listed.
data.coverage holds the limits that apply: token_search_list_unavailable a curated list could not be loaded, so verified tokens may be missing, token_search_long_tail_unavailable the pool search of the data provider did not answer, so only curated tokens and indexed tokens are listed, and token_search_unverified the answer holds tokens that are on no curated list. Sona keeps an answer for 5 minutes, but one with token_search_long_tail_unavailable for 15 seconds, so the full answer replaces it soon.
Query parameters
| Name | Type | Description |
|---|---|---|
qRequired | string | The text to look for in symbols and names, or a full token address. Sona trims it and lowercases it. It must be 2 to 64 characters with no control characters, else 400 |
limit | integerDefault 8 | How many tokens to return, from 1 to 20. Default: 8. A value out of range answers 400 |
Response
The answer, wrapped in the {data, meta, links} envelope. meta.finality is none.
| Field | Type | Description |
|---|---|---|
| coverage | array of strings | The codes of the limits that apply to this answer. It is empty when none applies. |
| items | array of objects | |
| kind | string | token_search |
Cost
0 credits. The rate limit still applies. The time limit is 5 seconds.
Errors
| Status | Code |
|---|---|
| 400 | invalid_query |
| 429 | rate_limited |
| 500 | internal |
| 503 | upstream_unavailable |
| 504 | deadline_exceeded |
400 invalid_query for a missing or bad q, a limit out of range or another query key, 429 rate_limited, 503 upstream_unavailable and 504 deadline_exceeded.