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_getLogscurrently 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_sendRawTransactionmay 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_callandeth_estimateGasdo not accept EIP-4844 transaction type, because EIP-4844 is not supported.eth_callandeth_estimateGasdo not accept EIP-7702 transaction type, because EIP-7702 is not currently supported.eth_maxPriorityFeePerGascurrently returns a hardcoded suggested fee of 2 gwei. This is temporary.eth_feeHistorycurrently also returns default values as the base fee in testnet is hardcoded. This is temporary.eth_subscribedoes not support thesyncingornewPendingTransactionssubscription types- Reorganizations never occur in the
newHeadsandlogssubscription types (foreth_subscribe) -- only real-time data for finalized blocks is presented - Monad-specific extensions to the
newHeadsandlogssubcription types (calledmonadNewHeadsandmonadLogs) are provided to offer better latency