Skip to content

Supported Ethereum RPC Methods

Introduction

The Moonbeam team has collaborated closely with Parity on developing Frontier, an Ethereum compatibility layer for Substrate-based chains. This layer enables developers to run unmodified Ethereum dApps on Moonbeam seamlessly.

Nevertheless, not all Ethereum JSON-RPC methods are supported; some of those supported return default values (those related to Ethereum's PoW consensus mechanism in particular). This guide provides a comprehensive list of supported Ethereum JSON-RPC methods on Moonbeam. Developers can quickly reference this list to understand the available functionality for interfacing with Moonbeam's Ethereum-compatible blockchain.

Standard Ethereum JSON-RPC Methods

The basic JSON-RPC methods from the Ethereum API supported by Moonbeam are:

  • eth_protocolVersion — returns 1 by default
  • eth_syncing — returns an object with data about the sync status or false
  • eth_hashrate — returns "0x0" by default
  • eth_coinbase — returns the latest block author. Not necessarily a finalized block
  • eth_mining — returns false by default
  • eth_chainId — returns the chain ID used for signing at the current block
  • eth_gasPrice — returns the base fee per unit of gas used. This is currently the minimum gas price for each network
  • eth_accounts — returns a list of addresses owned by the client
  • eth_blockNumber — returns the highest available block number
  • eth_getBalance — returns the balance of the given address
  • eth_getStorageAt — returns the content of the storage at a given address
  • eth_getBlockByHash — returns information about the block of the given hash, including baseFeePerGas on post-London blocks
  • eth_getBlockByNumber — returns information about the block specified by block number, including baseFeePerGas on post-London blocks
  • eth_getBlockReceipts — returns all transaction receipts for a given block
  • eth_getTransactionCount — returns the number of transactions sent from the given address (nonce)
  • eth_getBlockTransactionCountByHash — returns the number of transactions in a block with a given block hash
  • eth_getBlockTransactionCountByNumber — returns the number of transactions in a block with a given block number
  • eth_getUncleCountByBlockHash — returns "0x0" by default
  • eth_getUncleCountByBlockNumber — returns "0x0" by default
  • eth_getCode — returns the code at the given address at the given block number
  • eth_sendTransaction — creates a new message call transaction or a contract creation, if the data field contains code. Returns the transaction hash or the zero hash if the transaction is not yet available
  • eth_sendRawTransaction — creates a new message call transaction or a contract creation for signed transactions. Returns the transaction hash or the zero hash if the transaction is not yet available
  • eth_call — executes a new message call immediately without creating a transaction on the blockchain, returning the value of the executed call
  • eth_estimateGas — returns an estimated amount of gas necessary for a given transaction to succeed. You can optionally specify a gasPrice or maxFeePerGas and maxPriorityFeePerGas
  • eth_feeHistory — returns baseFeePerGas, gasUsedRatio, oldestBlock, and reward for a specified range of up to 1024 blocks
  • eth_getTransactionByHash — returns the information about a transaction with a given hash. EIP-1559 transactions have maxPriorityFeePerGas and maxFeePerGas fields
  • eth_getTransactionByBlockHashAndIndex — returns information about a transaction at a given block hash and a given index position. EIP-1559 transactions have maxPriorityFeePerGas and maxFeePerGas fields
  • eth_getTransactionByBlockNumberAndIndex — returns information about a transaction at a given block number and a given index position. EIP-1559 transactions have maxPriorityFeePerGas and maxFeePerGas fields
  • eth_getTransactionReceipt — returns the transaction receipt of a given transaction hash
  • eth_getUncleByBlockHashAndIndex — returns null by default
  • eth_getUncleByBlockNumberAndIndex — returns null by default
  • eth_getLogs — returns an array of all logs matching a given filter object
  • eth_getWork — returns ["0x0","0x0","0x0"] by default
  • eth_submitWork — not supported on Moonbeam
  • eth_submitHashrate — not supported on Moonbeam
  • eth_newFilter — creates a filter object based on the input provided. Returns a filter ID
  • eth_newBlockFilter — creates a filter in the node to notify when a new block arrives. Returns a filter id
  • eth_getFilterChanges — polling method for filters (see methods above). Returns an array of logs that occurred since the last poll
  • eth_getFilterLogs — returns an array of all the logs matching the filter with a given ID
  • eth_uninstallFilter — uninstall a filter with a given ID. It should be used when polling is no longer needed. Filters timeout when they are not requested using eth_getFilterChanges after some time

Additional RPC Methods

Check out some of the non-standard Ethereum and Moonbeam-specific RPC methods:

Last update: May 10, 2024
| Created: April 17, 2024