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.

Solidity Smart Contracts

The Cosmos EVM smart contract development flow is identical to the flow on Ethereum. Contracts that work on Ethereum work on Cosmos EVM without code changes. The same tools, the same Solidity, the same patterns.

Development

Write Solidity using Hardhat, Foundry, or Remix with no custom configuration needed. Point your tooling at your chain’s JSON-RPC endpoint and chain ID and you’re set. See the tooling overview for a full list of supported tools, and the quick-start guide for a step-by-step contract deployment walkthrough.

Deployment

Deploy using standard Ethereum tools by pointing them at your chain’s RPC endpoint. Deployment transactions go through the JSON-RPC or Cosmos gRPC interface and are processed by the EVM module. Once deployed, contract bytecode is stored in chain state and callable at its Ethereum address like any other chain.

Upgrading

Cosmos EVM supports all standard EVM upgrade patterns:
  • Proxy patterns (EIP-1967, Transparent Proxy, UUPS): Delegate calls to an implementation contract. Upgrading means swapping the implementation address in the proxy without touching the proxy’s storage or address.
  • Diamond pattern (EIP-2535): Modular contracts split into “facets” that can be added, replaced, or removed independently. The diamond routes calls to the appropriate facet, enabling granular upgrades without redeploying the whole contract.
Any upgrade architecture that works on Ethereum works on Cosmos EVM.

Supported Standards

Cosmos EVM supports all standard EVM opcodes, EIPs, and ERC token interfaces up to the Prague hard fork.

EIPs

The following are notable supported EIPs; the full list is much longer.

ERCs

Any ERC standard that runs on the EVM is compatible with Cosmos EVM. The most commonly used are:
  • 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.

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.

Tooling

Any tool that connects to a standard Ethereum JSON-RPC endpoint works with Cosmos EVM without custom configuration.

JSON-RPC

The JSON-RPC interface implements the full Ethereum spec. Point any standard tool at your chain’s RPC endpoint and it works.

Ethereum RPC Compatibility

Most standard Ethereum JSON-RPC methods are supported, with some returning stub values for compatibility. Click to view the complete reference.
All standard transaction, query, and subscription methods work as expected — eth_sendRawTransaction, eth_call, eth_estimateGas, event logs and filters, WebSocket subscriptions, and the debug namespace for tracing. A few things to know:
  • eth_gasPrice returns 0 — use EIP-1559 fee fields instead
  • Mining-related methods don’t apply (consensus is handled by CometBFT)
  • txpool methods require the experimental mempool to be enabled

Beyond Ethereum

Cosmos EVM adds capabilities on top of full Ethereum compatibility. None of these change how existing contracts or tooling behave.

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:

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

Precompile Overview

Full list of built-in Cosmos precompiles and their addresses.

Add a Custom Precompile

Enable built-in precompiles or add your own to your chain.
All standard Ethereum cryptographic precompiles (ecrecover, sha256, etc.) are also supported; visit evm.codes/precompiled for the full reference.

Predeployed Contracts

Cosmos EVM ships with standard EVM infrastructure contracts already in chain state at their canonical addresses — Create2, Multicall3, Permit2, Safe Singleton Factory, and EIP-2935 block hash storage. Any tooling that depends on these contracts at their well-known addresses works without extra setup.

Predeployed Contracts

Learn which contracts are preinstalled and how to preinstall contracts at genesis.

Key Precompile Addresses

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

Quick Start

Deploy a chain and your first contract end-to-end.

Tooling & Resources

Full list of supported tools, libraries, and frameworks.

Precompile Overview

Built-in Cosmos precompiles and their addresses.

Predeployed Contracts

Standard EVM contracts available at genesis.