# checkpoint\_proof

## Generates a zero-knowledge proof that all data blobs up to a specified slot are valid.

> \- The slot should be the latest finalized slot you want included in the proof.\
> \- Returns a \*\*request\_id\*\* immediately while the proof is built in the background.\
> \- Submits the finished proof to the on-chain verifier program automatically, so no additional action is required.\
> \
> This endpoint generates and submits a ZK proof to Solana of all uploaded blobs from the last checkpoint (or genesis if no checkpoint exists) up to the specified slot.<br>

```json
{"openapi":"3.0.1","info":{"title":"Data Indexer — checkpoint_proof","version":"0.1.0"},"tags":[{"name":"Proofs","description":"Methods for initiating and tracking proof generation"}],"servers":[{"url":"https://devnet.data-anchor.termina.technology","description":"Devnet endpoint"}],"paths":{"/proof":{"post":{"tags":["Proofs"],"operationId":"checkpointProof","summary":"Generates a zero-knowledge proof that all data blobs up to a specified slot are valid.","description":"- The slot should be the latest finalized slot you want included in the proof.\n- Returns a **request_id** immediately while the proof is built in the background.\n- Submits the finished proof to the on-chain verifier program automatically, so no additional action is required.\n\nThis endpoint generates and submits a ZK proof to Solana of all uploaded blobs from the last checkpoint (or genesis if no checkpoint exists) up to the specified slot.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckpointProofRequest"}}}},"responses":{"200":{"description":"JSON-RPC success (request_id) or error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcResponse_CheckpointProof"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"500":{"$ref":"#/components/responses/ServerError"}}}}},"components":{"schemas":{"CheckpointProofRequest":{"allOf":[{"$ref":"#/components/schemas/RpcRequestBase"},{"type":"object","required":["params"],"properties":{"params":{"$ref":"#/components/schemas/CheckpointProofParams"}}}]},"RpcRequestBase":{"type":"object","required":["id","jsonrpc","method"],"properties":{"id":{"type":"string","description":"Client-generated request ID"},"jsonrpc":{"type":"string","enum":["2.0"]},"method":{"type":"string","enum":["checkpoint_proof"]}}},"CheckpointProofParams":{"type":"object","required":["blober","slot","customer_elf"],"properties":{"blober":{"type":"string","description":"Blober pubkey (Base58 string)"},"slot":{"type":"integer","format":"int64","description":"Target slot for the proof"},"customer_elf":{"type":"string","description":"Base64-encoded ELF bytes or identifier for the customer proof program"}}},"RpcResponse_CheckpointProof":{"type":"object","required":["jsonrpc","id"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"type":"string"},"result":{"type":"string","description":"request_id to poll via `get_proof_request_status`"},"error":{"$ref":"#/components/schemas/RpcError"}}},"RpcError":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"type":"object","nullable":true}}}},"responses":{"BadRequest":{"description":"Invalid request payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcError"}}}},"ServerError":{"description":"Internal indexer error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcError"}}}}}}}
```

## The RpcRequestBase object

```json
{"openapi":"3.0.1","info":{"title":"Data Indexer — checkpoint_proof","version":"0.1.0"},"components":{"schemas":{"RpcRequestBase":{"type":"object","required":["id","jsonrpc","method"],"properties":{"id":{"type":"string","description":"Client-generated request ID"},"jsonrpc":{"type":"string","enum":["2.0"]},"method":{"type":"string","enum":["checkpoint_proof"]}}}}}}
```

## The CheckpointProofParams object

```json
{"openapi":"3.0.1","info":{"title":"Data Indexer — checkpoint_proof","version":"0.1.0"},"components":{"schemas":{"CheckpointProofParams":{"type":"object","required":["blober","slot","customer_elf"],"properties":{"blober":{"type":"string","description":"Blober pubkey (Base58 string)"},"slot":{"type":"integer","format":"int64","description":"Target slot for the proof"},"customer_elf":{"type":"string","description":"Base64-encoded ELF bytes or identifier for the customer proof program"}}}}}}
```

## The CheckpointProofRequest object

```json
{"openapi":"3.0.1","info":{"title":"Data Indexer — checkpoint_proof","version":"0.1.0"},"components":{"schemas":{"CheckpointProofRequest":{"allOf":[{"$ref":"#/components/schemas/RpcRequestBase"},{"type":"object","required":["params"],"properties":{"params":{"$ref":"#/components/schemas/CheckpointProofParams"}}}]},"RpcRequestBase":{"type":"object","required":["id","jsonrpc","method"],"properties":{"id":{"type":"string","description":"Client-generated request ID"},"jsonrpc":{"type":"string","enum":["2.0"]},"method":{"type":"string","enum":["checkpoint_proof"]}}},"CheckpointProofParams":{"type":"object","required":["blober","slot","customer_elf"],"properties":{"blober":{"type":"string","description":"Blober pubkey (Base58 string)"},"slot":{"type":"integer","format":"int64","description":"Target slot for the proof"},"customer_elf":{"type":"string","description":"Base64-encoded ELF bytes or identifier for the customer proof program"}}}}}}
```

## The RpcResponse\_CheckpointProof object

```json
{"openapi":"3.0.1","info":{"title":"Data Indexer — checkpoint_proof","version":"0.1.0"},"components":{"schemas":{"RpcResponse_CheckpointProof":{"type":"object","required":["jsonrpc","id"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"type":"string"},"result":{"type":"string","description":"request_id to poll via `get_proof_request_status`"},"error":{"$ref":"#/components/schemas/RpcError"}}},"RpcError":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"type":"object","nullable":true}}}}}}
```

## The RpcError object

```json
{"openapi":"3.0.1","info":{"title":"Data Indexer — checkpoint_proof","version":"0.1.0"},"components":{"schemas":{"RpcError":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"type":"object","nullable":true}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.termina.technology/documentation/open-source-contributions/modules/data-anchor/indexing-data/getting-proofs/checkpoint_proof.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
