Documentation Index
Fetch the complete documentation index at: https://seilabs-docs-evm-reference-and-sei-js-examples.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
EVM Compatibility
This page documents Sei’s EVM feature support. Each row shows whether a capability works as on standard Ethereum, behaves differently in a documented way, or is not available on Sei.
Standard EVM tooling — viem, wagmi, ethers, Foundry, Hardhat — works on Sei for all rows marked Supported. Where Sei differs from Ethereum, the difference is noted so you can account for it in your application.
Status Legend
| Status | Meaning |
|---|
| Supported | Works on Sei EVM with standard Ethereum behavior. |
| Supported — differences | Available on Sei, but intentionally differs from Ethereum. See the notes. |
| Sei extension | A Sei-specific capability with no standard Ethereum equivalent. |
| Not supported | Not available on Sei EVM. |
Transactions
| Feature | Sei status | Notes |
|---|
| Legacy transactions (type 0) | Supported — differences | Minimum gas price is set by Sei governance parameters, not a fixed floor. See Gas and Fees. |
| EIP-2930 access list transactions (type 1) | Supported | |
| EIP-1559 fee market transactions (type 2) | Supported — differences | No base-fee burning. Fees go to validators rather than being burned. See Gas and Fees. |
| EIP-4844 blob transactions (type 3) | Not supported | Sei runs Pectra without blob transactions. See 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 — differences | SSTORE cost is governance-adjustable; do not hard-code gas assumptions. See Gas and Fees. |
eth_getProof | Supported — differences | Returns IAVL proof data rather than Ethereum Merkle Patricia Trie proofs. Proof verification logic must account for this. See State Proofs. |
Blocks and Finality
| Feature | Sei status | Notes |
|---|
eth_getBlockByHash, eth_getBlockByNumber | Supported | |
eth_blockNumber | Supported | |
Finality tags (latest, safe, finalized) | Supported — differences | Sei has instant finality. All three tags refer to the same commitment level. See Finality. |
| Pending block state | Supported — differences | Ethereum-style pending state visibility is not guaranteed. Do not rely on pending transaction ordering. See 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. |
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 the connected wallet exposing the method. See Signing. |
EIP-712 typed data signing (eth_signTypedData_v4) | Supported | Depends on the connected wallet exposing the method. See Signing. |
| EIP-1271 contract signature validation | Supported | See 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. Application-level name services can be deployed as contracts. |
Sei Extensions
These capabilities are Sei-specific and have no standard Ethereum equivalent. They are exposed through @sei-js packages layered on top of standard EVM tooling.
| Feature | Notes |
|---|
| Sei precompiles (staking, governance, distribution, oracle, P256, JSON, CosmWasm bridge) | EVM contracts at deterministic addresses. ABIs and contract addresses are exported from @sei-js/precompiles for use with any standard EVM library. |
| Pointer contracts (CW20 ↔ ERC-20, CW721 ↔ ERC-721) | Bridge between CosmWasm and EVM token standards. Standard ERC interfaces work against pointer contracts. |
| Native address association (EVM ↔ Cosmos address) | Links an EVM address and a Cosmos address for the same account. Required before some Sei-native flows. |
| TokenFactory native token creation | Create native Sei tokens that are usable across EVM and CosmWasm without a wrapper contract. |
Unsupported RPC Methods
The following JSON-RPC methods are either not available on Sei or will 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 | Blob data availability endpoints are not supported. |
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". Pending nonce does not differ from confirmed nonce on Sei. |
eth_newPendingTransactionFilter | The filter can be created but will 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 results as best-effort. |
Proof Verification
| Method | Behavior on Sei |
|---|
eth_getProof | Returns IAVL tree proofs, not Ethereum Merkle Patricia Trie proofs. The method itself works, but the proof format is incompatible with standard Ethereum MPT verifiers. See State Proofs. |
Deprecated / Removed Opcodes
| Method | Reason |
|---|
eth_accounts | Returns an empty array on Sei RPC nodes. Use a wallet library (eth_requestAccounts) to get accounts from the connected user’s wallet instead. |