---
title: "Proved proof"
method: POST
path: "/proofs/proved"
tags: ["Proofs"]
---

# Proved proof

`POST /proofs/proved`

The prover indicates they've completed proving a block.

## Request body

- object
  - `block_number` number, required
  - `cluster_id` number, required
  - `proving_time` number, required — Time in milliseconds taken to generate the proof including witness generation. It excludes time taken for data fetching and any latency to submit the proof.
  - `proving_cycles` integer — Number of cycles taken to generate the proof.
  - `proof` string, required — Proof in base64 format
  - `verifier_id` string — vkey/image-id

## Response `200`

Proof submitted

- object
  - `proof_id` number, required

## Other responses

- `400` — Invalid request
- `401` — Invalid API key
- `404` — Cluster not found
- `409` — Proof already proved
- `500` — Internal server error

## Changes

- **2025-10-15** `4ce54bccb092` — 1 info
  - added the non-success response with the status `409`
- **2025-01-09** `4dab85a53735` — 1 warning
  - removed the request property `proof_id`
- **2024-12-13** `03e4420892da` — 1 breaking, 1 info
  - the `proof` request property contentEncoding changed from `base64` to ``
  - the `proof` request property's minLength was decreased from `1` to `0`
- **2024-12-11** `ab2cf98c6ecb` — 1 info
  - added the new optional request property `verifier_id`
- **2024-12-11** `9bdecaa2bd9f` — 1 breaking, 1 warning, 1 info
  - the `proof` request property contentEncoding changed from `` to `base64`
  - removed the request property `verifier_id`
  - the request property `proving_cycles` became optional

[Full history](https://skmtc.dev/ethproofs/apis/ethproofs-api/changes/proofs/proved/post.md)

---

[API](https://skmtc.dev/ethproofs/apis/ethproofs-api.md) · [All operations](https://skmtc.dev/ethproofs/apis/ethproofs-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ethproofs/ethproofs-api/revisions/cad0595821db/schema)
