# Ink RPC Methods

## `eth`

| Method | Notes | Compute Unit Value |
| --- | --- | --- |
| `eth_blockNumber` | Returns the current block height. | 1 |
| `eth_call` | Executes a new message call without creating a transaction on the blockchain. | 10 |
| `eth_chainId` | Returns the chain’s identifier in hexadecimal format. | 1 |
| `eth_estimateGas` | Estimates the gas required to send the transaction. | 50 |
| `eth_feeHistory` | Returns historical gas information for the specified range of blocks. | 1 |
| `eth_gasPrice` | Returns the current gas price in OKB. | 5 |
| `eth_getBalance` | Returns the balance of a given account address at a specified block number. | 5 |
| `eth_getBlockByHash` | Returns block information given its hash, including a boolean indicating success. | 5 |
| `eth_getBlockByNumber` | Returns information about a block by its block number. | 5 |
| `eth_getBlockTransactionCountByHash` | Returns the total transaction count for a specified block hash. | 5 |
| `eth_getBlockTransactionCountByNumber` | Returns the total transaction count for a specified block number. | 5 |
| `eth_getCode` | Returns the code at a given account address at a specific block number. | 5 |
| `eth_getLogs` | Returns an array of logs matching a specified filter object. | 50 |
| `eth_getProof` | Returns account and storage values, including Merkle proofs. | 5 |
| `eth_getStorageAt` | Returns the storage address for a given account address at a specific block. | 5 |
| `eth_getTransactionByBlockHashAndIndex` | Returns transaction details based on block hash and transaction index. | 5 |
| `eth_getTransactionByBlockNumberAndIndex` | Returns transaction details by block height and block index. | 5 |
| `eth_getTransactionByHash` | Returns details of a transaction from its hash. | 5 |
| `eth_getTransactionCount` | Returns the total transaction count for a given account address and block number. | 10 |
| `eth_getTransactionReceipt` | Returns the receipt of a transaction given its hash. | 5 |
| `eth_getUncleByBlockHashAndIndex` | Always returns empty. | 5 |
| `eth_getUncleByBlockNumberAndIndex` | Always returns empty. | 5 |
| `eth_getUncleCountByBlockHash` | Always returns empty. | 5 |
| `eth_getUncleCountByBlockNumber` | Always returns empty. | 5 |
| `eth_maxPriorityFeePerGas` | Returns the current maxPriorityFeePerGas per EIP-1559 rules. | 1 |
| `eth_sendRawTransaction` | Creates a new message, call transaction, or contract creation for signed transactions. | 100 |
| `eth_syncing` | Returns an object with the sync status or false if not syncing. | 1 |

## `debug`

These methods can only be used if the request parameters contains `tracer: callTracer`

| Method | Notes | Compute Unit Value |
| --- | --- | --- |
| `debug_traceBlock` | Trace all transactions within a block using a given tracer. | 50 |
| `debug_traceTransaction` | Returns all traces associated with a given transaction. | 50 |
| `debug_traceBlockByHash` | Executes all transactions in a block specified by its hash, using a tracer. | 50 |
| `debug_traceBlockByNumber` | Executes all transactions in a block specified by its number, using a tracer (trace mode required). | 50 |

## `net`

| Method | Notes | Compute Unit Value |
| --- | --- | --- |
| `net_version` | Returns the current network id. | 1 |
| `net_peerCount` | Returns the number of peers currently connected to the client. | 1 |

## `web3`

| Method | Notes | Compute Unit Value |
| --- | --- | --- |
| `web3_clientVersion` | Returns the Web3 client version. | 1 |
| `web3_sha3` | Returns keccak-256 (not the standardized SHA3-256) of the given data. | 1 |
