Asset catalog¶
GET /assets¶
Use this when you need searchable execution identities.
Useful query parameters:
qasset_key— exact-match filterverifiedchainlimitcursor
Persist asset_key, decimals, and verified locally to keep metadata in sync.
Asset discovery box (typeahead)¶
Use GET /assets?q= as the primary discovery flow for end-user asset search.
Recommended pattern:
- As the user types, call
GET /assets?q=<input>&limit=<small_number>. - Optionally narrow using
verified=trueand/orchain=<chain_id>. - Render results with
display_symbol,name, andasset_key. - Store and submit
asset_keyon subsequent RFQ/zap requests. - If users open a full picker or click "show more", continue with
cursor.
Example request (typeahead):
curl "https://routes.srcry.xyz/v1/assets?q=usdc&limit=20&verified=true" \
-H "Authorization: Bearer $ROUTES_API_KEY"
Example response (typeahead):
{
"request_id": "req_01J...",
"assets": [
{
"asset_key": "erc20.evm:1_0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"display_symbol": "usdc",
"name": "USD Coin",
"decimals": 6,
"verified": true
},
{
"asset_key": "spl.solana:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"display_symbol": "usdc",
"name": "USD Coin",
"decimals": 6,
"verified": true
}
],
"has_more": true,
"next_cursor": "opaque"
}
Example response:
{
"request_id": "req_01J...",
"assets": [
{
"asset_key": "erc20.evm:1_0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"display_symbol": "usdc",
"name": "USD Coin",
"decimals": 6,
"verified": true
}
],
"has_more": false,
"next_cursor": null
}
GET /resolve¶
Use this when you have chain-native identity data and need canonical Routes asset identity.
Common query patterns:
- EVM ERC-20:
/resolve?kind=erc20&chain_id=1&address=0x... - Solana SPL:
/resolve?kind=spl&mint=...
Example response:
{
"request_id": "req_01J...",
"asset": {
"asset_key": "spl.solana:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"decimals": 6,
"verified": true
}
}