Monad · Beginner
What is Monad? The parallel EVM blockchain explained for developers
Monad is an EVM-compatible Layer 1 with optimistic parallel execution, 300 ms blocks, 600 ms finality, and a 10,000 TPS target. Here is what changes for Solidity developers and what stays the same.
Monad is a Layer 1 blockchain that runs the Ethereum Virtual Machine with a completely rebuilt engine underneath. Your Solidity contracts, your Hardhat scripts, your MetaMask: all of it works unchanged. What changes is the speed at which the chain processes what you send it.
Why Monad exists
Ethereum executes the transactions in a block one at a time, on a single thread, and then does consensus, then executes the next block. That serial pipeline caps throughput at a few dozen transactions per second no matter how fast the hardware is. Most scaling work moved to Layer 2 rollups, which inherit Ethereum's security but add bridges, sequencers, and minutes-to-days of settlement.
Monad's bet is that the base layer itself can be fast if four pieces are redesigned together: consensus, execution, state storage, and the way they overlap in time.
The four pieces
1. MonadBFT consensus
A pipelined, HotStuff-derived Byzantine fault tolerant protocol. Validators agree on the order of transactions in a block while the previous block is still being voted on. That pipelining is what allows sub-second blocks with deterministic finality.
2. Asynchronous execution
Consensus decides order first; execution happens afterwards, off the critical path. Validators do not have to finish running every transaction before agreeing on the next block, so execution gets a full block interval of time rather than a small slice of it.
3. Optimistic parallel execution
Transactions in a block are run concurrently across CPU cores on the assumption they do not conflict. Each one records what storage it read and wrote. Results are then committed in the block's original order, and any transaction whose reads were invalidated by an earlier write is re-executed. The end state is bit-for-bit identical to serial execution.
4. MonadDb
A custom state database built for the access patterns of the EVM, with asynchronous I/O so that many storage reads can be in flight at once. Parallel execution is pointless if every SLOAD waits on disk one at a time.
What stays the same for Solidity developers
- Solidity, Vyper, and the standard compiler outputs (bytecode, ABI) are unchanged.
- Hardhat, Foundry, Remix, ethers.js, viem, and wagmi work as-is with the Monad RPC.
- Wallets add Monad like any EVM network: RPC URL, chain ID, symbol, explorer.
- OpenZeppelin and other Solidity libraries deploy unchanged.
What is different, and matters
| Property | Ethereum mainnet | Monad |
|---|---|---|
| Block time | ~12 s | 300 ms |
| Finality | ~13 min | 600 ms |
| Execution | Serial | Optimistic parallel |
| Max contract size | 24 KB | 128 KB |
| Max init code size | 48 KB | 256 KB |
| Block gas limit | ~36M | 150,000,000 |
| Fee charged on | Gas used | Gas limit |
Two of those rows change how you write code. The contract size limit removes the reason many teams split logic across proxies and libraries. And because Monad charges on the gas limit rather than gas used, an inflated limit is money left on the table; the deploy tooling you use should estimate tightly.
Writing for parallel execution
Nothing forces you to think about parallelism; a contract that would be serial on Ethereum is still correct on Monad. But a contract whose functions all touch the same storage slot (a global counter, a single total, one shared array) will serialise every transaction that calls it, and you leave most of the chain's throughput unused. Designing storage so that unrelated users touch unrelated slots is the skill that separates a contract that merely runs on Monad from one that benefits from it.
Monsmith's parallel profiler was built for exactly this: paste a contract and it draws the dependency graph between functions and storage, scores each function, and tells you which pattern to change.
How to try it
- Open the Monsmith studio at monsmith.com/studio; no account or wallet is needed to compile and analyse.
- Paste any Solidity contract or start from the ERC-20 template.
- Run the audit and the parallel profiler.
- Connect a wallet on Monad testnet (chain ID 10143), get free MON from https://faucet.monad.xyz, and deploy.
Frequently asked questions
- Is Monad EVM compatible?
- Yes. Monad is EVM bytecode compatible and exposes the standard Ethereum JSON-RPC, so Solidity contracts, Hardhat, Foundry, MetaMask, and existing libraries work unchanged.
- What is Monad's chain ID?
- Monad mainnet is chain ID 143. Monad testnet is chain ID 10143.
- How fast is Monad?
- Monad produces a block every 300 milliseconds and reaches deterministic finality in about 600 milliseconds, with a design target of 10,000 transactions per second.
- Is Monad a Layer 2?
- No. Monad is an independent Layer 1 blockchain with its own consensus (MonadBFT) and validator set. It does not settle to Ethereum.
Try it in Monsmith
Free, in the browser, no account. Compile, audit, profile, and deploy to Monad.
Open the studio