Use case · Migration
Ethereum to Solana migration for Solidity teams
Solana offers high throughput and low fees, but native development is in Rust and Anchor. SolScript lets an Ethereum team carry its Solidity knowledge — and much of its contract logic — across to Solana.
The challenge
The two chains use different virtual machines. Ethereum runs the EVM with a flat storage model and mappings; Solana runs BPF with an account model and Program Derived Addresses. A naive port means rewriting storage access, account handling and program structure by hand — in a new language.
How SolScript bridges it
- Same syntax. Your team keeps writing Solidity — state variables, mappings, events, modifiers.
- Mappings become PDAs. SolScript converts
mappingstorage to PDA-backed accounts automatically. - Auditable output. You get readable Anchor/Rust to review and adapt where Solana semantics differ.
contract Vault {
mapping(address => uint256) public deposits;
event Deposited(address indexed user, uint256 amount);
function deposit(uint256 amount) public {
deposits[msg.sender] += amount;
emit Deposited(msg.sender, amount);
}
} Where you still have to think
Solana's account model surfaces in ways the EVM hides — accounts must be passed explicitly, and EVM-only features have no equivalent. SolScript handles the mechanical translation; the architectural decisions remain yours. The migration guide and Solana for Ethereum developers go deeper.
FAQ
Can I move my existing Solidity contracts to Solana with SolScript? ▼
You can reuse the Solidity syntax and much of your contract logic. SolScript compiles the supported subset of Solidity to native Solana programs, converting mappings to PDAs automatically. EVM-specific constructs (assembly, delegatecall, selfdestruct) do not apply on Solana and must be rethought.
Do my Ethereum developers need to learn Rust? ▼
No. They write Solidity syntax and SolScript generates the Rust/Anchor code. Reading that generated code is a gentle on-ramp to Solana concepts, but writing Rust is not required.