Main Differences Between EVM and SVM

NuFi Wallet
2 min readApr 24, 2024

Some people prefer EVM and some prefer SVM.

What are the main differences between Ethereum and Solana Virtual Machines?

Let’s have a look at the main aspects that differentiate EVM from SVM.

1. Account Model

Solana’s account model utilizes data accounts or executable programs, unlike Ethereum’s approach where each smart contract is an account with execution logic and storage tied together.

Solana’s smart contracts are entirely stateless, and state must be passed to the accounts for execution.

2. Benefits of the Account Model Design

Solana’s account model promotes program reusability, allowing the creation of new tokens without the need for redeployment of smart contracts.

The model also supports local fee markets, ensuring that fee increases only impact specific account activities.

3. Fees

On Solana, fee markets are local per account, preventing global fee increases when specific account activities surge in popularity.

Solana’s fees are categorized into base fee, priority fee, and rent, with each serving specific functions in transaction processing.

4. Transactions

Transactions on Solana comprise instructions, accounts for read/write, one or more signatures, and a recent blockhash or nonce.

Unlike Ethereum, Solana transactions can have multiple instructions, making it unnecessary to create custom smart contracts for chaining functions in a single transaction.

5. Transaction Limitations

Solana transactions have compute unit limitations, including single transaction compute cap, block compute cap, and account reference restrictions.

6. Mempool

Solana does not have mempools, and transactions are forwarded to leaders on the leader schedule, eliminating the overhead of gossip across the cluster.

7. Developer Tooling

Developers transitioning from Ethereum to Solana can utilize the Anchor framework or Neon for building in Solana using familiar EVM tools.

Solana offers client-side SDKs for popular programming languages, including JavaScript, Python, and Java.

8. Differences in Smart Contract Upgradability

On Solana, programs are default upgradable. A smart contract can be upgraded by a simple CLI command solana program deploy <program_filepath>.

When writing a solidity smart contract, it’s common to check for either msg.sender or tx.origin. There is no equivalent to this on Solana. Each transaction can have multiple signers, and the person sending the transaction is not necessarily the one who signed the transaction.

What do you prefer? EVM or SVM?

Let us know in the comments 👇

--

--

Powerful Web3 wallet for every crypto lifestyle. Send, receive, swap or stake in your multichain wallet. 🔗 nu.fi