Skip to content

ProveKit Documentation

A client-side zero-knowledge proof toolkit for shipping Noir circuits to production, across native, browser, mobile, server, and on-chain verification.

ProveKit turns a Noir circuit into a verifiable WHIR proof, then lets you verify that proof wherever you need it, locally, in a Rust service, in the browser, on iOS or Android, or on-chain through a Groth16 recursive verifier.

From a fresh checkout of the ProveKit repository:

Terminal window
cd noir-examples/basic
cargo run --release --bin provekit-cli -- prepare # compile circuit → .pkp + .pkv
cargo run --release --bin provekit-cli -- prove # .pkp + Prover.toml → proof.np
cargo run --release --bin provekit-cli -- verify # .pkv + proof.np → exit 0

That’s the whole proving pipeline. Every other integration, Rust, WASM, mobile, is the same flow against the same artifacts. Walk through it step by step →

Quickstart

Prepare keys, generate proof.np, and verify it locally using the noir-examples/basic circuit.

Run the quickstart →

What is ProveKit?

A developer-friendly introduction to zero-knowledge proofs and the problems this toolkit solves.

Read the overview →

Pick an integration

Choose where ProveKit runs in your system, CLI, Rust, WASM, mobile, or recursive.

Integrations overview →

Deployment checklist

The provenance, evidence, and operational controls required before accepting proofs in production.

Review the checklist →

ProveKit runs the same proof artifacts across server, browser, and mobile. For the full menu, including CLI, HTTP verifier, and recursive paths, see Integrations overview.

.pkpProver key, produced by prepare, consumed by prove.
.pkvVerifier key, produced by prepare, consumed by verify and recursive export.
proof.npWHIR proof, produced by prove, consumed by every verification path.
r1cs.jsonRecursive-verifier R1CS, exported from a matching .pkv and proof.

Every artifact is bound to a specific circuit, commit, and hash choice. Treat them as versioned deployment objects. See Artifact lifecycle for the full pairing rules.