Skip to article

Monad parallel execution

Monad distributes Ethereum Virtual Machine (EVM) transaction work across processor cores and threads, then commits results in block order. The resulting state matches sequential execution of the same ordered transactions on Monad.

Updated:
Network
Monad, an EVM-compatible Layer 1 blockchain.
Block Structure
Linear blocks with an ordered transaction sequence inside each block.
Code Compatibility
Full EVM bytecode compatibility, alongside Monad-specific gas pricing, storage access, and account rules.

Transaction Order and State Dependencies

A later transaction’s state-dependent result must reflect earlier transactions in the block. Monad uses optimistic execution: it starts transactions before earlier transactions finish and tracks the state values they read. The client checks those values as it merges results in block order. If a value differs from the state produced by preceding transactions, it re-executes the affected transaction using updated state. Dependencies that invalidate those inputs add re-execution work, so workload structure affects the benefit from parallelism. Developers can therefore reason about contract interactions using the transaction sequence.

Parallel Work and Pipelined Stages

Superscalar pipelining overlaps different stages of work, including consensus and execution. Asynchronous execution lets consensus agree on a block before the client executes its transactions. This separation gives execution more time across block intervals while consensus continues. Parallel execution distributes transaction work across cores within the execution engine.

The Reserve Balance documentation specifies an execution delay factor of k = 3 blocks. That parameter bounds how far execution can lag behind consensus. It describes a different relationship from transaction ordering within a block.

Graphic: Monad parallel execution: Parallel Work and Pipelined Stages

Open full-size image

Other Components Behind Network Performance

MonadDb supports efficient access to Monad’s EVM state, and JIT compilation targets transaction execution efficiency. MonadBFT handles consensus, while RaptorCast supports efficient block transmission.

Visual summary: Monad parallel execution - Other Components Behind Network Performance

Open full-size image

Monad’s documentation reports 10,000 transactions per second, 300 ms blocks, and 600 ms finality. These network-level figures cover the combined architecture and do not isolate parallel execution’s speedup for a particular contract or workload.

Contract Portability

EVM bytecode compatibility allows Ethereum applications to move to Monad without rewriting contracts for parallel processing. Network-specific behavior still matters during testing, including gas charges, storage access, and delegated-account rules.

Contract Portability (Monad parallel execution) - illustration

Open full-size image

Deployment and Evaluation Checklist

  • If contract behavior depends on gas costs, account for Monad charging the full declared gas limit and repricing some opcodes.
  • If storage access affects costs, test Monad’s page-based warming across groups of 128 consecutive storage slots.
  • If local testing uses Foundry, use v1.8.0 or later with the Monad execution network enabled.
  • If you compare throughput, distinguish the documentation’s network figures from measurements of your application’s workload.