Skip to main content
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.
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.

CPI → Contract Calls

Solana’s Cross-Program Invocation (CPI) becomes simple function calls in Solidity:

SPL Token → ERC-20

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

Install Required Tools

Configure for Sei

hardhat.config.ts
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

Step 4: Testing Your Migrated Code

Test Framework Comparison

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.