get_supported_chains
Retrieve all blockchain networks available for USDC bridging operations, with options to filter testnet chains.
Instructions
Get all supported chains for USDC bridging
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "get_supported_chains"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| includeTestnets | No | Whether to include testnet chains |
Implementation Reference
- src/index.ts:362-383 (handler)The core handler function for the 'get_supported_chains' tool. It filters chains from the CHAIN_INFO constant based on the includeTestnets parameter and returns a list of supported chains with their details.
private async getSupportedChains(args: any): Promise<MCPToolResult> { const { includeTestnets = false } = args; const chains = Object.values(CHAIN_INFO) .filter(chain => includeTestnets || !chain.isTestnet) .map(chain => ({ chainId: chain.chainId, name: chain.name, symbol: chain.symbol, decimals: chain.decimals, logoUrl: chain.logoUrl, explorerUrl: chain.explorerUrl, isTestnet: chain.isTestnet, networkType: chain.networkType, usdcAddress: chain.usdcAddress, })); return createSuccessResponse({ chains, count: chains.length, }); } - src/index.ts:63-77 (registration)Tool registration in the ListToolsRequestSchema handler, defining the name, description, and input schema for 'get_supported_chains'.
{ name: 'get_supported_chains', description: 'Get all supported chains for USDC bridging', inputSchema: { type: 'object', properties: { includeTestnets: { type: 'boolean', description: 'Whether to include testnet chains', default: false, }, }, additionalProperties: false, }, }, - src/index.ts:66-76 (schema)Input schema definition for the 'get_supported_chains' tool, specifying optional includeTestnets boolean parameter.
inputSchema: { type: 'object', properties: { includeTestnets: { type: 'boolean', description: 'Whether to include testnet chains', default: false, }, }, additionalProperties: false, }, - src/constants/index.ts:107-344 (helper)CHAIN_INFO constant providing detailed information for all supported chains, used directly in the handler to generate the response.
export const CHAIN_INFO: Record<SupportedChainId, ChainInfo> = { [SupportedChainId.MAINNET]: { chainId: SupportedChainId.MAINNET, name: 'Ethereum', symbol: 'ETH', decimals: 18, explorerUrl: 'https://etherscan.io', isTestnet: false, networkType: 'mainnet', usdcAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.ARBITRUM_ONE]: { chainId: SupportedChainId.ARBITRUM_ONE, name: 'Arbitrum One', symbol: 'ETH', decimals: 18, explorerUrl: 'https://arbiscan.io', isTestnet: false, networkType: 'L2', usdcAddress: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.OPTIMISM]: { chainId: SupportedChainId.OPTIMISM, name: 'Optimism', symbol: 'ETH', decimals: 18, explorerUrl: 'https://optimistic.etherscan.io', isTestnet: false, networkType: 'L2', usdcAddress: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.POLYGON]: { chainId: SupportedChainId.POLYGON, name: 'Polygon', symbol: 'MATIC', decimals: 18, explorerUrl: 'https://polygonscan.com', isTestnet: false, networkType: 'L2', usdcAddress: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.AVALANCHE_C_CHAIN]: { chainId: SupportedChainId.AVALANCHE_C_CHAIN, name: 'Avalanche', symbol: 'AVAX', decimals: 18, explorerUrl: 'https://snowtrace.io', isTestnet: false, networkType: 'mainnet', usdcAddress: '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.BASE]: { chainId: SupportedChainId.BASE, name: 'Base', symbol: 'ETH', decimals: 18, explorerUrl: 'https://basescan.org', isTestnet: false, networkType: 'L2', usdcAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.SOLANA]: { chainId: SupportedChainId.SOLANA, name: 'Solana', symbol: 'SOL', decimals: 9, explorerUrl: 'https://solscan.io', isTestnet: false, networkType: 'mainnet', usdcAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', bridgeContractAddress: 'DmtW5rT97FiY1gna3e8cDjn7jzJNFVkZJsCEiaLsMj8q', }, [SupportedChainId.SUI]: { chainId: SupportedChainId.SUI, name: 'Sui', symbol: 'SUI', decimals: 9, explorerUrl: 'https://suiscan.xyz', isTestnet: false, networkType: 'mainnet', usdcAddress: '0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN', bridgeContractAddress: '0x12345...', // Replace with actual contract address }, [SupportedChainId.NOBLE]: { chainId: SupportedChainId.NOBLE, name: 'Noble', symbol: 'USDC', decimals: 6, explorerUrl: 'https://www.mintscan.io/noble', isTestnet: false, networkType: 'cosmos', usdcAddress: 'uusdc', }, [SupportedChainId.OSMOSIS]: { chainId: SupportedChainId.OSMOSIS, name: 'Osmosis', symbol: 'OSMO', decimals: 6, explorerUrl: 'https://www.mintscan.io/osmosis', isTestnet: false, networkType: 'cosmos', usdcAddress: 'ibc/498A0751C798A0D9A389AA3691123DADA57DAA4FE165D5C75894505B876BA6E4', }, // Add other chains... [SupportedChainId.EVMOS]: { chainId: SupportedChainId.EVMOS, name: 'Evmos', symbol: 'EVMOS', decimals: 18, explorerUrl: 'https://www.mintscan.io/evmos', isTestnet: false, networkType: 'cosmos', }, [SupportedChainId.SEI]: { chainId: SupportedChainId.SEI, name: 'Sei', symbol: 'SEI', decimals: 6, explorerUrl: 'https://www.mintscan.io/sei', isTestnet: false, networkType: 'cosmos', }, [SupportedChainId.COREUM]: { chainId: SupportedChainId.COREUM, name: 'Coreum', symbol: 'COREUM', decimals: 6, explorerUrl: 'https://www.mintscan.io/coreum', isTestnet: false, networkType: 'cosmos', }, [SupportedChainId.DYDX]: { chainId: SupportedChainId.DYDX, name: 'dYdX', symbol: 'DYDX', decimals: 18, explorerUrl: 'https://www.mintscan.io/dydx', isTestnet: false, networkType: 'cosmos', }, // Testnets [SupportedChainId.GOERLI]: { chainId: SupportedChainId.GOERLI, name: 'Goerli', symbol: 'ETH', decimals: 18, explorerUrl: 'https://goerli.etherscan.io', isTestnet: true, networkType: 'testnet', usdcAddress: '0x07865c6e87b9f70255377e024ace6630c1eaa37f', }, [SupportedChainId.SEPOLIA]: { chainId: SupportedChainId.SEPOLIA, name: 'Sepolia', symbol: 'ETH', decimals: 18, explorerUrl: 'https://sepolia.etherscan.io', isTestnet: true, networkType: 'testnet', usdcAddress: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', }, [SupportedChainId.SOLANA_DEVNET]: { chainId: SupportedChainId.SOLANA_DEVNET, name: 'Solana Devnet', symbol: 'SOL', decimals: 9, explorerUrl: 'https://solscan.io', isTestnet: true, networkType: 'testnet', usdcAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', }, [SupportedChainId.SUI_TESTNET]: { chainId: SupportedChainId.SUI_TESTNET, name: 'Sui Testnet', symbol: 'SUI', decimals: 9, explorerUrl: 'https://suiscan.xyz/testnet', isTestnet: true, networkType: 'testnet', usdcAddress: '0x12345...', // Replace with actual testnet address }, [SupportedChainId.NOBLE_TEST]: { chainId: SupportedChainId.NOBLE_TEST, name: 'Noble Testnet', symbol: 'USDC', decimals: 6, explorerUrl: 'https://www.mintscan.io/noble-testnet', isTestnet: true, networkType: 'testnet', usdcAddress: 'uusdc', }, [SupportedChainId.AVALANCHE_FUJI]: { chainId: SupportedChainId.AVALANCHE_FUJI, name: 'Avalanche Fuji', symbol: 'AVAX', decimals: 18, explorerUrl: 'https://testnet.snowtrace.io', isTestnet: true, networkType: 'testnet', usdcAddress: '0x5425890298aed601595a70ab815c96711a31bc65', }, [SupportedChainId.ARBITRUM_GOERLI]: { chainId: SupportedChainId.ARBITRUM_GOERLI, name: 'Arbitrum Goerli', symbol: 'ETH', decimals: 18, explorerUrl: 'https://goerli.arbiscan.io', isTestnet: true, networkType: 'testnet', usdcAddress: '0xfd064A18f3BF249cf1f87FC203E90D8f650f2d63', }, [SupportedChainId.OPTIMISM_GOERLI]: { chainId: SupportedChainId.OPTIMISM_GOERLI, name: 'Optimism Goerli', symbol: 'ETH', decimals: 18, explorerUrl: 'https://goerli-optimism.etherscan.io', isTestnet: true, networkType: 'testnet', usdcAddress: '0x12345...', // Replace with actual address }, [SupportedChainId.POLYGON_MUMBAI]: { chainId: SupportedChainId.POLYGON_MUMBAI, name: 'Polygon Mumbai', symbol: 'MATIC', decimals: 18, explorerUrl: 'https://mumbai.polygonscan.com', isTestnet: true, networkType: 'testnet', usdcAddress: '0x12345...', // Replace with actual address }, };