Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 32 additions & 2 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,19 @@
"group": "Essentials",
"pages": [
"evm/networks",
"evm/differences-with-ethereum",
{
"group": "EVM Compatibility",
"pages": [
"evm/differences-with-ethereum",
"evm/evm-parity/evm-compatibility",
"evm/evm-parity/finality",
"evm/evm-parity/gas-and-fees",
"evm/evm-parity/transaction-types",
"evm/evm-parity/state-proofs",
"evm/evm-parity/websocket",
"evm/evm-parity/signing"
]
},
"evm/migrate-from-other-evms",
"evm/migrate-from-solana"
]
Expand Down Expand Up @@ -194,7 +206,8 @@
"pages": [
"evm/sei-js/index",
"evm/sei-js/create-sei",
"evm/sei-js/ledger"
"evm/sei-js/ledger",
"evm/sei-js/registry"
]
},
{
Expand All @@ -206,6 +219,23 @@
{
"group": "Ecosystem Tutorials",
"pages": [
{
"group": "sei-js Examples",
"pages": [
"evm/evm-parity/examples/viem-quickstart",
"evm/evm-parity/examples/ethers-quickstart",
"evm/evm-parity/examples/wagmi-react",
"evm/evm-parity/examples/erc20",
"evm/evm-parity/examples/erc721",
"evm/evm-parity/examples/erc1155",
"evm/evm-parity/examples/multicall",
"evm/evm-parity/examples/pointer-contracts",
"evm/evm-parity/examples/sei-precompiles",
"evm/evm-parity/examples/deploy-verify",
"evm/evm-parity/examples/transaction-lifecycle",
"evm/evm-parity/examples/error-handling"
]
},
{
"group": "Indexers",
"pages": [
Expand Down
4 changes: 2 additions & 2 deletions evm/differences-with-ethereum.mdx
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
---
title: 'Sei EVM vs Ethereum: Key Differences'

Check warning on line 2 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L2

Did you really mean 'Sei'?

Check warning on line 2 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L2

Did you really mean 'Ethereum'?
sidebarTitle: 'Divergence from Ethereum'

Check warning on line 3 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L3

Did you really mean 'Ethereum'?
description: "A comparison of Sei EVM and Ethereum, highlighting Sei's advantages in blocktime, throughput, finality, and execution environment, as well as technical differences in opcodes, state storage, and other features."

Check warning on line 4 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L4

Did you really mean 'Sei'?

Check warning on line 4 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L4

Did you really mean 'Ethereum'?

Check warning on line 4 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L4

Did you really mean 'Sei's'?

Check warning on line 4 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L4

Did you really mean 'blocktime'?
keywords: ['Sei EVM', 'Ethereum comparison', 'blockchain differences', 'EVM compatibility', 'blockchain performance']
---
While Sei features full EVM compatibility, there are some distinctions between

Check warning on line 7 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L7

Did you really mean 'Sei'?
Sei's EVM and Ethereum itself:

Check warning on line 8 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L8

Did you really mean 'Sei's'?

Check warning on line 8 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L8

Did you really mean 'Ethereum'?

| Feature | Sei EVM | Ethereum |

Check warning on line 10 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L10

Did you really mean 'Sei'?

Check warning on line 10 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L10

Did you really mean 'Ethereum'?
| --- | --- | --- |
| Blocktime | 400 ms | 12 s |

Check warning on line 12 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L12

Did you really mean 'Blocktime'?
| Gas per Second | ~ 100 MegaGas/s | ~ 5 MegaGas/s |
| Finality | Instant | Various commitment levels (safe, latest, justified, finalized) |
| Parallelized Execution | Yes | No |
| EVM Tooling Compatibility | 100% | 100% |
| EVM Version | Pectra (w/o blobs) | Fusaka |

Check warning on line 17 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L17

Did you really mean 'Pectra'?

Check warning on line 17 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L17

Did you really mean 'Fusaka'?
| Gas Limit | 12.5 M (block cap) | 60 M (block); ~16.7 M per-tx (EIP-7825) |
| Per-Tx Gas Cap | 12.5 M (block limit) | ~16.7 M (EIP-7825) |
| Byte Size Limit | 21 MB | No byte-denominated limits |
| Execution Environment | EVM and Cosmos-SDK | EVM |
| Address Space | Dual ECDSA-derived addresses; Cosmos Bech32 (sei…) + EVM-compatible address (0x…) | ECDSA-derived address (0x…) |
| State Storage | AVL-tree (global root) | Merkle Patricia Trie (MPT) |

Check warning on line 23 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L23

Did you really mean 'Merkle'?

Check warning on line 23 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L23

Did you really mean 'Trie'?
| SSTORE Gas Cost | 72k (on-chain param, governance-adjustable) | 20k (fixed) |

Check warning on line 24 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L24

Did you really mean 'param'?


- Sei uses the Pectra (Prague + Electra) version of EVM, excluding blob transactions. Ethereum has since upgraded to Fusaka (December 2025), which introduced PeerDAS for enhanced data availability.

Check warning on line 27 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L27

Did you really mean 'Sei'?

Check warning on line 27 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L27

Did you really mean 'Pectra'?

Check warning on line 27 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L27

Did you really mean 'Ethereum'?

Check warning on line 27 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L27

Did you really mean 'Fusaka'?
- Sei's gas limit is 12.5 M as opposed to Ethereum's 60 M (increased from 45 M in the Fusaka upgrade via EIP-7935). Sei also has a byte size limit of 21MB.

Check warning on line 28 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L28

Did you really mean 'Sei's'?

Check warning on line 28 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L28

Did you really mean 'Ethereum's'?

Check warning on line 28 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L28

Did you really mean 'Fusaka'?

Check warning on line 28 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L28

Did you really mean 'Sei'?
- Sei has instant finality. This means the various commitment levels typical for Ethereum (i.e., safe, latest, justified) do not apply on Sei.

Check warning on line 29 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L29

Did you really mean 'Sei'?

Check warning on line 29 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L29

Did you really mean 'Ethereum'?

<Danger>

Expand All @@ -36,28 +36,28 @@

[Proposal 115](https://www.mintscan.io/sei/proposals/115) further disables CosmWasm code uploads and contract instantiations chain-wide — no new CosmWasm contracts can be deployed. Only `execute` and `query` against pre-existing CosmWasm contracts remain available.

[Proposal 116](https://www.mintscan.io/sei/proposals/116) additionally disables inbound IBC transfers — IBC assets bridged from Cosmos chains can no longer arrive on Sei after this passes and is activated. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for affected assets and migration routes.

Check warning on line 39 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L39

Did you really mean 'Sei'?

</Danger>

- **Sei is a dual-execution environment (EVM and Cosmos-SDK).** This means:

Check warning on line 43 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L43

Did you really mean 'Sei'?
- Non-EVM transactions can update EVM-accessible state.
- For example, an account's SEI balance can be affected by both Cosmos (bank send, wasm execute) transactions as well as EVM send transactions

Check warning on line 45 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L45

Did you really mean 'wasm'?
- Sei assets can exist as EVM tokens (ERC20/721/1155), as legacy CosmWasm tokens (CW20/CW721/CW1155, no longer deployable per Prop 115), or as "native" Bank Module assets (Sei).

Check warning on line 46 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L46

Did you really mean 'Sei'?

Check warning on line 46 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L46

Did you really mean 'Sei'?
- User accounts on Sei have [two addresses](/learn/accounts) derived from the same public key (Cosmos Bech32 and EVM-compatible 0x…)

Check warning on line 47 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L47

Did you really mean 'Sei'?
- Interoperability between EVM and Cosmos-SDK modules is governed and navigated via [precompiles](/evm/precompiles/example-usage) and [pointer contracts](/learn/pointers)

## Sei EVM Deployment
## Sei EVM Release

Check warning on line 50 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L50

Did you really mean 'Sei'?

Sei EVM was deployed at the following block heights and versions:
Sei EVM was originally deployed at the following block heights and versions:

Check warning on line 52 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L52

Did you really mean 'Sei'?

### Testnet

Check warning on line 54 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L54

Did you really mean 'Testnet'?

- **Name:** `v5.5.1`
- **Height:** `90526031`
- **Changelog:** https://github.com/sei-protocol/sei-chain/blob/main/CHANGELOG.md#v5.5.1

### Mainnet

Check warning on line 60 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L60

Did you really mean 'Mainnet'?

- **Name:** `v5.5.2`
- **Height:** `79123881`
Expand All @@ -65,47 +65,47 @@

## Opcode Differences

| Opcode | Sei EVM | Ethereum | Notes |

Check warning on line 68 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L68

Did you really mean 'Sei'?

Check warning on line 68 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L68

Did you really mean 'Ethereum'?
| --- | --- | --- | --- |
| PREVRANDAO | Returns a value derived from the current block time | Returns the RANDAO mix (EIP‑4399) | Not a randomness source; use an oracle/VRF. `DIFFICULTY` aliases to this. |
| COINBASE | Always the global fee collector address | Block proposer (miner) address | Do not assume it is the validator address. |

Check warning on line 71 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L71

Did you really mean 'validator'?
| BASEFEE | Returns current base fee; no burn | Returns current base fee; a portion is burned (EIP‑1559) | Legacy tx must specify ≥ `10 gwei` base fee on Sei. |

Check warning on line 72 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L72

Did you really mean 'tx'?
| BLOCKHASH | Hash of the Tendermint header; different encoding | Keccak of the Ethereum block header | Usable for recent blocks only; values are not interchangeable across chains. |

Check warning on line 73 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L73

Did you really mean 'Tendermint'?

Check warning on line 73 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L73

Did you really mean 'Keccak'?

Check warning on line 73 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L73

Did you really mean 'Ethereum'?
| GASLIMIT | = 12,500,000 per block | = 60,000,000 per block | Represents block gas limit in both chains. |
| TIMESTAMP | Tendermint block time | Proposer-chosen block time | Same semantics; do not use as randomness. |

Check warning on line 75 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L75

Did you really mean 'Tendermint'?
| DIFFICULTY | Alias of PREVRANDAO | Alias of PREVRANDAO (EIP‑4399) | Returns the same value as PREVRANDAO. |
| Blob‑related opcodes | Not supported (Pectra without blobs) | Supported post‑Cancun (EIP‑4844) | Blob transactions are not enabled on Sei. |

Check warning on line 77 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L77

Did you really mean 'Pectra'?


### PREVRANDAO

Since Sei doesn't rely on the same pseudo‑randomness way of determining the next

Check warning on line 82 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L82

Did you really mean 'Sei'?
validator like Proof of Stake (PoS) Ethereum does, it doesn't really have the

Check warning on line 83 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L83

Did you really mean 'validator'?

Check warning on line 83 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L83

Did you really mean 'Ethereum'?
"randomness" artifact that can be set as `PREVRANDAO`'s return value. On Sei,

Check warning on line 84 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L84

Did you really mean 'Sei'?
`PREVRANDAO` returns a value derived from the current block time. For strong
randomness needs in contract logic, use a verifiable randomness oracle (as is
advised on Ethereum itself).

Check warning on line 87 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L87

Did you really mean 'Ethereum'?

### COINBASE

Coinbase address on Sei is always set to (the EVM address of) the global fee

Check warning on line 91 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L91

Did you really mean 'Coinbase'?

Check warning on line 91 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L91

Did you really mean 'Sei'?
collector.

## State Root

Since Sei uses AVL-tree instead of Merkle Patricia Trie (MPT) for data storage,

Check warning on line 96 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L96

Did you really mean 'Sei'?

Check warning on line 96 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L96

Did you really mean 'Merkle'?

Check warning on line 96 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L96

Did you really mean 'Trie'?
Sei doesn't have per-account state root. The global state root is the AVL-tree

Check warning on line 97 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L97

Did you really mean 'Sei'?
root which is also not equivalent to Ethereum's overall state root (which is a

Check warning on line 98 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L98

Did you really mean 'Ethereum's'?
MPT root)

## Block Hash

The block hash on Sei is computed based on the block header in Tendermint data

Check warning on line 103 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L103

Did you really mean 'Sei'?

Check warning on line 103 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L103

Did you really mean 'Tendermint'?
format, and is different from Ethereum's block Hash as a result.

Check warning on line 104 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L104

Did you really mean 'Ethereum's'?

## Base Fee & Tips

Sei supports all non‑blob transaction types, including the Pectra `SetCode` transaction (EIP‑7702). However for a legacy (non EIP‑1559) type

Check warning on line 108 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L108

Did you really mean 'Sei'?

Check warning on line 108 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L108

Did you really mean 'Pectra'?
transaction, you must specify a base fee of `10 gwei`. In addition to this, excess
"gas wanted/gas limit" beyond the actual "gas used" may not be refunded in full
or in part.
Expand All @@ -130,31 +130,31 @@

## Non-EVM Transactions

On Sei there exists non-EVM transactions which may update states accessible by

Check warning on line 133 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L133

Did you really mean 'Sei'?
EVM transactions. The simplest example would be bank balances, which may be
updated by both native Cosmos bank send transactions and EVM send transactions.
As a result, if certain offchain applications only parse EVM transactions, they

Check warning on line 136 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L136

Did you really mean 'offchain'?
may find certain state changes unattributable to any EVM transaction.

## Finality

Sei has instant finality, meaning that commitment levels of "safe", "latest",

Check warning on line 141 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L141

Did you really mean 'Sei'?
"justified", and "finalized" on Ethereum are all the same thing on Sei.

Check warning on line 142 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L142

Did you really mean 'Ethereum'?

## Pending State

On Ethereum the block proposer would execute its proposed block first (and

Check warning on line 146 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L146

Did you really mean 'Ethereum'?
update its local state) before broadcasting the proposal to others (the updated
state would be marked "pending" until the node is accepted by other nodes).

However, on Sei, the block proposer would broadcast first and only execute the

Check warning on line 150 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L150

Did you really mean 'Sei'?
proposal if it's accepted (i.e. every node would execute the block at roughly
the same time), so Sei does not really have a window when "pending state"

Check warning on line 152 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L152

Did you really mean 'Sei'?
exists.

## Gas Model & Fees

Sei does not implement base‑fee burning. There is no base‑fee burn; all transaction fees accrue to validators. Fees are calculated as:

Check warning on line 157 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L157

Did you really mean 'Sei'?

Check warning on line 157 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L157

Did you really mean 'validators'?

Transaction Fee = Gas Used × Gas Price

Expand All @@ -162,21 +162,21 @@

- **Simpler fee handling:** Use `gasPrice` (you can omit `maxFeePerGas` / `maxPriorityFeePerGas`).
- **More stable fees:** Higher throughput reduces fee spikes during busy periods.
- **Typically lower cost:** Many workloads that are costly on Ethereum become economical on Sei.

Check warning on line 165 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L165

Did you really mean 'Ethereum'?

<Info>

**Useful Infos**

Check warning on line 169 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L169

Did you really mean 'Infos'?

- **Does Sei burn a base fee (EIP‑1559)?** No.

Check warning on line 171 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L171

Did you really mean 'Sei'?
- **Who receives fees?** Validators.

Check warning on line 172 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L172

Did you really mean 'Validators'?
- **Are Sei fees lower?** Yes, due to higher throughput and parallel execution.

Check warning on line 173 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L173

Did you really mean 'Sei'?

</Info>

## SSTORE Gas Cost

On Sei, the `SSTORE` opcode gas cost is configurable as an on-chain parameter, meaning it can be adjusted via governance proposal without requiring a chain upgrade.

Check warning on line 179 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L179

Did you really mean 'Sei'?

This provides flexibility to tune storage costs based on EVM state size and network conditions.

Expand All @@ -189,14 +189,14 @@
Sei’s EVM fully supports the common token standards:

- **ERC‑20** (fungible tokens)
- **ERC‑721** (NFTs)

Check warning on line 192 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L192

Did you really mean 'NFTs'?
- **ERC‑1155** (multi‑token)

Existing OpenZeppelin contracts and tools work unchanged.

## Testing & Migration Checklist

- ✅ Re‑deploy your Solidity code to Sei testnet; most contracts need no changes.

Check warning on line 199 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L199

Did you really mean 'Sei'?

Check warning on line 199 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L199

Did you really mean 'testnet'?
- ✅ If you used SELFDESTRUCT, refactor to a soft‑close pattern.
- ✅ Remove EIP‑1559 fee UI complexity; use a single `gasPrice` input in frontends.
- ✅ If you rely on on‑chain “randomness,” integrate an oracle/VRF.
Expand Down
138 changes: 138 additions & 0 deletions evm/evm-parity/evm-compatibility.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
---
title: 'EVM Compatibility'
sidebarTitle: 'Compatibility Matrix'
description: 'EVM feature support on Sei — what works, what differs from Ethereum, and what is not available'

Check warning on line 4 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L4

Did you really mean 'Sei'?

Check warning on line 4 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L4

Did you really mean 'Ethereum'?
---

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

Check warning on line 9 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L9

Did you really mean 'Sei's'?

Check warning on line 9 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L9

Did you really mean 'Ethereum'?

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.

Check warning on line 11 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L11

Did you really mean 'viem'?

Check warning on line 11 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L11

Did you really mean 'wagmi'?

Check warning on line 11 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L11

Did you really mean 'ethers'?

Check warning on line 11 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L11

Did you really mean 'Sei'?

Check warning on line 11 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L11

Did you really mean 'Sei'?

Check warning on line 11 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L11

Did you really mean 'Ethereum'?

## Status Legend

| Status | Meaning |
| --- | --- |
| Supported | Works on Sei EVM with standard Ethereum behavior. |

Check warning on line 17 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L17

Did you really mean 'Sei'?

Check warning on line 17 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L17

Did you really mean 'Ethereum'?
| Supported — differences | Available on Sei, but intentionally differs from Ethereum. See the notes. |

Check warning on line 18 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L18

Did you really mean 'Sei'?

Check warning on line 18 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L18

Did you really mean 'Ethereum'?
| Sei extension | A Sei-specific capability with no standard Ethereum equivalent. |

Check warning on line 19 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L19

Did you really mean 'Sei'?

Check warning on line 19 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L19

Did you really mean 'Ethereum'?
| Not supported | Not available on Sei EVM. |

Check warning on line 20 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L20

Did you really mean 'Sei'?

## Transactions

| Feature | Sei status | Notes |

Check warning on line 24 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L24

Did you really mean 'Sei'?
| --- | --- | --- |
| Legacy transactions (type 0) | Supported — differences | Minimum gas price is set by Sei governance parameters, not a fixed floor. [See Gas and Fees.](/evm/evm-parity/gas-and-fees) |

Check warning on line 26 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L26

Did you really mean 'Sei'?
| 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.](/evm/evm-parity/gas-and-fees) |

Check warning on line 28 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L28

Did you really mean 'validators'?
| EIP-4844 blob transactions (type 3) | Not supported | Sei runs Pectra without blob transactions. [See Transaction Types.](/evm/evm-parity/transaction-types) |

Check warning on line 29 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L29

Did you really mean 'Sei'?

Check warning on line 29 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L29

Did you really mean 'Pectra'?
| EIP-7702 set-code transactions (type 4) | Supported | |

## Account and State

| Feature | Sei status | Notes |

Check warning on line 34 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L34

Did you really mean 'Sei'?
| --- | --- | --- |
| `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.](/evm/evm-parity/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.](/evm/evm-parity/state-proofs) |

Check warning on line 40 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L40

Did you really mean 'Ethereum'?

Check warning on line 40 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L40

Did you really mean 'Merkle'?

Check warning on line 40 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L40

Did you really mean 'Trie'?

## Blocks and Finality

| Feature | Sei status | Notes |

Check warning on line 44 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L44

Did you really mean 'Sei'?
| --- | --- | --- |
| `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.](/evm/evm-parity/finality) |

Check warning on line 48 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L48

Did you really mean 'Sei'?
| Pending block state | Supported — differences | Ethereum-style pending state visibility is not guaranteed. Do not rely on pending transaction ordering. [See Finality.](/evm/evm-parity/finality) |

## Logs, Filters, and Subscriptions

| Feature | Sei status | Notes |

Check warning on line 53 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L53

Did you really mean 'Sei'?
| --- | --- | --- |
| `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 |

Check warning on line 61 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L61

Did you really mean 'Sei'?
| --- | --- | --- |
| `eth_call` | Supported | |
| `eth_estimateGas` | Supported | |
| `debug_traceTransaction` | Supported | |
| Block-level tracing | Supported | |

## Signing

| Feature | Sei status | Notes |

Check warning on line 70 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L70

Did you really mean 'Sei'?
| --- | --- | --- |
| EIP-155 replay protection | Supported | |
| Personal sign (`personal_sign`, `eth_sign`) | Supported | Depends on the connected wallet exposing the method. [See Signing.](/evm/evm-parity/signing) |
| EIP-712 typed data signing (`eth_signTypedData_v4`) | Supported | Depends on the connected wallet exposing 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 |

Check warning on line 79 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L79

Did you really mean 'Sei'?
| --- | --- | --- |
| ERC-20 | Supported | |
| ERC-721 | Supported | |
| ERC-1155 | Supported | |

## Account Abstraction

| Feature | Sei status | Notes |

Check warning on line 87 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L87

Did you really mean 'Sei'?
| --- | --- | --- |
| ERC-4337 | Supported | Requires a compatible bundler. Sei EVM is ERC-4337 compatible. |

Check warning on line 89 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L89

Did you really mean 'bundler'?

Check warning on line 89 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L89

Did you really mean 'Sei'?

## Name Services

| Feature | Sei status | Notes |

Check warning on line 93 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L93

Did you really mean 'Sei'?
| --- | --- | --- |
| ENS | Not supported | Sei does not run Ethereum mainnet ENS. Application-level name services can be deployed as contracts. |

Check warning on line 95 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L95

Did you really mean 'Sei'?

Check warning on line 95 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L95

Did you really mean 'Ethereum'?

Check warning on line 95 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L95

Did you really mean 'mainnet'?

## Sei Extensions

Check warning on line 97 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L97

Did you really mean 'Sei'?

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.

Check warning on line 99 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L99

Did you really mean 'Ethereum'?

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

Check warning on line 103 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L103

Did you really mean 'Sei'?

Check warning on line 103 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L103

Did you really mean 'precompiles'?

Check warning on line 103 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L103

Did you really mean 'ABIs'?
| 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. |

Check warning on line 106 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L106

Did you really mean 'Sei'?

## Unsupported RPC Methods

The following JSON-RPC methods are either not available on Sei or will return errors:

Check warning on line 110 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L110

Did you really mean 'Sei'?

### Blob / EIP-4844

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

Check warning on line 116 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L116

Did you really mean 'Sei'?

Check warning on line 116 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L116

Did you really mean 'Pectra'?
| `engine_getBlobsV1` | Blob data availability endpoints are not supported. |

### Pending State

| Method | Behavior on Sei |

Check warning on line 121 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L121

Did you really mean 'Sei'?
| --- | --- |
| `eth_getBlockByNumber("pending")` | Returns `null` or the latest committed block. Sei does not maintain an Ethereum-style pending block. |

Check warning on line 123 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L123

Did you really mean 'Sei'?
| `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. |

Check warning on line 126 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L126

Did you really mean 'Sei'?

### Proof Verification

| Method | Behavior on Sei |

Check warning on line 130 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L130

Did you really mean '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.](/evm/evm-parity/state-proofs) |

Check warning on line 132 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L132

Did you really mean 'Ethereum'?

Check warning on line 132 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L132

Did you really mean 'Merkle'?

Check warning on line 132 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L132

Did you really mean 'Trie'?

Check warning on line 132 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L132

Did you really mean 'Ethereum'?

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

Check warning on line 138 in evm/evm-parity/evm-compatibility.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/evm-compatibility.mdx#L138

Did you really mean 'Sei'?
176 changes: 176 additions & 0 deletions evm/evm-parity/examples/deploy-verify.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
---
title: 'Deploy and Verify'
description: 'Deploying and verifying smart contracts on Sei with viem, ethers, Foundry, and Hardhat'

Check warning on line 3 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L3

Did you really mean 'Sei'?

Check warning on line 3 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L3

Did you really mean 'viem'?

Check warning on line 3 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L3

Did you really mean 'ethers'?
---

# Deploy and Verify

Sei is EVM-compatible — standard deployment tooling works without modification. This page covers deploying a contract and verifying its source on the Sei block explorer.

Check warning on line 8 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L8

Did you really mean 'Sei'?

Check warning on line 8 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L8

Did you really mean 'Sei'?

For a deeper look at verification options (Remix, Sourcify UI, batch verification), see the [Verify Contracts](/evm/evm-verify-contracts) page.

Check warning on line 10 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L10

Did you really mean 'Sourcify'?

## Deploying with viem or ethers

Check warning on line 12 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L12

Did you really mean 'viem'?

Check warning on line 12 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L12

Did you really mean 'ethers'?

<CodeGroup>

```ts viem
import { createPublicClient, createWalletClient, http } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { sei } from '@sei-js/precompiles/viem';

const account = privateKeyToAccount('0xYourPrivateKey');
const publicClient = createPublicClient({ chain: sei, transport: http() });
const walletClient = createWalletClient({ account, chain: sei, transport: http() });

const hash = await walletClient.deployContract({
abi: CONTRACT_ABI,
bytecode: '0x608060...',
args: [/* constructor args */],
});

const { contractAddress } = await publicClient.waitForTransactionReceipt({ hash });
console.log('Deployed at:', contractAddress);
```

```ts ethers
import { ethers } from 'ethers';

const provider = new ethers.JsonRpcProvider('https://evm-rpc.sei-apis.com');
const wallet = new ethers.Wallet('0xYourPrivateKey', provider);

const factory = new ethers.ContractFactory(CONTRACT_ABI, '0x608060...', wallet);
const contract = await factory.deploy(/* constructor args */);

await contract.waitForDeployment();
console.log('Deployed at:', await contract.getAddress());
```

</CodeGroup>

## Deploying with Foundry

Foundry works against Sei with the standard `--rpc-url` flag.

Check warning on line 52 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L52

Did you really mean 'Sei'?

```bash
forge create src/MyContract.sol:MyContract \
--rpc-url https://evm-rpc.sei-apis.com \
--private-key $PRIVATE_KEY \
--constructor-args arg1 arg2
```

For testnet:

Check warning on line 61 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L61

Did you really mean 'testnet'?

```bash
forge create src/MyContract.sol:MyContract \
--rpc-url https://evm-rpc-testnet.sei-apis.com \
--private-key $PRIVATE_KEY
```

## Deploying with Hardhat

Add Sei networks to your `hardhat.config.ts`:

Check warning on line 71 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L71

Did you really mean 'Sei'?

```ts
import { HardhatUserConfig } from 'hardhat/config';

const config: HardhatUserConfig = {
networks: {
sei: {
url: 'https://evm-rpc.sei-apis.com',
chainId: 1329,
accounts: [process.env.PRIVATE_KEY!],
},
seiTestnet: {
url: 'https://evm-rpc-testnet.sei-apis.com',
chainId: 1328,
accounts: [process.env.PRIVATE_KEY!],
},
},
};

export default config;
```

Then deploy:

```bash
npx hardhat run scripts/deploy.ts --network sei
```

## Verifying Contracts

Sei's block explorer is [Seiscan](https://seiscan.io). The recommended verification method is [Sourcify](https://sourcify.dev/) — no API key required.

Check warning on line 102 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L102

Did you really mean 'Sei's'?

### Foundry

Verify after deployment:

```bash
forge verify-contract \
--verifier sourcify \
--chain-id 1329 \
0xDeployedContractAddress \
src/MyContract.sol:MyContract
```

Or deploy and verify in one step:

```bash
forge create src/MyContract.sol:MyContract \
--rpc-url https://evm-rpc.sei-apis.com \
--private-key $PRIVATE_KEY \
--verify \
--verifier sourcify \
--chain-id 1329
```

For testnet, use `--chain-id 1328` and `--rpc-url https://evm-rpc-testnet.sei-apis.com`.

Check warning on line 127 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L127

Did you really mean 'testnet'?

### Hardhat

Install the verify plugin:

```bash
npm install --save-dev @nomicfoundation/hardhat-verify
```

Add it to `hardhat.config.ts` — no additional Sourcify config block is needed:

Check warning on line 137 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L137

Did you really mean 'Sourcify'?

```ts
import '@nomicfoundation/hardhat-verify';

const config: HardhatUserConfig = {
networks: {
sei: {
url: 'https://evm-rpc.sei-apis.com',
chainId: 1329,
accounts: [process.env.PRIVATE_KEY!],
},
seiTestnet: {
url: 'https://evm-rpc-testnet.sei-apis.com',
chainId: 1328,
accounts: [process.env.PRIVATE_KEY!],
},
},
};
```

Verify a deployed contract:

```bash
npx hardhat verify sourcify --network sei 0xDeployedContractAddress
```

If your contract has constructor arguments:

```bash
npx hardhat verify sourcify --network sei 0xDeployedContractAddress "arg1" "arg2"
```

## Network Reference

| Network | Chain ID | RPC | Explorer |
| --- | --- | --- | --- |
| Mainnet | 1329 | `https://evm-rpc.sei-apis.com` | [seiscan.io](https://seiscan.io) |

Check warning on line 174 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L174

Did you really mean 'Mainnet'?
| Testnet | 1328 | `https://evm-rpc-testnet.sei-apis.com` | [testnet.seiscan.io](https://testnet.seiscan.io) |

Check warning on line 175 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L175

Did you really mean 'Testnet'?
| Devnet | 713715 | `https://evm-rpc-arctic-1.sei-apis.com` | — |

Check warning on line 176 in evm/evm-parity/examples/deploy-verify.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/evm-parity/examples/deploy-verify.mdx#L176

Did you really mean 'Devnet'?
Loading
Loading