Sei offers full EVM bytecode compatibility plus near-instant finality and sub-second blocks. This guide distills what product teams need to do when they already run on Polygon, Base, Ethereum, Arbitrum, Avalanche or another EVM chain and want to bring your dApp stack to Sei.Documentation Index
Fetch the complete documentation index at: https://seilabs.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Why Migrate to Sei?
- 400ms block times – 30× faster than Ethereum, 2-5× faster than most L2s
- ~100 MGas/s throughput – 33× higher than Ethereum mainnet
- Instant finality – No waiting for confirmations or safe/finalized states
- Parallelized execution – Higher throughput without code changes
- Full EVM compatibility – Deploy your existing Solidity contracts unchanged
Chain Comparison Overview
Before diving into migration steps, understand how Sei compares to your source chain:| Feature | Sei | Ethereum | Arbitrum | Base | Polygon PoS | Avalanche C-Chain |
|---|---|---|---|---|---|---|
| Chain ID | 1329 | 1 | 42161 | 8453 | 137 | 43114 |
| Block Time | 400 ms | ~12 s | ~250 ms | ~2 s | ~2 s | ~2 s |
| Finality | Instant | ~15 min (finalized) | ~7 days (L1 settlement) | ~7 days (L1 settlement) | ~5 s (Heimdall v2) | ~1 s |
| Gas Limit | 12.5 M | 60M | 32M | 375M | 45M | Dynamic |
| Per-Tx Gas Cap | 12.5 M | ~16.7 M | 32 M | ~25 M | 45 M | Dynamic |
| Native Token | SEI | ETH | ETH | ETH | POL (MATIC) | AVAX |
| Parallel Execution | Yes | No | No | No | No | No |
| Base Fee Burn | No (100% to validators) | Yes (EIP-1559) | Yes | Yes | Yes | Yes |
| EVM Version | Pectra (w/o blobs) | Fusaka | Fusaka | Pectra | Pectra | Cancun |
Chain-Specific Migration Guides
Select your source chain to see specific migration considerations:- Ethereum
- Arbitrum
- Base
- Polygon
- Avalanche
Migrating from Ethereum Mainnet
Key Differences:| Aspect | Ethereum | Sei | Migration Impact |
|---|---|---|---|
| Block time | ~12 seconds | 400 ms | Reduce deadline buffers in DEX swaps by 30× |
| Finality | ~15 min for finalized | Instant | Remove confirmation polling logic |
| Gas limit | ~16.7M per TX (EIP-7825) | 12.5 M per block/TX | Split large batch deployments |
| Fee model | EIP-1559 with burn | EIP-1559 different params | Update fee estimation UIs |
| Pending state | Yes | No | Remove pending transaction logic |
- Time-based logic: If your contracts use block timestamps for deadlines, reduce timeouts proportionally. A 30-minute deadline on Ethereum (~150 blocks) should be ~45 seconds on Sei (~112 blocks).
- Confirmation requirements: Remove any logic that waits for multiple confirmations or checks “safe” vs “finalized” states—Sei has instant finality.
-
Gas estimation: Sei’s parallelized execution can slightly vary gas estimates. Add a modest buffer (10-15%) to your
gasLimitcalculations. -
Fee UI: Simplify your frontend—you can use a single
gasPriceinput instead ofmaxFeePerGas/maxPriorityFeePerGas.
- PREVRANDAO/DIFFICULTY: If you use these for any randomness, integrate a VRF oracle instead—Sei’s values are derived from block time, not true randomness.
Step 1: Evaluate Compatibility
Revisit the Divergence from Ethereum doc and confirm every assumption your contracts/frontends make still holds.| Dimension | Sei EVM | Practical Effect |
|---|---|---|
| Block time | 400 ms | Faster TX inclusion → smaller deadline buffers and quicker price oracles |
| Finality | Instant | No separate “safe/latest” commitment levels to poll |
| Gas limit | 12.5M gas + 21 MB byte limit | Batch contract deployments by 12.5M gas blocks |
| Base fee | Dynamic but never burned | Validators receive 100% of fees |
| Execution | Parallelized EVM | No changes to your Solidity code are necessary |
| Address format | Dual (0x + sei1…) | Same private key derives both addresses |
Step 2: Prepare Your Development Environment
Add Sei Network Configuration
Hardhat Configuration:hardhat.config.ts
foundry.toml
Wallet Configuration
Pre-configure MetaMask or other wallets with Sei chain params:Step 3: Bootstrap Common Infrastructure
Sei already exposes canonical helper contracts—reference them instead of redeploying:| Component | Address | Notes |
|---|---|---|
| Permit2 | 0xB952578f3520EE8Ea45b7914994dcf4702cEe578 | Shared allowance manager for DEX and wallet flows |
| Multicall3 | 0xcA11bde05977b3631167028862bE2a173976CA11 | Enables batching and view aggregation |
| ImmutableCreate2Factory | 0x0000000000FFe8B47B3e2130213B802212439497 | Deterministic deployments with CREATE2 |
| SingletonFactory | 0xce0042B868300000d44A59004Da54A005ffdcf9f | EIP-2470 singleton factory |
Step 4: Port Contracts and Configuration
Parameterize Chain-Specific Constants
Adjust Gas and Size Assumptions
- Keep
gasLimitbuffers modest but ensure calldata stays under 21 MB - Sei’s 12.5M gas limit per block means large deployments may need batching
Refactor Deprecated Patterns
Step 5: Plan Bridging and Cross-Chain Connectivity
LayerZero V2
Sei’s LayerZero Endpoint ID is30280. See the complete LayerZero integration guide.
layerzero.config.ts
Other Bridge Options
- Circle CCTP: For USDC bridging (check availability)
- IBC: For Cosmos ecosystem assets
- Pointer contracts: For bridging non-EVM assets—see Pointer Contracts
Step 6: Handle Assets and Oracles
Oracle Integration
Sei supports multiple oracle solutions:| Provider | Use Case | Documentation |
|---|---|---|
| Pyth Network | High-frequency price feeds | Pyth Network |
| Chainlink | Industry-standard data feeds | Chainlink on Sei |
| RedStone | Modular oracle with push model | RedStone on Sei |
| API3 | First-party oracle data | API3 on Sei |
TWAP Adjustments: Because Sei blocks arrive ~30× faster than Ethereum, shorten your TWAP observation windows to maintain comparable time-weighted calculations.
Step 7: Launch Checklist
Testnet Deployment (atlantic-2)
- Deploy all contracts to testnet (chain ID:
1328) - Run full integration test suite
- Verify contracts via Sourcify
- Test wallet connections and transaction flows
- Validate oracle integrations
- Test cross-chain messaging if applicable
Mainnet Deployment (pacific-1)
- Deploy contracts to mainnet (chain ID:
1329) - Re-run smoke tests
- Verify all contracts on Sourcify
- Update frontend configurations
- Prepare user migration documentation
Step 8: Operational Readiness
Contract Verification
Automate verification through CI using Sourcify:RPC and Indexer Health
- Primary RPC:
https://evm-rpc.sei-apis.com - Testnet RPC:
https://evm-rpc-testnet.sei-apis.com - For mission-critical paths, consider self-hosted nodes or premium RPC providers
Monitoring Gas Parameters
Periodically query fee data to keep dashboards aligned:Example: Uniswap V3-Style Deployment
Here’s how to mirror a Uniswap V3 experience on Sei:-
Routers & Factories: Deploy your own or fork the existing DragonSwap stack:
- Router:
0xdD489C75be1039ec7d843A6aC2Fd658350B067Cf - V3 Factory:
0x75FC67473A91335B5b8F8821277262a13B38c9b3 - Position Manager:
0x8B3c541c30f9b29560f56B9E44b59718916B69EF
- Router:
-
Permit and Multicall: Point your frontend SDK to the shared
Permit2andMulticall3addresses above. -
Liquidity Migration Script: Build a helper that:
- Withdraws LP on source chain
- Bridges underlying tokens to Sei
- Mints new Sei LP positions
- Include gas estimations tuned for Sei’s 12.5M block cap
- Price Oracles: Reuse TWAP/Chainlink logic but shorten observation windows for Sei’s faster blocks.
- Verification: Submit to Sourcify and the Ecosystem Contracts registry.
Helpful References
- Divergence from Ethereum – Opcode, gas, and state nuances
- EVM Networks – RPCs, explorers, and MetaMask payloads
- Precompiles – Interoperability patterns
- Ecosystem Contracts – Canonical addresses
- LayerZero Integration – Cross-chain messaging
- Contract Verification – Contract verification guide