DevelopersEVM DevelopmentEVM RPC Methods

Substrate and Custom JSON-RPC Methods

RPCs are exposed as a method on a specific module. This signifies that once available, you can invoke any RPC via api.rpc.<module>.<method>(...params[]). This is also applicable for accessing Ethereum RPCs using the Polkadot.js API, in the format of polkadotApi.rpc.eth.*.

Certain methods accessible via the Polkadot.js API interface are also available as JSON-RPC endpoints on Tangle Network nodes. This section offers some examples; you can request a list of exposed RPC endpoints by invoking api.rpc.rpc.methods() or the rpc_methods endpoint indicated below.

Supported Ethereum methods

  • 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 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_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 given address at given block number
  • eth_sendTransaction — creates 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 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 block chain, returning the value of the executed call
  • eth_estimateGas — returns an estimate amount of how much gas is 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. After London support was added in runtime 1200, a new field named effectiveGasPrice has been added to the receipt, specifying the gas price of the transaction
  • 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

More information will be added to this page.

Polkadot.js API Utility Functions

The Polkadot.js API also incorporates numerous utility libraries for computing frequently used cryptographic primitives and hash functions. You can view the full list at https://www.npmjs.com/package/@polkadot/util-crypto/v/0.32.19.