API reference
Crypto and on-chain
Token details and risk flags, wallet balances and transactions, and staking and lending yields.
Token metadata
/v1/tokens Chain, contract, decimals, supply, logo and the verified flag of tokens addressed by contract, like SOLANA:9BB6...pump.
Query parameters
symbolsarray of strings RequiredComma separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...
Up to 100 items
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShow 11 fields
asOftimestampThe point in time this data describes. For history and events it's the date of the newest record, or the end of your range when there are none. Live values give when they were observed, and reference data gives when we last checked it with a source
chainstringA chain id from /v1/chains
contractstringdecimalsinteger or nullgraduatedboolean or nullWhether the token has left its launchpad's bonding curve for a real pool
instrumentobjectWhat the symbol resolved to
Show 7 fields
countrystring or nullcurrencystring or nullidstringmicstring or nullnamestringsymbolstringtypestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybond
launchpadstring or nullWhere the token launched, null for most tokens
logostring or nullsupplystring or nullTotal supply as a raw on-chain integer, divide by 10^decimals for whole tokens
symbolstringThe symbol as sent
verifiedboolean or null
errorsarray of objectsShow 3 fields
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingsource_failedmessagestringsymbolstring
metaobjectShow 2 fields
creditsintegerCredits this call cost
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Token risk flags
/v1/tokens/risk Spam and scam flags on tokens, each with the reason behind it, and a score from 0 for no known risk to 100 for a certain scam. Flag codes never change meaning, so they're safe to filter on.
Query parameters
symbolsarray of strings RequiredComma separated identifiers, up to 100, like ASX:VAS, isin:AU000000VAS1 or ins_...
Up to 100 items
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShow 6 fields
asOftimestampThe point in time this data describes. For history and events it's the date of the newest record, or the end of your range when there are none. Live values give when they were observed, and reference data gives when we last checked it with a source
assessedAttimestampflagsarray of objectsShow 2 fields
flagstringOne of
honeypotmintablefreezableblacklistpausableupgradeableowner_controlhigh_taxlow_liquidityunlocked_liquidityconcentrated_holdersclosed_sourceimpersonatorspamreasonstring
instrumentobjectWhat the symbol resolved to
Show 7 fields
countrystring or nullcurrencystring or nullidstringmicstring or nullnamestringsymbolstringtypestringOne of
equityetffundindexfxcryptotokenratefuturecommoditybond
scorenumber or null0 for no known risk up to 100 for a certain scam, null when unscored
symbolstringThe symbol as sent
errorsarray of objectsShow 3 fields
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingsource_failedmessagestringsymbolstring
metaobjectShow 2 fields
creditsintegerCredits this call cost
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Wallet balances
/v1/wallets/balances Every asset held by each address or xpub on one chain, valued in currency. Amounts are raw on-chain integers as decimal strings next to their decimals. An xpub comes back as the sha256 of it and is never stored, and extended private keys are refused.
Query parameters
chainstring RequiredA chain id or alias from /v1/chains
Up to 32 characters
addressarray of strings RequiredComma separated addresses or xpubs, up to 100. Never send a private key or seed phrase
Up to 100 items
currencystringConvert every price into this ISO currency
Matches ^[A-Z]{3}$
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShow 5 fields
addressstringThe address as we read it, or xpub: and the sha256 of an xpub
asOftimestampThe point in time this data describes. For history and events it's the date of the newest record, or the end of your range when there are none. Live values give when they were observed, and reference data gives when we last checked it with a source
balancesarray of objectsShow 8 fields
addressstring or nullThe derived address, on derived rows only
amountstringRaw on-chain integer, divide by 10^decimals for whole units
assetstringnative for the chain's own coin, else the token contract
decimalsintegerpathstring or nullThe derivation path, on derived rows only
reputationstringlisted for the chain's own coin and tokens a token list knows. spam when the indexer flags it or its name advertises a site or a claim, the usual airdrop scam. unlisted for anything else
One of
listedunlistedspamsymbolstringvaluenumber or nullWhole units at the latest price. Spam is never valued, and an unlisted token only once we know it, so quote it with /v1/quotes first. Also null when the asset has no price or we couldn't price it in time, so ask again shortly for those
currencystringCurrency of every value
derivedarray of objectsAn xpub's balances split by derived address, empty for an address
Show 8 fields
addressstring or nullThe derived address, on derived rows only
amountstringRaw on-chain integer, divide by 10^decimals for whole units
assetstringnative for the chain's own coin, else the token contract
decimalsintegerpathstring or nullThe derivation path, on derived rows only
reputationstringlisted for the chain's own coin and tokens a token list knows. spam when the indexer flags it or its name advertises a site or a claim, the usual airdrop scam. unlisted for anything else
One of
listedunlistedspamsymbolstringvaluenumber or nullWhole units at the latest price. Spam is never valued, and an unlisted token only once we know it, so quote it with /v1/quotes first. Also null when the asset has no price or we couldn't price it in time, so ask again shortly for those
errorsarray of objectsShow 3 fields
addressstring or nullThe address as we read it, null when it couldn't be read, since it may have been a key
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingsource_failedmessagestring
metaobjectShow 2 fields
creditsintegerCredits this call cost
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Wallet transactions
/v1/wallets/transactions An address's or xpub's confirmed transactions, newest first, each with every transfer in it: native, token, internal and NFT transfers, or UTXO inputs and outputs. Amounts are raw on-chain integers as decimal strings. Fees are in the chain's native coin, whose decimals /v1/chains lists.
Query parameters
chainstring RequiredA chain id or alias from /v1/chains
Up to 32 characters
addressstring RequiredOne address or xpub. Never send a private key or seed phrase
Up to 256 characters
cursorstringFrom meta.nextCursor of the previous page
Up to 512 characters
limitintegerPage size
From 1 to 1000. Defaults to 100
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShow 8 fields
failedbooleanTrue when the transaction reverted and moved nothing
feestring or nullRaw amount in the chain's native coin
feePayerstring or nullNull on UTXO chains, where the inputs pay the fee together
hashstringheightintegerBlock height, or the slot on Solana
positioninteger or nullIndex within the block
timetimestamptransfersarray of objectsShow 8 fields
amountstringRaw on-chain integer, divide by 10^decimals for whole units
assetstringnative for the chain's own coin, else the token contract
decimalsintegerfromstring or nullNull on UTXO outputs
indexintegerOrders transfers of one kind within the transaction
kindstringnative is the coin a transaction moves itself, internal is the coin moved by a contract call
One of
inputoutputnativeinternaltokennfttostring or nullNull on UTXO inputs
tokenIdstring or nullSet on NFT transfers
metaobjectShow 3 fields
creditsintegerCredits this call cost
nextCursorstring or nullPass as cursor to get the next page, null on the last page
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden404 Not Found422 Unprocessable Entity429 Too Many Requests500 Internal Server Error502 Bad Gateway503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Yield pools
/v1/yields Staking, lending and liquidity pools with their size and yield, largest first. APYs are percentages, 3.2 for 3.2%.
Query parameters
chainstringA chain id or alias from /v1/chains
Up to 32 characters
protocolstringA protocol slug
Up to 64 characters
assetstringA token in the pool's symbol like ETH, or an underlying token contract
Up to 128 characters
cursorstringFrom meta.nextCursor of the previous page
Up to 512 characters
limitintegerPage size
From 1 to 1000. Defaults to 100
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShow 10 fields
apynumber or nullTotal yearly yield, the sum of apyBase and apyReward when both are known
apyBasenumber or nullYield from the pool's own activity, like fees or interest
apyRewardnumber or nullYield paid in incentive tokens
chainstringcurrencystringCurrency of tvl
idstringChain, protocol and the pool's own reference, for /v1/yields/history
protocolstringsymbolstringtvlnumber or nullTotal value locked
underlyingarray of stringsContracts of the tokens the pool holds
metaobjectShow 3 fields
creditsintegerCredits this call cost
nextCursorstring or nullPass as cursor to get the next page, null on the last page
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.
Pool yield history
/v1/yields/history Each pool's daily size and yield, as of the end of each UTC day. History length doesn't change the price.
Query parameters
poolarray of strings RequiredComma separated pool ids from /v1/yields, up to 100
Up to 100 items
fromdateFirst day, YYYY-MM-DD
todateLast day, YYYY-MM-DD
freshbooleanSkip our cache and fetch from sources. Items fetched fresh cost double
formatstringResponse format
One of
jsoncsvDefaults to json
Response
dataarray of objectsShow 4 fields
asOftimestampThe point in time this data describes. For history and events it's the date of the newest record, or the end of your range when there are none. Live values give when they were observed, and reference data gives when we last checked it with a source
currencystringCurrency of tvl
pointsarray of objectsShow 5 fields
apynumber or nullTotal yearly yield, the sum of apyBase and apyReward when both are known
apyBasenumber or nullYield from the pool's own activity, like fees or interest
apyRewardnumber or nullYield paid in incentive tokens
datedatetvlnumber or nullTotal value locked
poolstringThe pool id as sent
errorsarray of objectsShow 3 fields
codestringOne of
invalid_symbolinstrument_not_foundnot_supporteddata_unavailabledata_pendingsource_failedmessagestringpoolstring
metaobjectShow 2 fields
creditsintegerCredits this call cost
requestIdstring
Errors
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden422 Unprocessable Entity429 Too Many Requests500 Internal Server Error503 Service Unavailable
Every error body is problem+json with a stable code. See errors.