Installation and setup
There are two ways to get provekit-cli on a machine. Use cargo install when you just need the CLI and have your own circuit. Use a source checkout when you want the bundled Noir examples, the WASM/FFI/server crates, or you’re contributing to ProveKit.
Prerequisites
Section titled “Prerequisites”| Requirement | Why it matters |
|---|---|
Rust via rustup | Cargo installs and builds the CLI. Source builds use the toolchain pinned in rust-toolchain.toml. |
| Git (source path only) | Clones the repository and records exact commits for artifact provenance. |
| Go toolchain (optional) | Required only for recursive-verifier development. |
Install the CLI
Section titled “Install the CLI”cargo install provekit-cliprovekit-cli --helpThis builds and installs the latest published release into ~/.cargo/bin/. Use this when you have your own Noir package and don’t need the bundled examples or extra tooling.
Pin a specific version for reproducible CI:
cargo install provekit-cli --version 1.0.0 --lockedgit clone https://github.com/worldfnd/provekit.gitcd provekitrustup show # confirms the pinned nightly is selectedcargo run --release --bin provekit-cli -- --helpThis gives you the full workspace: examples in noir-examples/, WASM bindings in tooling/provekit-wasm/, FFI in tooling/provekit-ffi/, the verifier server, and the recursive-verifier Go module. Use this when you’re contributing to ProveKit or want to run the checked-in examples directly.
Run the example proof
Section titled “Run the example proof”If you installed via cargo install, point the CLI at your own Noir package. To run the canonical example, you need a copy of noir-examples/basic/ from the repository:
cd noir-examples/basiccargo run --release --bin provekit-cli -- preparecargo run --release --bin provekit-cli -- provecargo run --release --bin provekit-cli -- verifygit clone --depth 1 https://github.com/worldfnd/provekit.gitcd provekit/noir-examples/basicprovekit-cli prepareprovekit-cli proveprovekit-cli verifyThe cargo install binary doesn’t need cargo run --release --bin provekit-cli -- in front of every command; call provekit-cli directly.
If verify returns exit code 0, your setup is healthy.
Optional host tooling
Section titled “Optional host tooling”| Target | Additional tooling |
|---|---|
| Browser / Node.js | Build the WASM package in tooling/provekit-wasm/ and load .pkp / .pkv artifacts as bytes. |
| iOS | Build or consume the Swift SDK package mode used by your app, then link the required native artifacts. macOS is not supported. |
| Android | Package the JNI libraries required by the Kotlin/Android host and test on target ABIs. |
| Verifier server | Build the Rust HTTP server in tooling/verifier-server/ and configure the Go verifier binary path. |
| Recursive verifier | Use the Go module in recursive-verifier/ with the params_for_recursive_verifier and r1cs.json exported by the CLI. |
All of these require a source checkout.
Verify your setup
Section titled “Verify your setup”A healthy setup satisfies all of these checks:
provekit-cli --help(orcargo run --release --bin provekit-cli -- --helpfor source builds) prints the CLI help text.- The Quickstart completes with
verifyreturning exit code0.