Skip to main content
Cosmos EVM provides full Ethereum compatibility for Cosmos SDK chains. Existing contracts, tools, and workflows run without modification: deploy Solidity contracts, connect MetaMask, and use the same libraries and frameworks you already know.

Key Compatibility Areas

Cosmos EVM maintains all critical EVM behaviors that developers expect. The table below shows how we’ve addressed each compatibility requirement.
FeatureEthereum BehaviorCosmos EVM ImplementationCompatible?
Transaction OrderingGas price + nonce orderingFee priority + nonce ordering with configurable MinTipYes
Multiple Txs per BlockMultiple per accountMultiple per accountYes
Mempool BehaviorPending pool for transactionsExperimentalEVMMempool with unified EVM/Cosmos poolsYes
Nonce ManagementSequential nonce enforcementSequential nonce enforcement with gap queuingYes
EIP-1559 (Dynamic Fees)Base fee + priority feeBase fee + priority fee (distributed, not burned)Yes
EIP-7702 (Set Code)Account code delegationFull support with authorization listsYes
Address Format0x addresses0x addresses (+ cosmos1 alias)Yes
Smart ContractsEVM bytecode executionFull EVM bytecode executionYes
Gas MeteringStandard gas costsStandard gas costsYes
Event LogsEthereum event systemFull event compatibilityYes
JSON-RPC APIStandard Ethereum RPCFull RPC implementationYes
Block Time12 seconds1-2 secondsFaster
Finality12+ blocks (~3min)1 block (~2s)Instant
ReorganizationsPossibleNot possibleMore secure
Cross-chainBridge protocolsNative IBCEnhanced
You can build on Cosmos EVM exactly like you would on Ethereum. Every essential feature works identically, from deploying contracts to managing transactions. The enhancements (faster blocks, instant finality, IBC) are pure additions that don’t break any existing patterns or workflows.

Supported EIPs

Cosmos EVM supports all standard EVM opcodes up to the Prague hard fork. The following are notable examples; the full list is much longer.
EIPNamePurpose
EIP-155Replay ProtectionChain ID in signatures prevents cross-chain replay attacks
EIP-712Typed Structured Data SigningSign structured data, human-readable messages, and custom Cosmos transactions
EIP-1559Dynamic FeesBase fee + priority fee model; base fee is distributed to validators rather than burned
EIP-2535Diamond StandardProxy pattern for upgradeable contracts with multiple implementation facets
EIP-2935Historical Block HashesBLOCKHASH opcode provides access to up to 8192 previous block hashes (configurable)
EIP-4337Account AbstractionSmart contract wallets can pay fees, batch transactions, and use custom auth schemes
EIP-7702Set Code for EOATemporarily assigns contract code to an EOA for sponsored transactions and complex auth
For a complete list, see the Ethereum Improvement Proposal documentation.

Supported ERCs

Cosmos EVM supports all standard ERC token interfaces. The following are the most commonly used—any ERC standard that runs on the EVM is compatible.
  • ERC-20 — Fungible Tokens: Standard interface for currency representations with transfer, approval, and allowance mechanisms.
  • ERC-721 — Non-Fungible Tokens: Standard for unique asset identifiers, digital certificates, or proof of ownership records.
  • ERC-1155 — Multi-Token Standard: Supports both fungible and non-fungible assets in a single contract, enabling batch operations and reduced deployment costs for complex asset systems.

Supported Opcodes

Cosmos EVM supports all EVM opcodes up to the Prague hard fork. For the full reference, see evm.codes. The following are not supported:
  • EIP-4844 — Blob-Carrying Transactions: Blob data and L2-specific functionality.
  • EIP-4399 — PREVRANDAO: The replacement of the DIFFICULTY opcode with PREVRANDAO.

Supported Tools

You can build on Cosmos EVM exactly as you would on Ethereum. Solidity contracts compile and deploy unchanged, and the full standard toolchain is supported without any custom configuration.
ToolCategoryDocs
Hardhat, Foundry, RemixContract developmentTooling guides
OpenZeppelinSmart contract librariesTooling guides
Forge, Hardhat testTesting & fuzzingTesting guide
MetaMask, WalletConnect, RabbyWalletsWallet integration
ethers.js, viem, web3.js, wagmiJavaScript librariesTooling guides
BlockscoutBlock explorerBlock explorers
Any tool that connects to a standard Ethereum JSON-RPC endpoint is compatible with Cosmos EVM.

Capabilities Beyond Ethereum

The following features come on top of full Ethereum compatibility. None of the following change how existing contracts or tooling behave, but instead they add additional capabilities.

Finality

Cosmos EVM transactions are final after one block (~2 seconds) via CometBFT consensus—no waiting for confirmations, no reorganizations possible. The validator set requires 2/3+ stake agreement for any block to be committed.

Gas & fees

Cosmos EVM uses EIP-1559 dynamic fees. Unlike Ethereum, the base fee is distributed to validators and delegators rather than burned. The base fee can also be disabled entirely via the NoBaseFee parameter, and a chain-wide minimum gas price floor is configurable.

Address system

Every account has two representations that reference the same underlying key:
Ethereum: 0x742d35cc6644c068532fddb11B4C36A58D6D3eAb
Cosmos:   cosmos1wskntvnryr5qxpe4tv5k64rhc6kx6ma4dxjmav

Chain IDs

Cosmos EVM uses two independent chain IDs: a Cosmos Chain ID (string, e.g. cosmosevm-1) and an EVM Chain ID (integer, e.g. 9000). These are configured separately, unlike legacy Ethermint where the format was coupled.

Precompiled Contracts

Key Precompile Addresses

FunctionAddress
Staking0x0000000000000000000000000000000000000800
Distribution0x0000000000000000000000000000000000000801
IBC Transfer0x0000000000000000000000000000000000000802
Bank0x0000000000000000000000000000000000000804
Governance0x0000000000000000000000000000000000000805

JSON-RPC API

Ethereum RPC Compatibility

Most standard Ethereum JSON-RPC methods are supported, with some returning stub values for compatibility. View the complete reference.
Core functionality for developers:
  • All standard transaction methods (eth_sendRawTransaction, eth_call, eth_estimateGas)
  • Block and receipt queries
  • Account balances and nonces
  • Event logs and filters
  • Web3 utilities and net info
  • Debug namespace (partial - tracing and profiling methods available)
  • Websocket subscription support
Implementation notes:
  • Some methods return stub values for compatibility (e.g., eth_gasPrice returns 0)
  • Mining-related methods are not applicable (Cosmos uses CometBFT consensus)
  • txpool methods require experimental mempool configuration
  • Debug namespace includes functional tracing and profiling tools

Performance

Cosmos EVM gas estimation is optimized: plain ETH transfers return 21000 immediately without simulation, and complex transactions use initial execution results to tighten the binary search bounds, making eth_estimateGas significantly faster across the board. The Cosmos EVM mempool follows standard Ethereum behavior (gas price + nonce ordering, multiple transactions per account per block). Pool limits, timeouts, and priority functions are configurable per chain. An optional experimental mempool adds nonce gap handling and automatic transaction promotion.

Resources