> ## Documentation Index
> Fetch the complete documentation index at: https://seilabs-docs-evm-cookbook.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# EVM Compatibility

> EVM feature support on Sei — what works, what differs from Ethereum, and what is not available

# EVM compatibility

This page documents EVM feature support on Sei. Each row shows whether a feature works as it does on standard Ethereum, behaves differently in a documented way, or is not available on Sei.

Standard EVM tools (viem, wagmi, ethers, Foundry, and Hardhat) work on Sei for all rows marked **Supported**. Where Sei differs from Ethereum, the notes describe the difference so that you can account for it in your application.

## Status legend

| Status | Meaning |
| - | - |
| Supported | Works on Sei EVM with standard Ethereum behavior. |
| Supported with differences | Available on Sei, but intentionally differs from Ethereum. See the notes. |
| Sei extension | A Sei-specific feature with no standard Ethereum equivalent. |
| Not supported | Not available on Sei EVM. |

## Transactions

| Feature | Sei status | Notes |
| - | - | - |
| Legacy transactions (type 0) | Supported with differences | The minimum gas price comes from Sei governance parameters, not a fixed floor. [See Gas and Fees.](/evm/evm-parity/gas-and-fees) |
| EIP-2930 access list transactions (type 1) | Supported | |
| EIP-1559 fee market transactions (type 2) | Supported with differences | Sei does not burn the base fee. Fees go to validators instead. [See Gas and Fees.](/evm/evm-parity/gas-and-fees) |
| EIP-4844 blob transactions (type 3) | Not supported | Sei runs Pectra without blob transactions. [See Transaction Types.](/evm/evm-parity/transaction-types) |
| EIP-7702 set-code transactions (type 4) | Supported | |

## Account and state

| Feature | Sei status | Notes |
| - | - | - |
| `eth_getBalance` | Supported | |
| `eth_getTransactionCount` (nonce) | Supported | |
| `eth_getCode` | Supported | |
| `eth_getStorageAt` | Supported with differences | Governance can adjust the SSTORE cost. Do not hard-code gas assumptions. [See Gas and Fees.](/evm/evm-parity/gas-and-fees) |
| `eth_getProof` | Supported with differences | Returns IAVL proof data, not Ethereum Merkle Patricia Trie proofs. Proof verification logic must account for this. Proofs resolve across the supported store backends (classic IAVL, store/v2 memiavl, and other proof-capable queryable stores). As a result, the method works across a broader range of node configurations. [See State Proofs.](/evm/evm-parity/state-proofs) |

## Blocks and finality

| Feature | Sei status | Notes |
| - | - | - |
| `eth_getBlockByHash`, `eth_getBlockByNumber` | Supported | |
| `eth_blockNumber` | Supported | |
| Finality tags (`latest`, `safe`, `finalized`) | Supported with differences | Sei has instant finality. All three tags refer to the same commitment level. [See Finality.](/evm/evm-parity/finality) |
| Pending block state | Supported with differences | Sei does not guarantee Ethereum-style pending state visibility. Do not rely on pending transaction ordering. [See Finality.](/evm/evm-parity/finality) |

## Logs, filters, and subscriptions

| Feature | Sei status | Notes |
| - | - | - |
| `eth_getLogs` | Supported | |
| Filter lifecycle (`eth_newFilter`, `eth_getFilterChanges`, `eth_getFilterLogs`, `eth_uninstallFilter`) | Supported | |
| WebSocket subscriptions (`eth_subscribe`) | Supported | [See WebSocket Connections.](/evm/evm-parity/websocket) |

## Execution and simulation

| Feature | Sei status | Notes |
| - | - | - |
| `eth_call` | Supported | |
| `eth_estimateGas` | Supported | |
| `debug_traceTransaction` | Supported | |
| Block-level tracing | Supported | |

## Signing

| Feature | Sei status | Notes |
| - | - | - |
| EIP-155 replay protection | Supported | |
| Personal sign (`personal_sign`, `eth_sign`) | Supported | Depends on whether the connected wallet exposes the method. [See Signing.](/evm/evm-parity/signing) |
| EIP-712 typed data signing (`eth_signTypedData_v4`) | Supported | Depends on whether the connected wallet exposes the method. [See Signing.](/evm/evm-parity/signing) |
| EIP-1271 contract signature validation | Supported | [See Signing.](/evm/evm-parity/signing) |

## Token standards

| Feature | Sei status | Notes |
| - | - | - |
| ERC-20 | Supported | |
| ERC-721 | Supported | |
| ERC-1155 | Supported | |

## Account abstraction

| Feature | Sei status | Notes |
| - | - | - |
| ERC-4337 | Supported | Requires a compatible bundler. Sei EVM is ERC-4337 compatible. |

## Name services

| Feature | Sei status | Notes |
| - | - | - |
| ENS | Not supported | Sei does not run Ethereum mainnet ENS. You can deploy application-level name services as contracts. |

## Sei extensions

These features are specific to Sei and have no standard Ethereum equivalent. The `@sei-js` packages expose them as a layer on top of standard EVM tooling.

| Feature | Notes |
| - | - |
| Sei precompiles (staking, governance, distribution, P256, JSON, Solo, pointers, and the CosmWasm bridge) | EVM contracts at deterministic addresses. `@sei-js/precompiles` exports the ABIs and contract addresses for use with any standard EVM library. It does not export the retired Oracle and disabled IBC precompiles. |
| Pointer contracts (CW20 ↔ ERC-20, CW721 ↔ ERC-721, CW1155 ↔ ERC-1155) | Bridge between CosmWasm and EVM token standards. Standard ERC interfaces work with pointer contracts. To look up a pointer, use `POINTERVIEW_PRECOMPILE_ADDRESS` (`0x…100A`). To register a pointer, use `POINTER_PRECOMPILE_ADDRESS` (`0x…100B`). |
| Native address association (EVM ↔ Cosmos address) | Links an EVM address and a Cosmos address for the same account. Some Sei-native flows require this association first. |

## Unsupported RPC methods

These JSON-RPC methods are not available on Sei or return errors:

### Blob / EIP-4844

| Method | Reason |
| - | - |
| `eth_blobBaseFee` | Sei runs Pectra without blob transaction support. This method does not exist on Sei. |
| `engine_getBlobsV1` | Sei does not support blob data availability endpoints. |

### Pending state

| Method | Behavior on Sei |
| - | - |
| `eth_getBlockByNumber("pending")` | Returns `null` or the latest committed block. Sei does not maintain an Ethereum-style pending block. |
| `eth_getTransactionCount(address, "pending")` | Returns the same value as `"latest"`. On Sei, the pending nonce is the same as the confirmed nonce. |
| `eth_newPendingTransactionFilter` | You can create the filter, but it does not reliably emit pending transactions. Use `eth_newBlockFilter` or WebSocket block subscriptions instead. |
| `eth_subscribe("newPendingTransactions")` | Supported at the RPC level, but Sei does not guarantee Ethereum-style pending transaction visibility. Treat the results as best effort. |

### Proof verification

| Method | Behavior on Sei |
| - | - |
| `eth_getProof` | Returns IAVL tree proofs, not Ethereum Merkle Patricia Trie proofs. The method works, but the proof format is not compatible with standard Ethereum MPT verifiers. [See State Proofs.](/evm/evm-parity/state-proofs) |

### Deprecated / removed opcodes

| Method | Reason |
| - | - |
| `eth_accounts` | Returns an empty array on Sei RPC nodes. To get accounts from the connected user's wallet, use a wallet library (`eth_requestAccounts`) instead. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.