> For the complete documentation index, see [llms.txt](https://docs.lumia.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.lumia.org/reference/json-rpc-api.md).

# JSON RPC API

**Who this is for:** developers calling Lumia RPC endpoints directly. This is the method table only: for setup and choosing an endpoint see [`/run-a-node/rpc-node/json-rpc-endpoints`](https://app.gitbook.com/s/chmhPiVNAafGw48c4oU2/run-a-node/rpc-node/json-rpc-endpoints), which transcludes this page.

### Standard Ethereum JSON-RPC

Lumia nodes run `cdk-erigon` and expose the standard Ethereum JSON-RPC namespaces. Both public endpoints run **cdk-erigon v2.65.0-RC2**.

Compatibility is therefore cdk-erigon's, not go-ethereum's, and the two differ at the edges. `eth_getProof` is **not** available on either endpoint, and neither is the long-deprecated `eth_getCompilers`.

`eth_feeHistory` and `eth_maxPriorityFeePerGas` are available on both.

Lumia's own public endpoints were probed directly. Both behave identically:

| Namespace  | On the public endpoints                                                       | Probe                                                                                                                                       |
| ---------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `trace_*`  | **Available**                                                                 | `trace_block` returned trace data on both chains                                                                                            |
| `txpool_*` | **Available**                                                                 | `txpool_status` returned `baseFee`, `pending`, `queued` on both                                                                             |
| `debug_*`  | **Partially available.** The tracing calls work; the raw-data getters do not. | `debug_traceCall` and `debug_traceBlockByNumber` returned results; `debug_getRawHeader` and `debug_getRawTransaction` returned error -32601 |
| `admin_*`  | **Not available**                                                             | `admin_nodeInfo` returned error -32601 on both                                                                                              |

If you are running your own node, this is the shape worth copying: tracing exposed, administration closed.

### Lumia-specific extensions (`zkevm_*`)

Quoted from docs.lumia.org:

| Method                                | Description                                                                                                                |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `zkevm_consolidatedBlockNumber`       | "Returns the latest block number that is connected to the latest batch verified."                                          |
| `zkevm_isBlockVirtualized`            | "Returns true if the provided block number is already connected to a batch that was already virtualized, otherwise false." |
| `zkevm_isBlockConsolidated`           | "Returns true if the provided block number is already connected to a batch that was already verified, otherwise false."    |
| `zkevm_batchNumber`                   | "Returns the latest batch number."                                                                                         |
| `zkevm_virtualBatchNumber`            | "Returns the latest virtual batch number."                                                                                 |
| `zkevm_verifiedBatchNumber`           | "Returns the latest verified batch number."                                                                                |
| `zkevm_batchNumberByBlockNumber`      | "Returns the batch number of the batch connected to the block."                                                            |
| `zkevm_getBatchByNumber`              | "Gets a batch for a given number"                                                                                          |
| `zkevm_getFullBlockByNumber`          | "Gets a block with extra information for a given number"                                                                   |
| `zkevm_getFullBlockByHash`            | "Gets a block with extra information for a given hash"                                                                     |
| `zkevm_getNativeBlockHashesInRange`   | "Returns the list of native block hashes."                                                                                 |
| `zkevm_getTransactionByL2Hash`        | "Returns the information about a transaction requested by transaction l2 hash."                                            |
| `zkevm_getTransactionReceiptByL2Hash` | "Returns the receipt information of a transaction by its l2 hash."                                                         |
| `zkevm_getExitRootsByGER`             | "Gets the exit roots accordingly to the provided Global Exit Root"                                                         |
| `zkevm_getLatestGlobalExitRoot`       | "Returns the latest global exit root used in a batch."                                                                     |
| `zkevm_estimateCounters`              | "Estimates the transaction ZK Counters"                                                                                    |
| `zkevm_estimateFee`                   | "Estimates the transaction Fee following the effective gas price rules"                                                    |
| `zkevm_estimateGasPrice`              | "Estimates the transaction Gas Price following the effective gas price rules"                                              |

### Deprecated / unsupported

docs.lumia.org itself lists none of the above as deprecated.

### Source / last verified

Standard/`zkevm_*` method text: checked at `docs.lumia.org/build/run-an-rpc/json-rpc-endpoints`.
