Sei offers a unique value proposition for Solana developers: the parallelized execution model you’re familiar with, combined with full EVM compatibility and the extensive Ethereum tooling ecosystem. This guide helps Rust/Anchor developers translate their mental models and codebases to Solidity on Sei.
Why Solana Developers Choose Sei
- Familiar parallelization – Sei uses optimistic parallel execution similar to Solana’s Sealevel
- 400ms block times – Comparable to Solana’s speed, with instant finality
- ~100 MGas/s throughput – High performance without sacrificing EVM compatibility
- EVM ecosystem access – Leverage Ethereum’s mature tooling, audited contracts, and developer resources
- No dependency declarations – Unlike Solana, Sei handles parallelization automatically
Understanding the Paradigm Shift
Before diving into code, it’s essential to understand the fundamental architectural differences between Solana and EVM-based chains like Sei.
Execution Model Comparison
Core Concept Mapping
Programs → Smart Contracts
On Solana, you write programs that are stateless executables. Data lives in separate accounts that programs can read and modify. On Sei EVM, smart contracts combine code and state in a single entity.
Solana (Anchor)
Sei EVM (Solidity)
Key differences:
- No account space allocation needed—storage grows dynamically
- No explicit
Signer validation—msg.sender is always authenticated
- No system program imports—native operations are built into the EVM
PDAs → CREATE2 Deterministic Addresses
Solana’s Program Derived Addresses (PDAs) let you create deterministic addresses from seeds. On EVM, you achieve similar functionality with CREATE2.
Solana PDA
Sei EVM CREATE2
CPI → Contract Calls
Solana’s Cross-Program Invocation (CPI) becomes simple function calls in Solidity:
Solana CPI
Sei EVM Contract Call
SPL Token → ERC-20
SPL Token (Rust)
ERC-20 (Solidity)
Key ERC-20 differences from SPL:
- No Associated Token Accounts (ATAs)—balances are stored directly in the contract
- Approvals use
approve() / transferFrom() pattern
- No mint/freeze authorities in basic implementation (add via
Ownable)
Fee Model Translation
Understanding the fee differences is crucial for accurate cost estimation:
No Rent on Sei!Unlike Solana where accounts can be garbage collected if rent isn’t paid, Sei EVM storage is permanent. This simplifies your application logic—no need to track rent-exempt minimums or worry about account closure.
Parallelization: Automatic vs Explicit
One of the biggest advantages of Sei for Solana developers is that parallelization is automatic.
Solana: Explicit Account Declaration
On Solana, you must declare all accounts a transaction will touch upfront:
Sei: Optimistic Parallelization
On Sei, you write normal Solidity—the runtime handles parallelization:
Optimizing for ParallelizationWhile Sei handles parallelization automatically, you can still optimize your contracts for better parallel performance. Avoid global counters updated on every transaction—use user-partitioned storage instead. See Optimizing for Parallelization for detailed patterns.
Step 1: Set Up Your Development Environment
Store your deployer key in Hardhat’s encrypted keystore (no plaintext .env file needed):
Wallet Setup
Configure MetaMask or any EVM wallet with Sei:
Step 2: Translate Your Solana Program
Common Pattern Translations
Initializing State
Access Control
Error Handling
Events/Logs
Step 3: Frontend Migration
SDK Comparison
Code Translation
Solana (web3.js)
Sei EVM (ethers.js)
Step 4: Testing Your Migrated Code
Test Framework Comparison
Anchor Tests
Hardhat Tests
Step 5: Deploy and Verify
Deploy to Testnet
Verify Contract
Common Migration Pitfalls
1. Expecting Rent
2. Manual Account Validation
3. Expecting Explicit Parallelization
4. Using Lamports Mental Model
Ecosystem Infrastructure
Available on Sei
Helpful Resources
Learning Solidity
Sei-Specific
Need Help?Join the Sei Tech Chat on Telegram for developer support. The community is active and helpful for migration questions.