High-throughput, EVM-bytecode-compatible Layer 1 built around four core innovations: MonadBFT consensus, deferred execution, optimistic parallel execution, and MonadDB. Targets ~10,000 TPS, ~400ms block time, and ~800ms finality while running unmodified Solidity contracts and standard JSON-RPC. Mainnet chain ID 143, testnet chain ID 10143.
- 01high-TPS EVM dapps (DEXes, perps, games)
- 02consumer apps that need sub-second finality
- 03unmodified Solidity contracts with parallel execution gains
- 04DeFi forks looking for cheaper, faster execution
- pnpm add viem wagmi
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_MONAD_RPC_URL | Client | Monad RPC URL (mainnet: https://rpc.monad.xyz, testnet: https://testnet-rpc.monad.xyz). |
| NEXT_PUBLIC_MONAD_CHAIN_ID | Client | Chain ID — 143 for mainnet, 10143 for testnet. |
Use viem with a `defineChain({ id: 143, name: 'Monad', nativeCurrency: { name: 'Monad', symbol: 'MON', decimals: 18 }, rpcUrls: { default: { http: [process.env.NEXT_PUBLIC_MONAD_RPC_URL!] } } })` (or the built-in chain once published in `viem/chains`). The JSON-RPC interface is identical to Ethereum, so wagmi connectors, Foundry (`forge create --rpc-url $MONAD_RPC ...`), Hardhat, and ethers all work unchanged. To get the parallel-execution speed-up, design contracts so the storage slots written by concurrent transactions don't conflict — Block-STM-style speculative execution re-runs conflicting txs serially. Use the public RPC for prototypes and a paid provider (QuickNode, Chainstack, dRPC, Dwellir, Triton) for production rate limits.
- ⚑Mainnet only launched November 24, 2025 — infra (indexers, subgraphs, bridges, oracles) is still maturing. Verify each provider supports Monad mainnet (chain 143) specifically before committing to a stack.
- ⚑Optimistic parallel execution means transactions that touch the same hot storage slot (e.g., an AMM pool, a single counter) get serialized at execution time — the TPS headline number does not apply to contention-heavy workloads. Profile gas + execution latency under realistic contention.
- ⚑Deferred execution decouples consensus from execution: a block is finalized by MonadBFT before its results are known, so receipts and state lag the block by one round. Apps that read state immediately after `eth_sendRawTransaction` returns may see stale data — wait for the receipt or a confirmation.
- ⚑Block time is ~400ms; many EVM tools assume 12s blocks (gas oracles, polling intervals, default reorg buffers). Tune polling, gas estimation, and confirmation thresholds explicitly for Monad.
- ⚑Public RPC is rate-limited — production apps must use a paid provider or run their own node. Do not ship `https://rpc.monad.xyz` directly in a client.
- ⚑Validator set and bridge ecosystem are still young. For high-value flows, treat Monad as an early-mainnet chain and avoid concentrating large TVL until canonical bridges and oracles harden.