Skip to content

supportedChains

const supportedChains: readonly [{ blockExplorers: { default: { apiUrl: "https://api.etherscan.io/v2/api"; name: "PolygonScan"; url: "https://polygonscan.com"; }; }; blockTime: 2000; blockTimeMs: number; contracts: { multicall3: { address: "0xca11bde05977b3631167028862be2a173976ca11"; blockCreated: 25770160; }; }; custom?: Record<string, unknown>; defaultConfirmations: number; ensTlds?: readonly string[]; experimental_preconfirmationTime?: number; extendSchema?: Record<string, unknown>; fees?: ChainFees<undefined>; formatters?: undefined; id: 137; isTestnet: false; name: "Polygon"; nativeCurrency: { decimals: 18; name: "POL"; symbol: "POL"; }; prepareTransactionRequest?: ((args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>) | [(args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>, object]; rpcUrls: { default: { http: readonly ["https://polygon.drpc.org"]; }; }; serializers?: ChainSerializers<undefined, TransactionSerializable<bigint, number>>; sourceId?: number; testnet?: boolean; verifyHash?: (client, parameters) => Promise<boolean>; }, { blockExplorers: { default: { apiUrl: "https://api.etherscan.io/v2/api"; name: "PolygonScan"; url: "https://amoy.polygonscan.com"; }; }; blockTime?: number; blockTimeMs: number; contracts: { multicall3: { address: "0xca11bde05977b3631167028862be2a173976ca11"; blockCreated: 3127388; }; }; custom?: Record<string, unknown>; defaultConfirmations: number; ensTlds?: readonly string[]; experimental_preconfirmationTime?: number; extendSchema?: Record<string, unknown>; fees?: ChainFees<undefined>; formatters?: undefined; id: 80002; isTestnet: true; name: "Polygon Amoy"; nativeCurrency: { decimals: 18; name: "POL"; symbol: "POL"; }; prepareTransactionRequest?: ((args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>) | [(args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>, object]; rpcUrls: { default: { http: readonly ["https://rpc-amoy.polygon.technology"]; }; }; serializers?: ChainSerializers<undefined, TransactionSerializable<bigint, number>>; sourceId?: number; testnet: true; verifyHash?: (client, parameters) => Promise<boolean>; }, { blockExplorers: { default: { apiUrl: "https://api-cypress.klaytnscope.com/api"; name: "KaiaScan"; url: "https://kaiascan.io"; }; }; blockTime?: number; blockTimeMs: number; contracts: { multicall3: { address: "0xcA11bde05977b3631167028862bE2a173976CA11"; blockCreated: 96002415; }; }; custom?: Record<string, unknown>; defaultConfirmations: number; ensTlds?: readonly string[]; experimental_preconfirmationTime?: number; extendSchema?: Record<string, unknown>; fees?: ChainFees<undefined>; formatters?: undefined; id: 8217; isTestnet: false; name: "Kaia"; nativeCurrency: { decimals: 18; name: "Kaia"; symbol: "KAIA"; }; prepareTransactionRequest?: ((args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>) | [(args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>, object]; rpcUrls: { default: { http: readonly ["https://public-en.node.kaia.io"]; }; }; serializers?: ChainSerializers<undefined, TransactionSerializable<bigint, number>>; sourceId?: number; testnet?: boolean; verifyHash?: (client, parameters) => Promise<boolean>; }, { blockExplorers: { default: { name: "KaiaScan"; url: "https://kairos.kaiascan.io"; }; }; blockTime?: number; blockTimeMs: number; contracts: { multicall3: { address: "0xcA11bde05977b3631167028862bE2a173976CA11"; blockCreated: 123390593; }; }; custom?: Record<string, unknown>; defaultConfirmations: number; ensTlds?: readonly string[]; experimental_preconfirmationTime?: number; extendSchema?: Record<string, unknown>; fees?: ChainFees<undefined>; formatters?: undefined; id: 1001; isTestnet: true; name: "Kairos Testnet"; nativeCurrency: { decimals: 18; name: "Kairos KAIA"; symbol: "KAIA"; }; network: "kairos"; prepareTransactionRequest?: ((args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>) | [(args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>, object]; rpcUrls: { default: { http: readonly ["https://public-en-kairos.node.kaia.io"]; }; }; serializers?: ChainSerializers<undefined, TransactionSerializable<bigint, number>>; sourceId?: number; testnet: true; verifyHash?: (client, parameters) => Promise<boolean>; }, { blockExplorers: { default: { apiUrl: "https://api.snowtrace.io"; name: "SnowTrace"; url: "https://snowtrace.io"; }; }; blockTime: 1700; blockTimeMs: number; contracts: { multicall3: { address: "0xca11bde05977b3631167028862be2a173976ca11"; blockCreated: 11907934; }; }; custom?: Record<string, unknown>; defaultConfirmations: number; ensTlds?: readonly string[]; experimental_preconfirmationTime?: number; extendSchema?: Record<string, unknown>; fees?: ChainFees<undefined>; formatters?: undefined; id: 43114; isTestnet: false; name: "Avalanche"; nativeCurrency: { decimals: 18; name: "Avalanche"; symbol: "AVAX"; }; prepareTransactionRequest?: ((args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>) | [(args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>, object]; rpcUrls: { default: { http: readonly ["https://api.avax.network/ext/bc/C/rpc"]; }; }; serializers?: ChainSerializers<undefined, TransactionSerializable<bigint, number>>; sourceId?: number; testnet?: boolean; verifyHash?: (client, parameters) => Promise<boolean>; }, { blockExplorers: { default: { apiUrl: "https://api-testnet.snowtrace.io"; name: "SnowTrace"; url: "https://testnet.snowtrace.io"; }; }; blockTime?: number; blockTimeMs: number; contracts: { multicall3: { address: "0xca11bde05977b3631167028862be2a173976ca11"; blockCreated: 7096959; }; }; custom?: Record<string, unknown>; defaultConfirmations: number; ensTlds?: readonly string[]; experimental_preconfirmationTime?: number; extendSchema?: Record<string, unknown>; fees?: ChainFees<undefined>; formatters?: undefined; id: 43113; isTestnet: true; name: "Avalanche Fuji"; nativeCurrency: { decimals: 18; name: "Avalanche Fuji"; symbol: "AVAX"; }; prepareTransactionRequest?: ((args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>) | [(args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>, object]; rpcUrls: { default: { http: readonly ["https://api.avax-test.network/ext/bc/C/rpc"]; }; }; serializers?: ChainSerializers<undefined, TransactionSerializable<bigint, number>>; sourceId?: number; testnet: true; verifyHash?: (client, parameters) => Promise<boolean>; }, { blockExplorers: { default: { apiUrl: "https://api.etherscan.io/api"; name: "Etherscan"; url: "https://etherscan.io"; }; }; blockTime: 12000; blockTimeMs: number; contracts: { ensUniversalResolver: { address: "0xeeeeeeee14d718c2b47d9923deab1335e144eeee"; blockCreated: 23085558; }; multicall3: { address: "0xca11bde05977b3631167028862be2a173976ca11"; blockCreated: 14353601; }; }; custom?: Record<string, unknown>; defaultConfirmations: number; ensTlds?: readonly string[]; experimental_preconfirmationTime?: number; extendSchema?: Record<string, unknown>; fees?: ChainFees<undefined>; formatters?: undefined; id: 1; isTestnet: false; name: "Ethereum"; nativeCurrency: { decimals: 18; name: "Ether"; symbol: "ETH"; }; prepareTransactionRequest?: ((args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>) | [(args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>, object]; rpcUrls: { default: { http: readonly ["https://eth.merkle.io"]; }; }; serializers?: ChainSerializers<undefined, TransactionSerializable<bigint, number>>; sourceId?: number; testnet?: boolean; verifyHash?: (client, parameters) => Promise<boolean>; }, { blockExplorers: { default: { apiUrl: "https://api-sepolia.etherscan.io/api"; name: "Etherscan"; url: "https://sepolia.etherscan.io"; }; }; blockTime?: number; blockTimeMs: number; contracts: { ensUniversalResolver: { address: "0xeeeeeeee14d718c2b47d9923deab1335e144eeee"; blockCreated: 8928790; }; multicall3: { address: "0xca11bde05977b3631167028862be2a173976ca11"; blockCreated: 751532; }; }; custom?: Record<string, unknown>; defaultConfirmations: number; ensTlds?: readonly string[]; experimental_preconfirmationTime?: number; extendSchema?: Record<string, unknown>; fees?: ChainFees<undefined>; formatters?: undefined; id: 11155111; isTestnet: true; name: "Sepolia"; nativeCurrency: { decimals: 18; name: "Sepolia Ether"; symbol: "ETH"; }; prepareTransactionRequest?: ((args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>) | [(args, options) => Promise<PrepareTransactionRequestParameters<Chain | undefined, Account | undefined, Chain | undefined, `0x${string}` | Account | undefined, PrepareTransactionRequestRequest<Chain | undefined, Chain | undefined, Chain | undefined>>>, object]; rpcUrls: { default: { http: readonly ["https://11155111.rpc.thirdweb.com"]; }; }; serializers?: ChainSerializers<undefined, TransactionSerializable<bigint, number>>; sourceId?: number; testnet: true; verifyHash?: (client, parameters) => Promise<boolean>; }]

Defined in: src/chains/index.ts:39

All chains kawasekit supports, in priority order (CLAUDE.md chain priority: Polygon → Kaia → Avalanche → Ethereum, each with its testnet).

Exposed as a readonly tuple — not a Map — so that bundlers can tree-shake chains a consumer never references.

JPYC liveness is a separate axis (src/tokens/jpyc.ts): a chain can be supported here while JPYC is not yet live on it (Avalanche Fuji / Sepolia).

Example

import { supportedChains } from "kawasekit";
for (const chain of supportedChains) {
console.log(chain.id, chain.name);
}