Skip to content

Artifact lifecycle

ProveKit is artifact-driven. A safe integration treats every generated key, proof, and recursive-verifier export as a versioned deployment object, with explicit provenance and strict pairing rules.

ArtifactProduced byConsumed byStays paired with
.pkpprovekit-cli prepareprove, WASM/Swift/Kotlin/Rust proversMatching .pkv, circuit source, hash choice, commit.
.pkvprovekit-cli prepareverify, show-inputs, generate-gnark-inputs, verifier serverMatching .pkp, the proof set, public input encoding.
proof.npprovekit-cli proveverify, show-inputs, generate-gnark-inputsMatching .pkv, public inputs, witness provenance.
params_for_recursive_verifiergenerate-gnark-inputsrecursive-verifier/The exact .pkv and proof.np used to export it.
r1cs.jsongenerate-gnark-inputsrecursive-verifier/, verifier serverThe exact .pkv and proof.np used to export it.

Record provenance for every artifact set you intend to keep: branch, commit, Cargo.lock, rust-toolchain.toml, full command line, feature flags, hash choice, and checksums. That record is what lets you reproduce or audit the set later.

Verify locally before moving a proof or any artifact across a trust boundary. A verification failure at that point is a deployment-blocker, not a debugging step. Generate recursive inputs (params_for_recursive_verifier, r1cs.json) only after the base proof verifies; those exports are bound to the exact .pkv and proof.np they came from.

For the actual CLI commands, see Generate artifacts (explicit paths) or Quickstart (default paths).

Regenerate every affected artifact when any of these inputs change:

  • Git branch, commit, dependency lockfile, Rust toolchain, or relevant feature flags.
  • Noir source, package selection, or workspace layout.
  • prepare --hash value.
  • Prover inputs (when a new proof is expected).
  • The proof / verifier pair used for a recursive export.
  • Serialization or transport changes affecting proof JSON or public input encoding.
FileRecommended handling
.pkpRestrict to trusted proving hosts. It enables proof generation for the prepared circuit.
.pkvDistributable to verifiers, but keep integrity-protected and versioned.
proof.np / proof JSONTransport through authenticated application channels; preserve public inputs byte-for-byte.
Prover.toml / witnessesTreat private witness values as sensitive unless your application explicitly defines them as public.
Recursive params + r1cs.jsonKeep with the exact proof / verifier pair that produced them.

Before publishing or accepting an artifact set, retain:

  • SHA-256 checksums (or equivalent content hashes) for every file.
  • The full CLI command lines used to generate them.
  • A local verify success record.
  • show-inputs --hex output reviewed by the application owner.
  • Negative-test evidence showing that mismatched or corrupted proofs are rejected.
  • An owner and rotation plan for regenerating the set.