RPC Differences
Monad aims to match the RPC behavior as close as possible to Geth’s behavior, but due to fundamental architectural differences, there are some differences listed below.
eth_getLogs
currently have a maximum block range of 100 blocks. Because Monad blocks are much larger than Ethereum blocks, we recommend using small block ranges (e.g. 1-10 blocks) for optimal performance. When requesting more, requests can take a long time to be fulfilled and may timeout.eth_sendRawTransaction
may not immediately reject transactions with a nonce gap or insufficient gas balance. Due to asynchronous execution, the RPC server may not have the latest world view. Thus these transactions are allowed as they may become valid transactions during block creation.eth_call
andeth_estimateGas
do not accept EIP-4844 transaction type, because EIP-4844 is not supported.eth_call
andeth_estimateGas
do not accept EIP-7702 transaction type, because EIP-7702 is not currently supported.eth_maxPriorityFeePerGas
currently returns a hardcoded suggested fee of 2 gwei. This is temporary.eth_feeHistory
currently also returns default values as the base fee in testnet is hardcoded. This is temporary.eth_subscribe
does not support thesyncing
ornewPendingTransactions
subscription types- Reorganizations never occur in the
newHeads
andlogs
subscription types (foreth_subscribe
) -- only real-time data for finalized blocks is presented - Monad-specific extensions to the
newHeads
andlogs
subcription types (calledmonadNewHeads
andmonadLogs
) are provided to offer better latency