This is a reference repo to help you get started with writing zero-knowledge circuits and applications with Noir.
Each project is an example you can use for whatever you want. Feel free to mix them in order to find the best combination of technology that suits your needs.
- Solidity Example - Complete workflow: Noir circuit → JavaScript proof generation → Solidity on-chain verification
- Recursion - Demonstrates recursive proof generation where one circuit verifies another circuit's proof
- Web Starter - Browser-based proof generation with Vite, Webpack, and Next.js bundler examples
- Stealthdrop - Privacy-preserving airdrop using PLUME nullifiers, ecrecover, and Merkle trees
- Bignum Example - Using
noir-bignum
library for BLS12-381 field arithmetic - Base64 Example - Base64 encoding/decoding with gate count benchmarking
- Noir by Example - Noir syntax examples side-by-side with Rust equivalents (loops, generics, macros)
You can view simpler, boilerplate projects that are good templates for starting your own Noir project in the Noir Starter repo.
Need help? Join the Noir Discord or reach out on X (formerly Twitter).
We welcome contributions! Check out the contributing guidelines for more info.
If using OpenAI Codex add the following to your environment, so that the agents can run nargo
and bb
commands.
Make it so that it can run the startup script.
chmod +x ./scripts/setup-all.sh
./scripts/setup-all.sh
And turn on internet access. Giving access to "Common Dependencies" and this specific url should be sufficient, aztec-ignition.s3.amazonaws.com
.