JSON RPC Compatibility
All the JSON-RPC calls are inherently supported thanks to the full functioning EOS EVM node which is built based on Silkworm node. However, some methods are blocked in the current phase for the following reasons:
- Some methods are deprecated or discontinued.
- Some methods are designed for the local node scenario. They are not exposed to the public API, however you can access them when you deploy your own EOS EVM node.
- Some methods involve complex logic, therefore more tests need to be performed before they will be exposed.
RPC List
Notes:
- The JSON-RPC calls listed below do NOT include methods that are blocked in the current phase.
- "EOS EVM Node-SlowQuery" is designated for nodes dedicated to handle slow or heavy queries. This is done so that those slow queries do not stop or degrade the performance of regular nodes serving other method requests.
RPC Method | Destination |
---|---|
net_version | EOS EVM node |
eth_blockNumber | EOS EVM node |
eth_chainId | EOS EVM node |
eth_protocolVersion | EOS EVM node |
eth_gasPrice | Tx Wrapper |
eth_getBlockByHash | EOS EVM node |
eth_getBlockByNumber | EOS EVM node |
eth_getBlockTransactionCountByHash | EOS EVM node |
eth_getBlockTransactionCountByNumber | EOS EVM node |
eth_getUncleByBlockHashAndIndex | EOS EVM node |
eth_getUncleByBlockNumberAndIndex | EOS EVM node |
eth_getUncleCountByBlockHash | EOS EVM node |
eth_getUncleCountByBlockNumber | EOS EVM node |
eth_getTransactionByHash | EOS EVM node |
eth_getRawTransactionByHash | EOS EVM node |
eth_getTransactionByBlockHashAndIndex | EOS EVM node |
eth_getRawTransactionByBlockHashAndIndex | EOS EVM node |
eth_getTransactionByBlockNumberAndIndex | EOS EVM node |
eth_getRawTransactionByBlockNumberAndIndex | EOS EVM node |
eth_getTransactionReceipt | EOS EVM node |
eth_getBlockReceipts | EOS EVM node |
eth_estimateGas | EOS EVM node |
eth_getBalance | EOS EVM node |
eth_getCode | EOS EVM node |
eth_getTransactionCount | EOS EVM node |
eth_getStorageAt | EOS EVM node |
eth_call | EOS EVM node |
eth_callBundle | EOS EVM node |
eth_createAccessList | EOS EVM node |
eth_getLogs | EOS EVM Node-SlowQuery |
eth_sendRawTransaction | Tx Wrapper |
debug_traceBlockByHash | EOS EVM Node-SlowQuery |
debug_traceBlockByNumber | EOS EVM Node-SlowQuery |
debug_traceTransaction | EOS EVM Node-SlowQuery |
debug_traceCall | EOS EVM Node-SlowQuery |
trace_call | EOS EVM Node-SlowQuery |
trace_callMany | EOS EVM Node-SlowQuery |
trace_rawTransaction | EOS EVM Node-SlowQuery |
trace_replayBlockTransactions | EOS EVM Node-SlowQuery |
trace_replayTransaction | EOS EVM Node-SlowQuery |
trace_block | EOS EVM Node-SlowQuery |
trace_filter | EOS EVM Node-SlowQuery |
trace_get | EOS EVM Node-SlowQuery |
trace_transaction | EOS EVM Node-SlowQuery |
Batched Requests
Sending an array of request objects as the body to the JSON-RPC API is not currently supported. The server will return a 400 error in this case. If this is impacting you, try a workaround until this is supported.
Example failing request body:
[{"method":"eth_chainId","params":[],"id":1,"jsonrpc":"2.0"},{"method":"eth_blockNumber","params":[],"id":2,"jsonrpc":"2.0"}]