# Supported methods

Source: https://docs.graphops.xyz/rpc/methods

GraphOps supports standard Ethereum-compatible JSON-RPC methods on supported EVM networks. Methods
are available over HTTPS unless the transport column says WebSocket only. Current credit rates and
method classes appear below.

Bitcoin RPC uses native Bitcoin JSON-RPC method names rather than the EVM methods listed on this
page. See [API integration](./api) for the Bitcoin endpoint and request shape.

Method behavior can differ by network and node client. Check the notes for the methods you use;
for an unlisted method or network-specific feature, ask
[GraphOps support](https://platform.graphops.xyz/organizations/current/overview?support=open) about availability.

## Choose a method

* Use `eth_call`, `eth_getBalance`, `eth_getCode`, and `eth_getStorageAt` for direct state reads.
* Use `eth_getLogs` for historical event backfills and WebSocket `logs` subscriptions for live event
streams.
* Use `eth_sendRawTransaction` for transaction submission. Sign transactions in your application or
wallet.
* Use `safe`, `finalized`, or explicit block references when consistency matters more than freshness.
* Use [Substreams](/substreams) or [Subgraphs](/subgraphs) when the
workflow is better served by streaming or indexed GraphQL access.

## Current credit rates

Current rates as of Nov 14, 2026, 12:11 AM UTC.

| Usage component | Applies to | Rate |
| --- | --- | --- |
| RPC calls | Default | 20 credits per RPC call |
| RPC calls | RPC method cost class: Standard | 20 credits per RPC call |
| RPC calls | RPC method cost class: Compute-heavy | 30 credits per RPC call |
| RPC calls | RPC method cost class: Log scans | 40 credits per RPC call |
| RPC calls | RPC method cost class: State proofs | 40 credits per RPC call |
| RPC calls | RPC method cost class: Trace and debug | 60 credits per RPC call |
| Subscription events | Default | 20 credits per subscription event |
| Subscription events | Subscription type: newHeads | 20 credits per subscription event |
| Subscription events | Subscription type: logs | 20 credits per subscription event |
| Subscription events | Subscription type: newPendingTransactions | 20 credits per subscription event |
| Subscription events | Subscription type: syncing | 20 credits per subscription event |
| Response bytes | Default | 0 credits per GiB |
| Response bytes | RPC method cost class: Log scans | 1,500,000 credits per GiB |

### RPC method cost class

| Class | Methods |
| --- | --- |
| Compute-heavy | `eth_call`, `eth_createAccessList`, `eth_estimateGas` |
| Log scans | `eth_getLogs` |
| State proofs | `eth_getProof` |
| Trace and debug | `debug_…`, `trace_…` |
| Standard | All methods not matched by another class |

## Request example

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_blockNumber",
  "params": []
}

```

Output

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x191161d"
}
```

JSON-RPC version

Matches the id you sent

Latest block in decimal: 26,285,597

## Client and network

| Method                | Params   | Returns                       | Transport | Notes                                            |
| --------------------- | -------- | ----------------------------- | --------- | ------------------------------------------------ |
| `web3_clientVersion`  | `[]`     | Client version string         | HTTPS     | Useful for diagnostics, not feature detection.   |
| `web3_sha3`           | `[data]` | Keccak-256 hash               | HTTPS     | Input and output are hex-encoded.                |
| `net_version`         | `[]`     | Network ID string             | HTTPS     | Prefer `eth_chainId` for EVM chain identity.     |
| `net_listening`       | `[]`     | Boolean                       | HTTPS     | Compatibility method.                            |
| `net_peerCount`       | `[]`     | Peer count hex quantity       | HTTPS     | Value depends on upstream node and network.      |
| `eth_chainId`         | `[]`     | EIP-155 chain ID hex quantity | HTTPS     | Use before signing transactions.                 |
| `eth_protocolVersion` | `[]`     | Protocol version string       | HTTPS     | Legacy compatibility method.                     |
| `eth_syncing`         | `[]`     | Sync object or `false`        | HTTPS     | Hosted endpoints should normally return `false`. |

## Blocks and fees

| Method                                 | Params                                         | Returns                        | Transport | Notes                                                                                      |
| -------------------------------------- | ---------------------------------------------- | ------------------------------ | --------- | ------------------------------------------------------------------------------------------ |
| `eth_blockNumber`                      | `[]`                                           | Latest known block number      | HTTPS     | Use as an anchor for repeatable reads.                                                     |
| `eth_getBlockByHash`                   | `[blockHash, hydrateTransactions]`             | Block object or `null`         | HTTPS     | Set hydration to `true` only when full transactions are needed.                            |
| `eth_getBlockByNumber`                 | `[blockTagOrNumber, hydrateTransactions]`      | Block object or `null`         | HTTPS     | Supports `latest`, `safe`, `finalized`, and explicit block numbers.                        |
| `eth_getBlockReceipts`                 | `[blockHashOrNumber]`                          | Receipt array or `null`        | HTTPS     | More efficient than many individual receipt lookups when supported by the upstream client. |
| `eth_getBlockTransactionCountByHash`   | `[blockHash]`                                  | Transaction count hex quantity | HTTPS     | Returns `null` if the block is unknown.                                                    |
| `eth_getBlockTransactionCountByNumber` | `[blockTagOrNumber]`                           | Transaction count hex quantity | HTTPS     | Use explicit blocks for repeatable reads.                                                  |
| `eth_gasPrice`                         | `[]`                                           | Gas price hex quantity         | HTTPS     | For EIP-1559 transactions, prefer fee history and priority fee methods.                    |
| `eth_maxPriorityFeePerGas`             | `[]`                                           | Priority fee hex quantity      | HTTPS     | Client and network behavior can vary.                                                      |
| `eth_feeHistory`                       | `[blockCount, newestBlock, rewardPercentiles]` | Fee history object             | HTTPS     | Use bounded block counts.                                                                  |
| `eth_blobBaseFee`                      | `[]`                                           | Blob base fee hex quantity     | HTTPS     | Relevant for networks with EIP-4844 blob gas.                                              |

## State and execution

| Method                    | Params                            | Returns                          | Transport | Notes                                                               |
| ------------------------- | --------------------------------- | -------------------------------- | --------- | ------------------------------------------------------------------- |
| `eth_getBalance`          | `[address, block]`                | Wei balance hex quantity         | HTTPS     | Use explicit blocks for repeatable reads.                           |
| `eth_getStorageAt`        | `[address, slot, block]`          | 32-byte storage value            | HTTPS     | Archive access is available for historical state.                   |
| `eth_getTransactionCount` | `[address, block]`                | Account nonce hex quantity       | HTTPS     | Use `pending` carefully when preparing transactions.                |
| `eth_getCode`             | `[address, block]`                | Contract bytecode                | HTTPS     | Empty bytecode is returned for EOAs and nonexistent contracts.      |
| `eth_getProof`            | `[address, storageKeys, block]`   | Account and storage proof object | HTTPS     | Useful for verification workflows.                                  |
| `eth_call`                | `[transactionCallObject, block]`  | Return data bytes                | HTTPS     | Contract reverts are application results unless the envelope fails. |
| `eth_estimateGas`         | `[transactionCallObject, block?]` | Estimated gas hex quantity       | HTTPS     | Treat as an estimate, not a guarantee.                              |
| `eth_createAccessList`    | `[transactionCallObject, block?]` | Access-list result object        | HTTPS     | Useful for advanced transaction preparation.                        |

## Transactions

| Method                                    | Params                      | Returns                      | Transport | Notes                                                                        |
| ----------------------------------------- | --------------------------- | ---------------------------- | --------- | ---------------------------------------------------------------------------- |
| `eth_sendRawTransaction`                  | `[signedTransactionData]`   | Transaction hash             | HTTPS     | Recommended submission path. Sign locally.                                   |
| `eth_sendTransaction`                     | `[transactionObject]`       | Transaction hash             | HTTPS     | Hosted RPC does not custody user keys; most apps should not rely on this.    |
| `eth_sign`                                | `[address, data]`           | Signature                    | HTTPS     | Hosted RPC does not custody user keys; prefer wallet or application signing. |
| `eth_signTransaction`                     | `[transactionObject]`       | Signed transaction data      | HTTPS     | Hosted RPC does not custody user keys.                                       |
| `eth_getTransactionByHash`                | `[transactionHash]`         | Transaction object or `null` | HTTPS     | Returns `null` until the transaction is known to the node.                   |
| `eth_getTransactionByBlockHashAndIndex`   | `[blockHash, index]`        | Transaction object or `null` | HTTPS     | Use when the block hash is already known.                                    |
| `eth_getTransactionByBlockNumberAndIndex` | `[blockTagOrNumber, index]` | Transaction object or `null` | HTTPS     | Use explicit block numbers for repeatable reads.                             |
| `eth_getTransactionReceipt`               | `[transactionHash]`         | Receipt object or `null`     | HTTPS     | Returns `null` while pending.                                                |
| `eth_accounts`                            | `[]`                        | Address array                | HTTPS     | Hosted RPC normally returns an empty list.                                   |

## Logs and filters

| Method                            | Params           | Returns                                    | Transport | Notes                                                                      |
| --------------------------------- | ---------------- | ------------------------------------------ | --------- | -------------------------------------------------------------------------- |
| `eth_getLogs`                     | `[filterObject]` | Log array                                  | HTTPS     | Use bounded block ranges; broad archive scans can hit organization limits. |
| `eth_newFilter`                   | `[filterObject]` | Filter ID                                  | HTTPS     | Store filter IDs only for short-lived polling.                             |
| `eth_newBlockFilter`              | `[]`             | Filter ID                                  | HTTPS     | Prefer WebSocket `newHeads` for long-lived streams.                        |
| `eth_newPendingTransactionFilter` | `[]`             | Filter ID                                  | HTTPS     | Pending transaction visibility varies by network.                          |
| `eth_getFilterChanges`            | `[filterId]`     | Log, block hash, or transaction hash array | HTTPS     | Poll frequently enough to avoid filter expiration.                         |
| `eth_getFilterLogs`               | `[filterId]`     | Log array                                  | HTTPS     | Use `eth_getLogs` for stateless historical reads.                          |
| `eth_uninstallFilter`             | `[filterId]`     | Boolean                                    | HTTPS     | Always uninstall filters created by short-lived jobs.                      |

## Execution traces

The `trace_*` methods replay transactions and blocks and return their internal calls and state
changes. They run only on networks whose Tracing column shows **Yes** in
[Supported networks](./networks#supported-endpoints). Tracing a past block also needs
archive access on that network. Traces are heavy: trace one transaction or block at a time, and
keep `trace_filter` ranges narrow.

| Method                          | Params                                           | Returns                | Transport | Notes                                                             |
| ------------------------------- | ------------------------------------------------ | ---------------------- | --------- | ----------------------------------------------------------------- |
| `trace_transaction`             | `[transactionHash]`                              | Array of call traces   | HTTPS     | Every internal call of one mined transaction.                     |
| `trace_get`                     | `[transactionHash, traceIndices]`                | Call trace or `null`   | HTTPS     | One trace from a transaction by its position.                     |
| `trace_block`                   | `[blockTagOrNumber]`                             | Array of call traces   | HTTPS     | Responses grow with the block's transaction count.                |
| `trace_filter`                  | `[filterObject]`                                 | Array of call traces   | HTTPS     | Filter by block range and from or to address; use bounded ranges. |
| `trace_call`                    | `[transactionCallObject, traceTypes, block]`     | Trace results          | HTTPS     | Traces a call without submitting it.                              |
| `trace_callMany`                | `[[transactionCallObject, traceTypes][], block]` | Array of trace results | HTTPS     | Traces calls in sequence on the same state.                       |
| `trace_replayTransaction`       | `[transactionHash, traceTypes]`                  | Trace results          | HTTPS     | `traceTypes` selects `trace`, `vmTrace` and `stateDiff`.          |
| `trace_replayBlockTransactions` | `[blockTagOrNumber, traceTypes]`                 | Array of trace results | HTTPS     | Replays every transaction in a block.                             |

## WebSocket subscriptions

| Method            | Params                         | Returns         | Transport | Notes                                                                                |
| ----------------- | ------------------------------ | --------------- | --------- | ------------------------------------------------------------------------------------ |
| `eth_subscribe`   | `[subscriptionType, options?]` | Subscription ID | WebSocket | Supported types include `newHeads`, `logs`, `newPendingTransactions`, and `syncing`. |
| `eth_unsubscribe` | `[subscriptionId]`             | Boolean         | WebSocket | Unsubscribe before closing long-lived clients when possible.                         |

## Legacy compatibility

These methods exist for compatibility with Ethereum clients and older tooling. Some return values
are not useful on proof-of-stake or L2 networks.

| Method                              | Params                      | Returns                      | Transport | Notes                                       |
| ----------------------------------- | --------------------------- | ---------------------------- | --------- | ------------------------------------------- |
| `eth_coinbase`                      | `[]`                        | Address                      | HTTPS     | Legacy compatibility method.                |
| `eth_mining`                        | `[]`                        | Boolean                      | HTTPS     | Usually `false` on modern hosted endpoints. |
| `eth_hashrate`                      | `[]`                        | Hashrate hex quantity        | HTTPS     | Usually `0x0` on modern hosted endpoints.   |
| `eth_getWork`                       | `[]`                        | Work array                   | HTTPS     | Legacy proof-of-work method.                |
| `eth_submitWork`                    | `[nonce, powHash, digest]`  | Boolean                      | HTTPS     | Legacy proof-of-work method.                |
| `eth_submitHashrate`                | `[hashrate, id]`            | Boolean                      | HTTPS     | Legacy proof-of-work method.                |
| `eth_getUncleCountByBlockHash`      | `[blockHash]`               | Uncle count hex quantity     | HTTPS     | Legacy Ethereum block structure.            |
| `eth_getUncleCountByBlockNumber`    | `[blockTagOrNumber]`        | Uncle count hex quantity     | HTTPS     | Legacy Ethereum block structure.            |
| `eth_getUncleByBlockHashAndIndex`   | `[blockHash, index]`        | Uncle block object or `null` | HTTPS     | Legacy Ethereum block structure.            |
| `eth_getUncleByBlockNumberAndIndex` | `[blockTagOrNumber, index]` | Uncle block object or `null` | HTTPS     | Legacy Ethereum block structure.            |

## Next steps

* [API integration](./api): Shape request envelopes, batches, and WebSocket connections.
* [Read contract state](./guides/read-contract-state): Use `eth_call` at an explicit block.
* [Fetch logs](./guides/fetch-logs): Use `eth_getLogs` with a bounded block range.