Sei is a Cosmos-SDK Layer 1 with a fully parallelized EVM (Sei v2) — Geth runs inside the Sei binary so the chain exposes both standard Ethereum JSON-RPC (chain ID 1329 / pacific-1) and a Cosmos REST/gRPC endpoint. Targets ~400ms blocks, instant finality, and ~100 megagas/sec throughput via optimistic parallelization without requiring developers to declare dependencies.
- 01high-throughput EVM dapps (DEXes, orderbooks, games)
- 02apps that want both EVM and Cosmos SDK access
- 03low-latency consumer experiences
- 04Solana-style UX with EVM tooling
- pnpm add viem wagmi
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_SEI_EVM_RPC_URL | Client | Sei EVM JSON-RPC URL (mainnet: https://evm-rpc.sei-apis.com). |
| NEXT_PUBLIC_SEI_CHAIN_ID | Client | Chain ID — 1329 for mainnet (pacific-1), 1328 for atlantic-2 testnet, 713715 for arctic-1 devnet. |
Use viem with the built-in `sei` chain (`import { sei } from 'viem/chains'`) — chain ID 1329, gas token SEI, RPC `https://evm-rpc.sei-apis.com`. Standard Ethereum tooling (viem, ethers, wagmi, Foundry, Hardhat) works unchanged. For dual-stack apps that also need Cosmos messages, query the REST endpoint at `https://rest.sei-apis.com` and use `@sei-js/cosmjs` alongside the EVM client. Sei automatically parallelizes execution of non-conflicting transactions — there are no annotations or dependency declarations to add. Bridge in via Wormhole/Axelar/Stargate; the canonical Sei Bridge UI lives at `app.sei.io/bridge`.
- ⚑Sei runs two address spaces — a Cosmos `sei1...` bech32 address and a 0x EVM address that share the same underlying key. Mapping is established lazily on first interaction; some integrations break before the link is registered. Use `seitrace` to verify both addresses resolve to the same account.
- ⚑Optimistic parallelization re-executes conflicting transactions serially, so heavy contention on a hot contract (single-pool AMM, single counter) erodes the TPS advantage. Architect storage layout for parallelism.
- ⚑Block time is ~400ms — gas oracles, mempool polling, and reorg/confirmation defaults built for 12s Ethereum blocks are wrong here. Tune them explicitly.
- ⚑Some EVM precompiles are Sei-specific (e.g., the `addr` and `bank` precompiles for cross-VM calls). Code that depends on Ethereum-only opcodes/precompiles or assumes the canonical address book may misbehave.
- ⚑Validator set is small relative to Ethereum and the chain has been through hard forks (v1 → v2). Watch upgrade announcements; missed upgrades on self-run nodes halt sync.
- ⚑There is no canonical L1 settlement — Sei is a sovereign L1, not an L2. 'Bridged USDC' is not native CCTP unless explicitly stated; check token canonicality before assuming fungibility with mainnet USDC.