Skip to main content
Version: Endpoint V2

List tokens

Returns tokens supported by the Value Transfer API. Use query parameters to filter for tokens transferrable from a specific source chain and token.

GET/tokens

Returns a paginated list of tokens supported by the Value Transfer API. Use optional filters to narrow down results by chain or source token.
Query ParametersValue
transferrableFromChainKey
string
Filter tokens by source chain (for example, 'ethereum', 'arbitrum')
transferrableFromTokenAddress
string
Filter by source token address
Response
{
"tokens": [
{
"isSupported": true,
"chainKey": "ethereum",
"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
"decimals": 18,
"symbol": "ETH",
"name": "Ethereum"
}
],
"pagination": {}
}

Reference

Parameters

ParameterTypeRequiredDescription
transferrableFromChainKeystringNoSource chain key (for example, base, ethereum). Must be combined with transferrableFromTokenAddress.
transferrableFromTokenAddressstringNoSource token address. Must be combined with transferrableFromChainKey.
pagination[nextToken]stringNoPagination cursor from previous response
Validate transfer routes

Provide both transferrableFromChainKey and transferrableFromTokenAddress to get only destination tokens you can transfer to.

Response

Returns a tokens array and a pagination object.

Attributes

AttributeTypeDescription
isSupportedbooleanWhether the token is available for transfers
chainKeystringChain identifier (for example, ethereum, base)
addressstringToken contract address
decimalsnumberToken decimal places
symbolstringToken symbol (for example, ETH, USDC)
namestringFull token name
logoUrlstringOptional token logo URL
priceobjectOptional price information
price.usdnumberCurrent price in USD

Code examples

List all tokens

Returns the complete token catalog across all chains.

curl -X GET "https://transfer.layerzero-api.com/v1/tokens"

List transferrable destinations

Returns only tokens you can transfer to from a specific source.

curl -X GET "https://transfer.layerzero-api.com/v1/tokens?transferrableFromChainKey=base&transferrableFromTokenAddress=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"

Response

{
"tokens": [
{
"isSupported": true,
"chainKey": "ethereum",
"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
"decimals": 18,
"symbol": "ETH",
"name": "Ether",
"logoUrl": "https://...",
"price": {
"usd": 2500.5
}
},
{
"isSupported": true,
"chainKey": "arbitrum",
"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
"decimals": 18,
"symbol": "ETH",
"name": "Ether",
"price": {
"usd": 2500.5
}
}
],
"pagination": {}
}

Validate transfer routes

Check if a transfer route exists before requesting quotes:

async function validatePath(
srcChain: string,
srcToken: string,
dstChain: string,
dstToken: string,
): Promise<boolean> {
const params = new URLSearchParams({
transferrableFromChainKey: srcChain,
transferrableFromTokenAddress: srcToken,
});

const response = await fetch(`https://transfer.layerzero-api.com/v1/tokens?${params}`);
const {tokens} = await response.json();

return tokens.some(
(t) => t.chainKey === dstChain && t.address.toLowerCase() === dstToken.toLowerCase(),
);
}

const isSupported = await validatePath(
'base',
'0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
'arbitrum',
'0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
);
  • Chains — List supported blockchain networks
  • Quotes — Request transfer quotes for validated routes