Japanese version: /ja/doc/_generated/interfaces.html
Interfaces
TL;DR
- External interfaces are provided via two paths:
Candid(direct canister) andHTTP JSON-RPC(gateway). - JSON-RPC is not full Ethereum compatibility; it is a constrained implementation.
- In
eth_sendRawTransaction, submit success is not execution success. Useeth_getTransactionReceipt.statusfor final success. - pending/mempool is not available as Ethereum-compatible APIs; use canister
get_pending(tx_id)to track submitted tx.
1. Candid API (Public Service)
Public definition: crates/ic-evm-wrapper/evm_canister.did
Main query methods
rpc_eth_chain_idrpc_eth_block_numberrpc_eth_get_block_by_numberrpc_eth_get_block_by_number_with_statusrpc_eth_get_transaction_by_eth_hashrpc_eth_get_transaction_by_tx_idrpc_eth_get_transaction_receipt_by_eth_hashrpc_eth_get_transaction_receipt_with_status_by_eth_hashrpc_eth_get_transaction_receipt_with_status_by_tx_idrpc_eth_get_balancerpc_eth_get_coderpc_eth_get_storage_atrpc_eth_call_objectrpc_eth_call_rawtxrpc_eth_estimate_gas_objectrpc_eth_get_logs_pagedrpc_eth_get_block_number_by_hashrpc_eth_gas_pricerpc_eth_max_priority_fee_per_gasrpc_eth_fee_historyexpected_nonce_by_addressget_receiptget_pendingexport_blocksget_ops_statushealthmetrics
Main update methods
rpc_eth_send_raw_transactionsubmit_ic_txset_block_gas_limitset_instruction_soft_limitset_prune_policyset_pruning_enabledset_log_filterprune_blocks
2. Gateway JSON-RPC
Implementation: handleRpc switch in tools/rpc-gateway/src/handlers.ts
Implemented methods
web3_clientVersionnet_versioneth_chainIdeth_blockNumbereth_gasPriceeth_maxPriorityFeePerGaseth_feeHistoryeth_syncingeth_getBlockByNumbereth_getTransactionByHasheth_getTransactionReceipteth_getBalanceeth_getTransactionCounteth_getCodeeth_getStorageAteth_getLogseth_calleth_estimateGaseth_sendRawTransaction
Unsupported methods (README compatibility matrix)
eth_getBlockByHasheth_getTransactionByBlockHashAndIndexeth_getTransactionByBlockNumberAndIndexeth_getBlockTransactionCountByHasheth_getBlockTransactionCountByNumbereth_newFiltereth_getFilterChangeseth_uninstallFiltereth_subscribeeth_unsubscribeeth_pendingTransactions
3. Canonical Constraint References
- Canonical overall policy:
../rpc/overview.md - Canonical JSON-RPC differences:
../compatibility/json-rpc-deviations.md - Canonical pending/mempool policy: “Pending/Mempool Policy” in
../rpc/overview.md
This page is intentionally limited to interface inventory. Detailed behavior differences belong to the canonical pages above.
4. Return/Identifier Notes
- Internal canister identifier:
tx_id - Ethereum-compatible identifier:
eth_tx_hash - Gateway
eth_sendRawTransactionresolves and returnseth_tx_hashfrom canister-returnedtx_id.
5. Type Boundaries (Representative)
RpcCallObjectView(Candid)EthBlockView/EthTxView/EthReceiptViewRpcBlockLookupView(NotFound/Found/Pruned)RpcReceiptLookupView(NotFound/Found/PossiblyPruned/Pruned)PendingStatusView(Queued/Included/Dropped/Unknown)
Sources
crates/ic-evm-wrapper/evm_canister.didtools/rpc-gateway/src/handlers.tstools/rpc-gateway/README.mdcrates/ic-evm-wrapper/src/lib.rs(get_pending,rpc_eth_send_raw_transaction)