A collection of zero-knowledge circuits written in Noir for creating Web Proofs. These circuits enable secure authentication, HTTP request verification, and JSON data extraction in zero-knowledge applications.
- Encryption/Plaintext Authentication Circuit: Verify encrypted data and authenticate plaintext without revealing sensitive information
- HTTP Parser and Header Locker: Parse and lock HTTP headers in zero-knowledge proofs, ensuring request integrity
- JSON Parser/Extractor: Extract and verify specific fields from JSON data within zero-knowledge proofs
- Constraint Counter: Utility to analyze R1CS constraint counts for circuit optimization
These instructions will help you get the circuits up and running on your local machine.
You'll need to have Rust and Cargo installed on your system. Then, install the just
command runner:
cargo install just
-
Clone the repository
git clone https://github.com/pluto/noir-web-prover-circuits.git cd noir-web-prover-circuits
-
Set up the development environment
# This will install Noirup, Nargo, and required tools just setup
-
Build the workspace
just build
just
: List all available commandsjust setup
: Set up complete development environmentjust build
: Build the entire Nargo workspacejust test
: Run all testsjust fmt
: Format code (Noir and TOML)just ci
: Run all CI checks
After running just setup
you will also get access to the constraint_counter
utility helps analyze the R1CS constraints in your circuits:
constraint_counter --circuit <circuit_name> --public-io-length <#_of_pub_inputs> --private-input-length <#_of_priv_inputs>
We welcome contributions to our open-source projects. If you want to contribute or follow along with contributor discussions, join our main Telegram channel to chat about Pluto's development.
Our contributor guidelines can be found in our CONTRIBUTING.md.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.
This project is licensed under the Apache V2 License - see the LICENSE file for details.
- The Noir Programming Language team for their ZK circuit development framework