Skip to main content

RPC Behaviorial 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 discrepancies listed below.

  1. eth_getLogs currently have a maximum block range of 1000 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.
  2. 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.
  3. eth_call and eth_estimateGas do not accept EIP-4844 transaction type yet. This is temporary.
  4. eth_maxPriorityFeePerGas currently returns a hardcoded suggested fee of 2 gwei. This is temporary.
  5. eth_feeHistory currently also returns default values as the base fee in testnet is hardcoded. This is temporary.
  6. Websockets are not yet supported. This is temporary.