> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cosmos.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

The EVM module provides **developer and end-user Ethereum compatibility** for Cosmos-SDK based chains. All standard / common Ethereum dApps, tools, and workflows work seamlessly while gaining the benefits of Cosmos consensus and interoperability.
All the tools and workflows you rely on work exactly as they should. Deploy contracts seamlessly, connect with MetaMask, and build with Web3.js/Ethers, Hardhat, Remix, Foundry—the full Ethereum toolkit.

<Tip>
  For a detailed breakdown on **Ethereum Improvement Proposal (EIP)** support and functional comparisons, see the [EIP reference](/evm/next/documentation/evm-compatibility/eip-reference) table.
</Tip>

## Key Compatibility Focus Areas

Cosmos EVM maintains all critical EVM behaviors that developers expect. The table below shows how we've addressed each compatibility requirement.

| Feature                     | Ethereum Behavior             | Cosmos EVM Implementation                         | Compatible? |
| --------------------------- | ----------------------------- | ------------------------------------------------- | ----------- |
| **Transaction Ordering**    | Gas price + nonce ordering    | Fee priority + nonce ordering                     | Yes         |
| **Multiple Txs per Block**  | Multiple per account          | Multiple per account                              | Yes         |
| **Mempool Behavior**        | Pending pool for transactions | Standard mempool (experimental 2-tier available)  | Yes         |
| **Nonce Management**        | Sequential nonce enforcement  | Sequential nonce enforcement                      | Yes         |
| **EIP-1559 (Dynamic Fees)** | Base fee + priority fee       | Base fee + priority fee (distributed, not burned) | Yes         |
| **Address Format**          | 0x addresses                  | 0x addresses (+ cosmos1 alias)                    | Yes         |
| **Smart Contracts**         | EVM bytecode execution        | Full EVM bytecode execution                       | Yes         |
| **Gas Metering**            | Standard gas costs            | Standard gas costs                                | Yes         |
| **Event Logs**              | Ethereum event system         | Full event compatibility                          | Yes         |
| **JSON-RPC API**            | Standard Ethereum RPC         | Full RPC implementation                           | Yes         |
| **Block Time**              | 12 seconds                    | 1-2 seconds                                       | Faster      |
| **Finality**                | 12+ blocks (\~3min)           | 1 block (\~2s)                                    | Instant     |
| **Reorganizations**         | Possible                      | Not possible                                      | More secure |
| **Cross-chain**             | Bridge protocols              | Native IBC                                        | Enhanced    |

### What This Means for Developers

**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.

## Architectural Improvements Over Ethereum

### Faster & Final Transactions

**Instant Finality:** Transactions are final after one block (\~2 seconds) thanks to 'CometBFT' BFT consensus. No waiting for confirmations, no reorganizations possible.

**Validator Set:** Fixed validator set with stake-based voting power. Requires 2/3+ stake agreement for consensus.

### Gas & Fees

<Info>
  **Base Fee Distribution:** Unlike Ethereum where base fees are burned, Cosmos EVM distributes them to validators, preserving token economics.
</Info>

* **EIP-1559 Support:** Dynamic base fee adjustments based on block utilization
* **Configurable:** Base fee can be disabled (`NoBaseFee` parameter)
* **Priority Calculation:** `min(gas_tip_cap, gas_fee_cap - base_fee)`
* **Minimum Gas Price:** Chain-wide floor price configuration

### Address System

Every account has two representations:

```
Ethereum: 0x742d35cc6644c068532fddb11B4C36A58D6D3eAb
Cosmos:   cosmos1wskntvnryr5qxpe4tv5k64rhc6kx6ma4dxjmav
```

Both formats reference the same account - use either based on your needs.

### Chain ID Architecture

<Warning>
  **Two Independent Chain IDs:** Cosmos EVM uses separate chain IDs for different purposes:

  * **Cosmos Chain ID:** String format (e.g., "cosmosevm-1") for consensus/IBC
  * **EVM Chain ID:** Integer format (e.g., 9000) for MetaMask/contracts

  These are completely independent values, not derived from each other.
</Warning>

## Precompiled Contracts

<CardGroup cols={2}>
  <Card title="Cosmos Precompiles" icon="cube" href="/evm/v0.4.x/documentation/smart-contracts/precompiles">
    Access Cosmos SDK modules (staking, governance, IBC) via precompiled contracts.
  </Card>

  <Card title="Standard Precompiles" icon="shield-check">
    All Ethereum cryptographic precompiles supported (ecrecover, sha256, etc.)
  </Card>
</CardGroup>

### Key Precompile Addresses

| Function         | Address                                      |
| ---------------- | -------------------------------------------- |
| **Staking**      | `0x0000000000000000000000000000000000000800` |
| **Distribution** | `0x0000000000000000000000000000000000000801` |
| **IBC Transfer** | `0x0000000000000000000000000000000000000802` |
| **Bank**         | `0x0000000000000000000000000000000000000804` |
| **Governance**   | `0x0000000000000000000000000000000000000805` |

## JSON-RPC API

<Card title="Ethereum RPC Compatibility" icon="code" href="/evm/v0.4.x/api-reference/ethereum-json-rpc/methods">
  Most standard Ethereum JSON-RPC methods are supported, with some returning stub values for compatibility. View the complete reference.
</Card>

**Core functionality your dApp needs:**

* Essential transaction methods (`eth_sendRawTransaction`, `eth_call`, `eth_estimateGas`)
* Block and receipt queries (fully functional)
* Account balances and nonces
* Event logs and filters (basic support)
* Web3 utilities and net info
* Debug namespace (partial - tracing and profiling methods available)
* Subscription support (WebSocket)

**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

## EIP Support

<Card title="EIP Compatibility Matrix" icon="list-check" href="/evm/v0.4.x/documentation/evm-compatibility/eip-reference">
  Interactive table showing support status for all 339+ Ethereum Improvement Proposals.
</Card>

### Notable Differences

* **EIP-1559:** Base fee distributed to validators instead of burned
* **EIP-155:** Replay protection enforced at chain level
* **Custom Improvement Proposals (CIPs):** Chain-specific optimizations available

## Developer Experience

### Everything You Know Still Works

**Your Ethereum skills and tools work unchanged:**

* Deploy contracts with Hardhat, Foundry, or Remix
* Connect MetaMask and other Web3 wallets
* Use Web3.js, Ethers.js, Viem, or any Web3 library
* All ERC standards work (ERC20, ERC721, ERC1155, etc.)
* Solidity and Vyper compile and run identically
* Standard tooling like OpenZeppelin contracts work perfectly

### Additional Benefits You Get

**Enhanced capabilities without breaking compatibility:**

* **Instant Finality:** No waiting for confirmations - transactions are final in \~2 seconds
* **No Reorganizations:** Events and state changes are immediately permanent
* **Native IBC:** Built-in cross-chain communication to any Cosmos chain
* **Lower Costs:** Typically much lower gas fees than Ethereum mainnet
* **Dual Address Access:** Same account reachable via both 0x and cosmos1 formats

### Transaction Pool

**Standard Ethereum mempool behavior is fully supported.** Transactions are ordered by gas price and nonce, multiple transactions per account per block work perfectly.

<Info>
  **Optional Enhancement:** An experimental two-tiered mempool is available that adds intelligent nonce gap handling and automatic transaction promotion. This is purely optional - the standard mempool works exactly like Ethereum.
</Info>

## Migration from Ethermint/Evmos

Key breaking changes when migrating:

1. **Chain ID Format:** Cannot use Ethermint format (`evmos_9001-2`). Must configure two separate IDs.
2. **Module Names:** `x/evm` → `x/vm`
3. **Parameter Types:** Several parameter type changes (e.g., MinGasPrice: string → sdk.Dec)
4. **Precompile Addresses:** Different addresses than Ethermint

<Card title="Migration Guide" icon="arrow-up" href="/evm/v0.4.x/documentation/migrations/migration-v0.3-to-v0.4">
  Detailed steps for migrating from Ethermint-based chains.
</Card>

## Security & Reliability

**Battle-tested and audited:**

* **Security Audited:** Full audit by Sherlock (July 2025)
* **Production Ready:** Core EVM implementation is stable and deployed on multiple mainnets
* **Enhanced Security:** No reorganization attacks possible due to instant finality
* **Byzantine Fault Tolerant:** Requires 2/3+ validator stake for any state changes
* **Proven Stack:** Built on Cosmos SDK and 'CometBFT', powering hundreds of chains

## Resources

<CardGroup cols={2}>
  <Card title="Integration Guide" icon="plug" href="/evm/next/documentation/getting-started/build-a-chain/overview">
    Add EVM support to your Cosmos chain
  </Card>

  <Card title="Concepts" icon="book" href="/evm/v0.4.x/documentation/concepts">
    Deep dive into architecture and design
  </Card>

  <Card title="GitHub Repository" icon="github" href="https://github.com/cosmos/evm">
    Source code and issue tracker
  </Card>

  <Card title="Precompiles Docs" icon="code" href="/evm/v0.4.x/documentation/smart-contracts/precompiles">
    Using Cosmos functionality from contracts
  </Card>
</CardGroup>
