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.
Branch policy
Section titled “Branch policy”| Branch | Audience | Status |
|---|---|---|
v1 | Users who need a stable interface today. | Stable and audited. Supports Noir v1.0.0-beta.11. The stable docs target this branch first. |
main | Contributors 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.
Artifact compatibility
Section titled “Artifact compatibility”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 --hashvalue.- 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.
Integration status
Section titled “Integration status”| Path | Status | Compatibility notes |
|---|---|---|
CLI prepare / prove / verify | Primary local workflow. | Defaults are package-derived; use explicit paths in CI and production. |
| Rust crates | Internal integration path. | API names and proof/key types may move while main evolves. |
| WASM bindings | Active browser/JavaScript path. | Provers are consumed after one proof; getCircuit() is available for Noir provers. |
| FFI bindings | Active mobile/native host path. | Hosts must manage initialization, allocator configuration, and buffer ownership. |
| Verifier server | Active HTTP verification path. | Requires reachable HTTP/HTTPS artifact URLs and tuned request/time/concurrency limits. |
| Recursive verifier | Active Go/gnark wrapper. | Recursive params and R1CS JSON must be regenerated with the matching verifier/proof pair. |
Documentation policy
Section titled “Documentation policy”- Stable docs target
v1unless 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.
Known launch gaps
Section titled “Known launch gaps”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-cliattached to GitHub Releases (currentlycargo installonly). - 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.