Why Solana developers choose Sei
- Sei uses optimistic parallel execution, similar to Solana’s Sealevel.
- Block times of 400 ms are comparable to Solana’s speed, and finality is instant.
- Throughput is approximately 100 MGas/s, with full EVM compatibility.
- You can use Ethereum’s mature tooling, audited contracts, and developer resources.
- You do not declare dependencies. Unlike Solana, Sei handles parallelization automatically.
Understanding the paradigm shift
Before you write code, understand the architectural differences between Solana and EVM-based chains such as 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)
- You do not allocate account space. Storage grows dynamically.
- You do not validate a
Signerexplicitly.msg.senderis always authenticated. - You do not import a system program. 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 the EVM, you get similar functionality withCREATE2.
- Solana PDA
- Sei EVM CREATE2
CPI → contract calls
Solana’s Cross-Program Invocation (CPI) becomes a simple function call in Solidity:- Solana CPI
- Sei EVM Contract Call
SPL Token → ERC-20
- SPL Token (Rust)
- ERC-20 (Solidity)
- ERC-20 has no Associated Token Accounts (ATAs). Balances are stored directly in the contract.
- Approvals use the
approve()andtransferFrom()pattern. - The basic implementation has no mint or freeze authorities. To add them, use
Ownable.
Fee model translation
To estimate costs accurately, learn how the fee models differ:No rent on SeiOn Solana, accounts can be garbage collected if rent is not paid. On Sei EVM, storage is permanent. This simplifies your application logic: you do not need to track rent-exempt minimums or worry about account closure.
Parallelization: automatic vs explicit
On Sei, parallelization is automatic.Solana: explicit account declaration
On Solana, you must declare upfront every account that a transaction will touch:Sei: optimistic parallelization
On Sei, you write normal Solidity, and the runtime handles parallelization:Step 1: Set up your development environment
Install required tools
Configure for Sei
- Hardhat
- Foundry
hardhat.config.ts
.env file:Wallet setup
Configure MetaMask or any EVM wallet for Sei:Step 2: Translate your Solana program
Common pattern translations
Initializing state
- Solana
- Sei EVM
Access control
- Solana
- Sei EVM
Error handling
- Solana
- Sei EVM
Events/logs
- Solana
- Sei EVM
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
- EVM with Foundry: Foundry setup guide and starter tutorial
- EVM with Hardhat: Hardhat setup guide and starter tutorial
- Solidity Resources: curated Solidity learning resources
- CryptoZombies: interactive Solidity tutorial
- Solidity by Example: pattern reference
Sei-specific
- Divergence from Ethereum: technical differences
- Optimizing for Parallelization: performance patterns
- Ecosystem Contracts: canonical addresses
Need help?For developer support, join the Sei Tech Chat on Telegram. The community is active and helps with migration questions.