Skip to content

End-to-end overview

A complete ProveKit run starts with one Noir package and ends with a verified proof. The same .pkp, .pkv, and proof.np files flow through every integration path, CLI workflows, SDK examples, the verifier service, and recursive-verifier export.

By default, the CLI resolves the enclosing Noir package from the current directory:

  • prepare compiles . when no package path is provided.
  • prove looks for <package>.pkp and ./Prover.toml.
  • verify looks for <package>.pkv and ./proof.np.

For noir-examples/basic, the defaults are basic.pkp, basic.pkv, Prover.toml, and proof.np.

FileOwnerRegenerate when
<package>.pkpProver-side runtimeCircuit, branch/commit, hash, or proving configuration changes.
<package>.pkvVerifier-side runtimeThe prover key is regenerated, or verifier configuration changes.
proof.npProof transport / storage layerInputs change, the prover key changes, or a fresh proof is required.
params_for_recursive_verifier + r1cs.jsonRecursive-verifier integrationThe verifier key or proof changes.

For the actual command flow, use Quickstart for the default paths or Generate artifacts for explicit output paths, hash choice, and recursive export.

Generate CI artifacts

Deterministic paths, pinned hash choices, and recursive-verifier export.

Generate artifacts →

Use Rust directly

Load .pkp / .pkv, prove from TOML, persist proof.np, and verify through the ProveKit crates.

Rust guide →

Use Swift or Kotlin

Integrate through the mobile SDKs and their native/FFI packaging.

Swift → · Kotlin →