Differences between Monad and Ethereum
Virtual Machine
-
Max contract size is 128kb (up from 24.5kb in Ethereum).
-
The BLS12 precompiles introduced in EIP-2537 (Pectra fork) are not yet supported. They will be added before mainnet.
Transactions
-
Transactions are charged based on gas limit rather than gas usage, i.e. total tokens deducted from the sender's balance is
value + gas_price * gas_limit
. As discussed in Gas in Monad, this is a DOS-prevention measure for asynchronous execution. This may be revised before mainnet. -
Transaction type 3 (EIP-4844 type aka blob transactions) is not yet supported in testnet. It will be added before mainnet.
-
EIP-7702, which allows EOAs to point to an external smart contract and behave as if their code were set to that smart contract's code, is not yet supported in testnet. It will be added before mainnet.
-
There is no global mempool. For efficiency, transactions are forwarded to the next few leaders as described in Local Mempool.
Historical Data
- Due to Monad's high throughput, full nodes do not provide access to arbitrary historic state, as this would require too much storage. See Historical Data on Monad for a fuller discussion.
RPC
See: RPC Differences