Skip to content

Project status and versioning

ProveKit is under active development. Code, proof and key formats, recursive-verifier inputs, and integration APIs are branch-scoped unless a release note explicitly says otherwise.

BranchAudienceStatus
v1Users who need a stable interface today.Stable and audited. Supports Noir v1.0.0-beta.11. The stable docs target this branch first.
mainContributors and early adopters.May include breaking changes to proof, key, recursive-verifier, or API formats between commits.

Use v1 when reproducibility matters more than testing the newest implementation. Use main only when you are prepared to regenerate artifacts and adapt to source-level changes.

Do not assume compatibility across branches or commits unless a release note states the formats are unchanged.

Regenerate every affected artifact after changing any of:

  • Git branch, commit, or dependency lockfile.
  • Noir circuit source, package selection, or workspace layout.
  • Compiler version or lockfile pins for Noir dependencies.
  • prepare --hash value.
  • Prover inputs (when a new proof is expected).
  • Recursive-verifier export settings or the proof/verifier pair.

The safest deployment record includes the Git commit, rust-toolchain.toml, Cargo.lock, every CLI command line, artifact checksums, and the public input encoding expected by downstream systems.

PathStatusCompatibility notes
CLI prepare / prove / verifyPrimary local workflow.Defaults are package-derived; use explicit paths in CI and production.
Rust cratesInternal integration path.API names and proof/key types may move while main evolves.
WASM bindingsActive browser/JavaScript path.Provers are consumed after one proof; getCircuit() is available for Noir provers.
FFI bindingsActive mobile/native host path.Hosts must manage initialization, allocator configuration, and buffer ownership.
Verifier serverActive HTTP verification path.Requires reachable HTTP/HTTPS artifact URLs and tuned request/time/concurrency limits.
Recursive verifierActive Go/gnark wrapper.Recursive params and R1CS JSON must be regenerated with the matching verifier/proof pair.
  • Stable docs target v1 unless a page is marked development-only.
  • Examples that require main-only behavior are flagged explicitly.
  • Command examples must run from a fresh checkout.
  • Docs aimed at CI, services, or production use explicit artifact paths.
  • Generated Rust API docs are linked separately from task-based user docs when hosted API docs are available.
  • Artifact custody and trust-boundary guidance stays aligned with the Security and trust model.

Resolve or explicitly accept each of these before recommending ProveKit for external production users:

  • Hosted API docs for the Rust crates and the generated C header.
  • Pre-built binary artifacts for provekit-cli attached to GitHub Releases (currently cargo install only).
  • Executable app templates or CI-backed fixtures for each supported host language and platform.
  • Trusted-setup key handling guidance for the recursive-verifier Groth16 wrapper.
  • A support policy for branch-specific docs and migration notes.

Track deployment-specific readiness in the Production checklist.