____ ____ ____ ___ __ _________
/ __ \_________ ____ / __/ / __ \/ | _____/ /___ __ / ____/ (_)
/ /_/ / ___/ __ \/ __ \/ /_ / /_/ / /| | / ___/ __/ / / / / / / / /
/ ____/ / / /_/ / /_/ / __/ / ____/ ___ |/ / / /_/ /_/ / / /___/ / /
/_/ /_/ \____/\____/_/ /_/ /_/ |_/_/ \__/\__, / \____/_/_/
/____/
NovaNet @2025
This is a command-line interface for generating zero-knowledge proofs from WebAssembly (WASM) modules using zkEngine.
The Proof Party Client allows you to:
- Load a WebAssembly module (in text format - .wat)
- Execute a specified function within that module
- Generate a zero-knowledge proof of correct execution
- Verify the proof
- Save the generated proof and instance to files
- WebAssembly Support: Run proofs on any computation that can be compiled to WebAssembly
- Flexible Invocation: Call any function in your WASM module with arbitrary arguments
- Configurable Step Size: Adjust the proving granularity
- Automatic Verification: Verify proofs immediately after generation
- Persistent Storage: Save proofs to disk for later use
- Rust and Cargo installed
- Git installed
Clone this repository and build with cargo:
git clone https://github.com/wyattbenno777/party_cli.git
cd party_cli
cargo build --releaseparty_cli --wat <WAT_FILE> [OPTIONS]-w, --wat <FILE>: Path to the .wat file [required]-i, --invoke <FUNCTION>: Function to call (default: "fib")-a, --args <ARGS>: Comma-separated list of function arguments (default: "16")-s, --step-size <NUM>: Step size for proving (default: 10)-h, --help: Print help-V, --version: Print version
./target/release/party_cli --wat ./wasms/fib.wat --invoke fib --args 16 --step-size 10Or run it directly:
cargo run --release -- --wat wasms/fib.wat --invoke fib --args 16 --step-size 10The tool will:
- Create a
/proofsdirectory in your project root if it doesn't exist - Generate the proof and instance
- Save them as JSON files:
/proofs/instance_<function_name>.json/proofs/snark_<function_name>.json
This client uses zkEngine:
- It is powered by folding scheme variants of KST22 (https://eprint.iacr.org/2021/370).
- It can generate succint proofs that can be verified on EVM blockchains.
- It can work on various device sizes due to low memory usage.
Contributions are welcome! Please feel free to submit a Pull Request.
[TBD/ but likely MIT]
This project utilizes the zkEngine (https://github.com/ICME-Lab/zkEngine_dev) framework and various other open-source libraries.