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.
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, Cargo.lock, or Noir compiler version.
  • Noir circuit source, package selection, or workspace layout.
  • prepare --hash value.
  • Prover inputs (regenerate the proof, not the keys).
  • Recursive-verifier export settings or the proof/verifier pair.
PathStatusCompatibility notes
CLI prepare / prove / verifyPrimary local workflow.Defaults are package-derived; use explicit paths in CI and production.
Rust cratesDirect integration for Rust services and tests; published to docs.rs.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.

For deployment-specific readiness, see the Production checklist.