type Chain = {
coinKey: string; // Unique identifier
chainId: number; // EIP-155 chain ID
chainType: string; // 'evm', 'solana', 'cosmos', etc.
name: string; // Human-readable name
coin: string; // Native coin symbol
dcaContract: string; // DCA contract address
swapBridgeContract: string; // Swap/bridge contract address
logo: string; // Chain logo URL
tokenlistUrl?: string; // Token list URL
multicallAddress: string; // Multicall contract address
blockExplorerUrl: string; // Block explorer URL
nativeToken: NativeTokenInfo; // Native token details
rpcProviders: ApiRpcResponse[]; // Available RPC endpoints
pricingAvailable: boolean; // Price data available
balanceAvailable: boolean; // Balance queries supported
supportedAs: {
source: boolean; // Can be used as source chain
destination: boolean; // Can be used as destination chain
};
contracts?: Partial<{
router: string; // Swap router contract
dca: string; // DCA contract
zap: string; // Zap contract
}>;
coingecko?: {
chainKey: string; // CoinGecko chain identifier
nativeTokenKey: string; // CoinGecko native token ID
};
defiLlama?: {
chainKey: string; // DeFiLlama chain identifier
nativeTokenKey: string; // DeFiLlama native token ID
};
disableMultiTxn: boolean; // Whether multi-transaction operations are disabled
isEnabled: boolean; // Whether chain is currently enabled
mainnet: boolean; // Whether this is a mainnet chain
};