Execution Model
Transaction Lifecycle
1. User signs EVM transaction (MetaMask / ethers.js)
↓
2. Rome Proxy receives via eth_sendRawTransaction
↓
3. Proxy emulates transaction off-chain (Mollusk SVM emulator)
→ Estimates gas, checks atomicity, identifies required accounts
↓
4. Proxy wraps EVM tx as Solana instruction(s)
→ If tx fits in one Solana tx → Atomic (VmAt)
→ If tx exceeds CU budget → Iterative (VmIt)
↓
5. Solana validator executes the instruction(s)
→ Rome EVM program interprets EVM bytecode
→ CPI calls to other Solana programs (if any)
↓
6. State changes committed to Solana accounts
↓
7. Hercules indexes the event → produces EVM blockAtomic Execution (VmAt)
Iterative Execution (VmIt)
Emulation
Account Mapping
Type
Seeds
Purpose
Holder Accounts
Supported Transaction Types
Type
EIP
Description
Journaled State
What's Next
Last updated
Was this helpful?