Skip to main content

Assets

Search the Kryptos asset catalogue to resolve a symbol or contract address into the assetId that the rest of the API uses.

Base URL: https://api-v2.kryptos.io

Endpoint
GET/v1/assets/search

Shared reference data, not workspace-specific — it needs a valid token, but no workspace parameter.

Request

curl -X GET "https://api-v2.kryptos.io/v1/assets/search?q=ethereum&limit=10" \
-H "Authorization: Bearer ACCESS_TOKEN"

Query Parameters

Every parameter is optional.

ParameterTypeDescription
qstringFree-text query, 1–100 characters. Enables fuzzy matching
contractAddressstringExact contract address, 1–255 characters
typestringcrypto, fiat, nft or stablecoin
categorystringAsset category, 1–100 characters
chainIdstringChain to restrict to, 1–100 characters
limitinteger1–100
offsetintegerRows to skip

Omitting q is valid and returns the top assets by market-cap rank — a good default list for a picker before the user has typed anything.

Response

{
"success": true,
"data": [
{
"id": "a3f1c8e0-9d42-4b17-8c55-6e0b2f7a1d34",
"symbol": "ETH",
"name": "Ethereum",
"logoUrl": "https://...",
"type": "crypto",
"category": "layer-1",
"cmcRank": 2,
"chains": [
{ "chainId": "ethereum", "contractAddress": "0x0000000000000000000000000000000000000000" }
],
"score": 0.98
}
],
"total": 14,
"limit": 10,
"offset": 0
}
FieldTypeDescription
idstringThe assetId to use in assetIds filters and transaction legs
symbolstringTicker
namestringDisplay name
logoUrlstring | nullIcon URL
typestringcrypto, fiat, nft or stablecoin
categorystring | nullAsset category
cmcRanknumber | nullMarket-cap rank; null for unranked assets
chainsarrayEvery chain the asset exists on, with its contract address
scorenumberRelevance 0–1 — present only when q is supplied

Results are ranked by cmcRank when browsing and by score when searching, so don't re-sort a q result by rank — you would push the best textual match down the list.

Resolving an asset

Many tickers are reused by unrelated tokens, and scam tokens deliberately clone popular symbols. To resolve reliably:

  1. If you have a contract address, search by it. ?contractAddress=0x… is exact and unambiguous.
  2. Otherwise search by q and disambiguate on chains and cmcRank. A legitimate token normally has a rank; a clone usually does not.

Then use the returned id — writing a transaction with a symbol alone leaves the asset to be resolved server-side, which can match the wrong token.