> ## Documentation Index
> Fetch the complete documentation index at: https://base-a060aa97-mux-basectl-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit and check ZK proofs with basectl proofs

> Submit ZK proof requests to the internal Base prover service to speed up finality for a range of blocks, and check or list your proof requests with basectl proofs.

`basectl proofs` submits and checks ZK proof requests on the internal prover service. You use it to speed up finality for a range of blocks when needed.

<Note>
  The prover service is internal, so the built-in configs don't include its address. Provide it in one of these ways (checked in this order): the `--prover-rpc` flag, the `BASECTL_PROVER_RPC` environment variable, or a `prover_rpc` value in your config.
</Note>

## Commands

* `basectl proofs finalize <START_BLOCK> <NUM_BLOCKS>` requests a proof for a range of consecutive L2 blocks.
* `basectl proofs status <SESSION_ID>` shows the status and result of a proof request.
* `basectl proofs list` lists your proof requests.

## Flags

### proofs finalize

| Flag                               | Description                                                                                                                                                                                               |
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--session-id <ID>`                | A unique ID for the request. If you leave it out, `basectl` builds one from the network name and block range, so re-running the same command reuses the existing request instead of creating a duplicate. |
| `--l1-head <HASH>`                 | The L1 head hash to use. If you leave it out, the prover service picks one.                                                                                                                               |
| `--sequence-window <N>`            | The sequencing window to pass to the prover.                                                                                                                                                              |
| `--intermediate-root-interval <N>` | The intermediate output-root interval to pass to the prover.                                                                                                                                              |
| `--wait`                           | Wait for the proof to finish, then exit with an error if it failed or didn't complete in time.                                                                                                            |
| `--prover-rpc <URL>`               | The prover-service URL. Can also come from `BASECTL_PROVER_RPC` or `prover_rpc` in your config.                                                                                                           |
| `--yes`                            | Skip the confirmation prompt.                                                                                                                                                                             |
| `--json`                           | Print the result as JSON. Requires `--yes` so an automated run never waits for input.                                                                                                                     |

### proofs status

| Flag                 | Description                                                                                                    |
| -------------------- | -------------------------------------------------------------------------------------------------------------- |
| `--prover-rpc <URL>` | The prover-service URL. Can also come from `BASECTL_PROVER_RPC` or `prover_rpc` in your config.                |
| `--json`             | Print JSON instead of text.                                                                                    |
| `--raw`              | Add to `--json` to print the raw response from the prover service. Using `--raw` without `--json` is an error. |

### proofs list

| Flag                 | Description                                                                                     |
| -------------------- | ----------------------------------------------------------------------------------------------- |
| `--status <STATUS>`  | Show only proofs with this status: `queued`, `running`, `succeeded`, or `failed`.               |
| `--offset <N>`       | Number of rows to skip. Default `0`.                                                            |
| `--limit <N>`        | Maximum number of rows to return. Default `50`.                                                 |
| `--prover-rpc <URL>` | The prover-service URL. Can also come from `BASECTL_PROVER_RPC` or `prover_rpc` in your config. |
| `--json`             | Print JSON instead of text.                                                                     |

## Examples

```bash Work with proofs theme={null}
# Request a proof for 10 blocks (asks for confirmation first)
basectl -c devnet proofs finalize 820122 10 --prover-rpc https://your-prover.example/

# Request a proof without a prompt and wait for it to finish
basectl -c devnet proofs finalize 820122 10 --prover-rpc https://your-prover.example/ --yes --wait

# Check the status of a request
basectl -c devnet proofs status <SESSION_ID> --prover-rpc https://your-prover.example/

# List running requests as JSON
basectl -c devnet proofs list --status running --prover-rpc https://your-prover.example/ --json | jq .
```

## Related

* [basectl overview](/base-chain/node-operators/basectl/overview)
* [Proof system specifications](/base-chain/specs/protocol/proofs/index)
* [Diagnose node health](/base-chain/node-operators/basectl/doctor)
