The Supported Chains endpoint provides realtime information about which blockchains are supported by Sim’s EVM API endpoints.
Chain support varies by API endpoint. Use the dropdown below to check which chains are available for each API:
You can programmatically retrieve the list of supported chains to adapt to newly supported networks.
The response includes the chain’s name, chain_id, an array of tags, and support for each endpoint.
Each endpoint (balances, transactions, activity, etc.) has a supported boolean value
Copy
Ask AI
curl --request GET \ --url https://api.sim.dune.com/v1/evm/supported-chains \ --header 'X-Sim-Api-Key: YOUR_API_KEY'
The tags property is used to categorize chains and make it easier to filter them in other API endpoints.
When using the chain_ids parameter in other endpoints, you can get:
Specific chain IDs: ?chain_ids=1,137,42161 (Ethereum, Polygon, Arbitrum)
All chains: ?chain_ids=all (returns all chains supported by that endpoint)
By tags: ?chain_ids=mainnet or ?chain_ids=mainnet,testnet (returns chains with those tags)
Default behavior: If no chain_ids parameter is provided, endpoints return chains tagged as “default”
This example shows how to fetch supported chains and create a user-friendly dropdown menu that filters chains based on their capabilities.
It can be useful for wallet UIs or dApp chain selection.
Copy
Ask AI
// Fetch supported chains and build a dropdown for usersasync function buildChainSelector() { const response = await fetch('https://api.sim.dune.com/v1/evm/supported-chains', { headers: { 'X-Sim-Api-Key': 'YOUR_API_KEY' } }); const data = await response.json(); // Filter chains that support balances const supportedChains = data.chains.filter(chain => chain.balances.supported); // Build dropdown options const chainOptions = supportedChains.map(chain => ({ value: chain.chain_id, label: `${chain.name} (${chain.chain_id})`, isMainnet: chain.tags.includes('mainnet') })); return chainOptions;}
This example demonstrates how to validate whether a specific chain supports a particular endpoint before making API calls.
This helps prevent errors and improves user experience by showing appropriate messages.
Copy
Ask AI
async function validateChainSupport(chainId, endpointName) { // Check if a chain supports a specific endpoint before making requests try { const response = await fetch('https://api.sim.dune.com/v1/evm/supported-chains', { headers: { 'X-Sim-Api-Key': 'YOUR_API_KEY' } }); const data = await response.json(); // Find the chain const chain = data.chains.find(c => c.chain_id === chainId); if (!chain) { return { supported: false, message: `Chain ${chainId} not found` }; } // Check if the endpoint is supported if (!chain[endpointName] || !chain[endpointName].supported) { return { supported: false, message: `Endpoint '${endpointName}' not supported on ${chain.name}` }; } return { supported: true, message: `Chain ${chain.name} supports ${endpointName}` }; } catch (error) { return { supported: false, message: `Error validating chain: ${error.message}` }; }}// Usageconst result = await validateChainSupport(1, 'balances');console.log(result.message); // "Chain ethereum supports balances"