DeploymentSupported Chains

Supported Chains

web3market-kit supports the following EVM-compatible chains. Chain definitions are in the chains record exported from @web3marketlabs/sdk.

Chain Reference

ChainChain IDTypeExplorer
Ethereum1Mainnetetherscan.io
Sepolia11155111Testnetsepolia.etherscan.io
Arbitrum One42161Mainnetarbiscan.io
Arbitrum Sepolia421614Testnetsepolia.arbiscan.io
Base8453Mainnetbasescan.org
Base Sepolia84532Testnetsepolia.basescan.org
Polygon137Mainnetpolygonscan.com
Polygon Amoy80002Testnetamoy.polygonscan.com
OP Mainnet10Mainnetoptimistic.etherscan.io
OP Sepolia11155420Testnetsepolia-optimistic.etherscan.io
Anvil (local)31337Local

CLI Chain Name Mapping

When using w3m deploy --chain <name>, pass one of the following chain names. The CLI resolves the name to the corresponding chain ID internally.

CLI NameChain ID
ethereum1
sepolia11155111
arbitrum42161
arbitrum-sepolia421614
base8453
base-sepolia84532
polygon137
polygon-amoy80002
optimism10
optimism-sepolia11155420
# Deploy to Sepolia testnet
w3m deploy --chain sepolia
 
# Deploy to Base mainnet (requires Pro tier)
w3m deploy --chain base
 
# Deploy to Arbitrum Sepolia testnet
w3m deploy --chain arbitrum-sepolia

RPC URL Configuration

The CLI expects an environment variable for each chain’s RPC URL. The variable name is derived from the chain name in uppercase with hyphens replaced by underscores, suffixed with _RPC_URL:

# .env
SEPOLIA_RPC_URL=https://rpc.sepolia.org
ETHEREUM_RPC_URL=https://eth.llamarpc.com
BASE_RPC_URL=https://mainnet.base.org
ARBITRUM_SEPOLIA_RPC_URL=https://sepolia-rollup.arbitrum.io/rpc

Tier Requirements

Not all chains are available on every tier.

TierAvailable Chains
FreeAll testnets (Sepolia, Arbitrum Sepolia, Base Sepolia, Polygon Amoy, OP Sepolia) + Anvil local (31337)
ProAll chains including mainnets (Ethereum, Arbitrum One, Base, Polygon, OP Mainnet)
EnterpriseAll chains
⚠️

Deploying to a mainnet chain on the Free tier returns an error from the API preflight check. Upgrade to Pro at web3.market/pricing.

Custom Chains

Custom chains can be configured in kit.config.ts under the chains.targets section by providing a chain ID and RPC URL:

import { defineConfig } from '@web3marketlabs/config'
 
export default defineConfig({
  chains: {
    default: 'mychain',
    targets: {
      mychain: {
        chainId: 12345,
        rpcUrl: 'https://rpc.mychain.example.com',
      },
    },
  },
})

Programmatic Chain Lookup

Use getChain() from @web3marketlabs/sdk to look up chain configuration by name or ID:

import { getChain } from '@web3marketlabs/sdk'
 
const ethereum = getChain('ethereum')      // by name
const sepolia = getChain(11155111)          // by chain ID
 
console.log(ethereum?.name)                // 'Ethereum'
console.log(sepolia?.blockExplorers?.default.url) // 'https://sepolia.etherscan.io'