Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/solidity-example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Install Nargo
uses: noir-lang/[email protected]
with:
toolchain: 1.0.0-beta.15
toolchain: 1.0.0-beta.18

- name: Run Noir unit tests
working-directory: solidity-example/circuits
Expand Down Expand Up @@ -63,7 +63,7 @@ jobs:
working-directory: solidity-example/circuits
run: |
nargo execute
bb prove -b ./target/noir_solidity.json -w target/noir_solidity.gz -o ./target --oracle_hash keccak
bb prove -b ./target/noir_solidity.json -w target/noir_solidity.gz -o ./target --verifier_target evm
cd ..
(cd contract && forge test --optimize --optimizer-runs 5000 --gas-report -vvv)

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/web-starter-playwright.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: Install Nargo
uses: noir-lang/[email protected]
with:
toolchain: 1.0.0-beta.15
toolchain: 1.0.0-beta.18

- name: Install bb
run: |
Expand Down
12 changes: 6 additions & 6 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ fn main(private_input: Field, public_output: pub Field) {

### JavaScript Proof Generation Pattern

Common pattern across examples using `@noir-lang/noir_js` (v1.0.0-beta.15) and `@aztec/bb.js` (v3.0.0-nightly.20251104):
Common pattern across examples using `@noir-lang/noir_js` (v1.0.0-beta.18) and `@aztec/bb.js` (v3.0.0-nightly.20260102):
1. Import compiled circuit artifacts from `target/` directory
2. Initialize Noir program with artifacts
3. Generate witness from inputs
Expand All @@ -145,14 +145,14 @@ Common pattern across examples using `@noir-lang/noir_js` (v1.0.0-beta.15) and `

## Version Compatibility

**Recent Updates (November 2025):**
- All main examples updated to Noir 1.0.0-beta.15 and bb.js 3.0.0-nightly.20251104
**Recent Updates (January 2026):**
- All main examples updated to Noir 1.0.0-beta.18 and bb.js 3.0.0-nightly.20260102
- The `stealthdrop/` example has been removed from the repository

Current version information:
- `solidity-example/`: Noir 1.0.0-beta.15, bb.js 3.0.0-nightly.20251104
- `recursion/`: Noir 1.0.0-beta.15, bb.js 3.0.0-nightly.20251104
- `web-starter/`: Noir 1.0.0-beta.15, bb.js 3.0.0-nightly.20251104
- `solidity-example/`: Noir 1.0.0-beta.18, bb.js 3.0.0-nightly.20260102
- `recursion/`: Noir 1.0.0-beta.18, bb.js 3.0.0-nightly.20260102
- `web-starter/`: Noir 1.0.0-beta.18, bb.js 3.0.0-nightly.20260102
- `bignum_example/`: Noir 1.0.0+ (>=1.0.0)
- `lib_examples/base64_example/`: Noir 0.36.0+
- `noir_by_example/`: Noir 0.34.0+ (varies by example)
Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ Each project is an example you can use for whatever you want. Feel free to mix t
- **[Solidity Example](./solidity-example)** - Complete workflow: Noir circuit → JavaScript proof generation → Solidity on-chain verification
- **[Recursion](./recursion)** - Demonstrates recursive proof generation where one circuit verifies another circuit's proof
- **[Web Starter](./web-starter)** - Browser-based proof generation with Vite, Webpack, and Next.js bundler examples
- **[Stealthdrop](./stealthdrop)** - Privacy-preserving airdrop using PLUME nullifiers, ecrecover, and Merkle trees

### Library & Feature Examples

Expand Down
4 changes: 2 additions & 2 deletions recursion/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ E2E example of generating a recursive proof using Noir and bb.js.
### Version used

```
Noir 1.0.0-beta.15
bb 3.0.0-nightly.20251104
Noir 1.0.0-beta.18
bb 3.0.0-nightly.20260102
```

### Steps
Expand Down
4 changes: 2 additions & 2 deletions recursion/circuits/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ set -e

cd inner
nargo compile
bb write_vk --oracle_hash keccak -b ./target/inner.json -o ./target
bb write_vk --verifier_target noir-recursive-no-zk -b ./target/inner.json -o ./target
cd ..

cd recursive
nargo compile
bb write_vk --oracle_hash keccak -b ./target/recursive.json -o ./target
bb write_vk --verifier_target evm -b ./target/recursive.json -o ./target
cd ..

echo "Done"
2 changes: 1 addition & 1 deletion recursion/circuits/recursive/Nargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ authors = ["saleel"]
compiler_version = ">=1.0.0"

[dependencies]
bb_proof_verification = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v3.0.0-nightly.20251104", directory = "barretenberg/noir/bb_proof_verification" }
bb_proof_verification = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v3.0.0-nightly.20260102", directory = "barretenberg/noir/bb_proof_verification" }
6 changes: 3 additions & 3 deletions recursion/circuits/recursive/src/main.nr
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
use bb_proof_verification::{UltraHonkZKProof, UltraHonkVerificationKey, verify_ultrahonkzk_proof};
use bb_proof_verification::{UltraHonkProof, UltraHonkVerificationKey, verify_honk_proof_non_zk};
fn main(
verification_key: UltraHonkVerificationKey,
proof: UltraHonkZKProof,
proof: UltraHonkProof,
public_inputs: pub [Field; 1],
key_hash: Field,
) {
verify_ultrahonkzk_proof(verification_key, proof, public_inputs, key_hash);
verify_honk_proof_non_zk(verification_key, proof, public_inputs, key_hash);
}
40 changes: 26 additions & 14 deletions recursion/js/generate-proof.ts
Original file line number Diff line number Diff line change
@@ -1,37 +1,49 @@
import { deflattenFields, UltraHonkBackend } from "@aztec/bb.js";
import { Barretenberg, UltraHonkBackend } from "@aztec/bb.js";
import innerCircuit from "../circuits/inner/target/inner.json" with { type: "json" };
import recursiveCircuit from "../circuits/recursive/target/recursive.json" with { type: "json" };
import { CompiledCircuit, Noir } from "@noir-lang/noir_js";

// Helper function to convert proof bytes to field elements
function proofToFields(proof: Uint8Array): string[] {
const fields: string[] = [];
for (let i = 0; i < proof.length; i += 32) {
const chunk = proof.slice(i, i + 32);
fields.push('0x' + Buffer.from(chunk).toString('hex'));
}
return fields;
}

(async () => {
try {
// Initialize Barretenberg backend
const api = await Barretenberg.new({ threads: 8 });

const innerCircuitNoir = new Noir(innerCircuit as CompiledCircuit);
const innerBackend = new UltraHonkBackend(innerCircuit.bytecode, { threads: 1 }, { recursive: true });
const innerBackend = new UltraHonkBackend(innerCircuit.bytecode, api);

// Generate proof for inner circuit
// Generate proof for inner circuit with recursive verification target
const inputs = { x: 3, y: 3 }
const { witness } = await innerCircuitNoir.execute(inputs);
const { proof, publicInputs: innerPublicInputs } = await innerBackend.generateProof(witness);
const { proof, publicInputs: innerPublicInputs } = await innerBackend.generateProof(witness, { verifierTarget: 'noir-recursive-no-zk' });

// Get verification key for inner circuit as fields
const vk = await innerBackend.getVerificationKey();
const vkAsFields = deflattenFields(vk);
const proofAsFields = deflattenFields(proof);

// Generate the key hash using the backend method
const artifacts = await innerBackend.generateRecursiveProofArtifacts(proof, innerPublicInputs.length);
// Get verification key as fields and vk hash using generateRecursiveProofArtifacts
const artifacts = await innerBackend.generateRecursiveProofArtifacts(proof, innerPublicInputs.length, { verifierTarget: 'noir-recursive-no-zk' });
const vkAsFields = artifacts.vkAsFields;
const vkHash = artifacts.vkHash;

// Convert proof to fields manually since proofAsFields is not implemented
const proofAsFields = proofToFields(proof);

// Generate proof of the recursive circuit
const recursiveCircuitNoir = new Noir(recursiveCircuit as CompiledCircuit);
const recursiveBackend = new UltraHonkBackend(recursiveCircuit.bytecode, { threads: 8 });
const recursiveBackend = new UltraHonkBackend(recursiveCircuit.bytecode, api);

const recursiveInputs = { verification_key: vkAsFields, proof: proofAsFields, public_inputs: innerPublicInputs, key_hash: vkHash };
const { witness: recursiveWitness } = await recursiveCircuitNoir.execute(recursiveInputs);
const { proof: recursiveProof, publicInputs: recursivePublicInputs } = await recursiveBackend.generateProof(recursiveWitness);
const { proof: recursiveProof, publicInputs: recursivePublicInputs } = await recursiveBackend.generateProof(recursiveWitness, { verifierTarget: 'evm' });

// Verify recursive proof
const verified = await recursiveBackend.verifyProof({ proof: recursiveProof, publicInputs: recursivePublicInputs });
const verified = await recursiveBackend.verifyProof({ proof: recursiveProof, publicInputs: recursivePublicInputs }, { verifierTarget: 'evm' });
console.log("Recursive proof verified: ", verified);

process.exit(verified ? 0 : 1);
Expand Down
4 changes: 2 additions & 2 deletions recursion/js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"generate-proof": "tsx ./generate-proof.ts"
},
"dependencies": {
"@aztec/bb.js": "3.0.0-nightly.20251104",
"@noir-lang/noir_js": "1.0.0-beta.15"
"@aztec/bb.js": "3.0.0-nightly.20260102",
"@noir-lang/noir_js": "1.0.0-beta.18"
},
"devDependencies": {
"@types/node": "^22.10.1",
Expand Down
132 changes: 24 additions & 108 deletions recursion/js/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,16 @@
# yarn lockfile v1


"@aztec/[email protected].20251104":
version "3.0.0-nightly.20251104"
resolved "https://registry.yarnpkg.com/@aztec/bb.js/-/bb.js-3.0.0-nightly.20251104.tgz#c60a3809948573ece133eed57a17a607d4b12ad3"
integrity sha512-gLuPbivmU/yCq/eeMU9srQkyef9f7W4zUy2WJY+FOv3VBqmErz66AAVdVKj8MuKcFmtfXK1Lor1ZHomv8Ak95g==
"@aztec/[email protected].20260102":
version "3.0.0-nightly.20260102"
resolved "https://registry.yarnpkg.com/@aztec/bb.js/-/bb.js-3.0.0-nightly.20260102.tgz#0313c7f4964092f0ab9a17fc347e38dbce25aa9d"
integrity sha512-2SkTJw5sNyXU301OVOHOuqhd5JA3D+HE4cvKxj/hDG7rBiOi851e6swL29l2Y/UpcW2eNZMmmmk/NZgiDfDAgg==
dependencies:
comlink "^4.4.1"
commander "^12.1.0"
idb-keyval "^6.2.1"
msgpackr "^1.11.2"
pako "^2.1.0"
pino "^9.5.0"
tslib "^2.4.0"

"@esbuild/[email protected]":
Expand Down Expand Up @@ -170,37 +169,32 @@
resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz#0aa5502d547b57abfc4ac492de68e2006e417242"
integrity sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==

"@noir-lang/[email protected].15":
version "1.0.0-beta.15"
resolved "https://registry.yarnpkg.com/@noir-lang/acvm_js/-/acvm_js-1.0.0-beta.15.tgz#8bdddd0fb1662ea149877e26d0987a519facc3f2"
integrity sha512-WQNMycnVGj0J369BDcsa0N6n0IlISqXEznzDBHiP2yugHgTAoxiDzXizRW10K6u/w0EOVrl+bybLxNxLIPUSYQ==
"@noir-lang/[email protected].18":
version "1.0.0-beta.18"
resolved "https://registry.yarnpkg.com/@noir-lang/acvm_js/-/acvm_js-1.0.0-beta.18.tgz#631791b41d78a3b373ced1056fed925d1c0ff2fc"
integrity sha512-QQXAaowxSzGKk+Ua7ofc2jcpvUTYSxmDuF5SzwwOFMue9+ccp9QcqOkjyyIZWjtapcenV7YCXrzcBjvEt7N8Nw==

"@noir-lang/[email protected].15":
version "1.0.0-beta.15"
resolved "https://registry.yarnpkg.com/@noir-lang/noir_js/-/noir_js-1.0.0-beta.15.tgz#5d011b95b51e0e498ac65ad82ec0d0bf303fdbdc"
integrity sha512-ffN3rWzcqaO+FmBF6quFqgXhEK1gyJ8TQ9V4V3A+PIKYE94BOB0L84McxofbRqt3TFuSloBymGiFrJ/Gx8Q8eQ==
"@noir-lang/[email protected].18":
version "1.0.0-beta.18"
resolved "https://registry.yarnpkg.com/@noir-lang/noir_js/-/noir_js-1.0.0-beta.18.tgz#62a7b90a3fa4ab91db04efe1e90d251a2a787e62"
integrity sha512-J0VSw13U9SQpejh1sWNEjuKxjl/uJblOmWJMdlpYqCetth9oBAnKv8+IMk0bZlkrjDp22Yf8vMDkf+Qb8KBZ2Q==
dependencies:
"@noir-lang/acvm_js" "1.0.0-beta.15"
"@noir-lang/noirc_abi" "1.0.0-beta.15"
"@noir-lang/types" "1.0.0-beta.15"
"@noir-lang/acvm_js" "1.0.0-beta.18"
"@noir-lang/noirc_abi" "1.0.0-beta.18"
"@noir-lang/types" "1.0.0-beta.18"
pako "^2.1.0"

"@noir-lang/[email protected].15":
version "1.0.0-beta.15"
resolved "https://registry.yarnpkg.com/@noir-lang/noirc_abi/-/noirc_abi-1.0.0-beta.15.tgz#da65ce20737cfd5ef46d64b23be23b876c29e3c8"
integrity sha512-ZJ5pUSKiZ6Nyj6DcXmLkf/+OA12cApYq/XPYePxX7v1Z2mLLl1/Gj8dO/greHUYRD47ziXIgyaZQWryE3+4ifw==
"@noir-lang/[email protected].18":
version "1.0.0-beta.18"
resolved "https://registry.yarnpkg.com/@noir-lang/noirc_abi/-/noirc_abi-1.0.0-beta.18.tgz#b2a63fd13f91a3d9c00e5b12f7dad04e3856ba55"
integrity sha512-ZLobgQwGbxBpR4iMQpCpYQS4EaM25Fl31rVkrcteQIwcz5kAknH1Yc5FJYICCxzO1HEFj6coAzF3FXO/Ic4p4Q==
dependencies:
"@noir-lang/types" "1.0.0-beta.15"
"@noir-lang/types" "1.0.0-beta.18"

"@noir-lang/[email protected]":
version "1.0.0-beta.15"
resolved "https://registry.yarnpkg.com/@noir-lang/types/-/types-1.0.0-beta.15.tgz#b62207153f7f6db732248e90492451efbca5d4f5"
integrity sha512-FCydHArW6+oOSCxSIsprOExDaBMmxh0a9+ZhXigxFDZF6j96wzy3WvA0XLgczZzAjWOiBPCr4voTW1bsM0Ca2A==

"@pinojs/redact@^0.4.0":
version "0.4.0"
resolved "https://registry.yarnpkg.com/@pinojs/redact/-/redact-0.4.0.tgz#c3de060dd12640dcc838516aa2a6803cc7b2e9d6"
integrity sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==
"@noir-lang/[email protected]":
version "1.0.0-beta.18"
resolved "https://registry.yarnpkg.com/@noir-lang/types/-/types-1.0.0-beta.18.tgz#be128589dfbab2394505bf6e49a08855799b97b2"
integrity sha512-/1nsk8qFd27P6bW4W5ayUjMQpN6PustwTJEqZPNP//DZ6TrolnWxT/Y+7v9d2/a4OZal61sx177VjQY3U2GZvw==

"@types/node@^22.10.1":
version "22.14.0"
Expand All @@ -209,11 +203,6 @@
dependencies:
undici-types "~6.21.0"

atomic-sleep@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==

comlink@^4.4.1:
version "4.4.2"
resolved "https://registry.yarnpkg.com/comlink/-/comlink-4.4.2.tgz#cbbcd82742fbebc06489c28a183eedc5c60a2bca"
Expand Down Expand Up @@ -305,89 +294,16 @@ [email protected]:
dependencies:
detect-libc "^2.0.1"

on-exit-leak-free@^2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8"
integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==

pako@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86"
integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==

pino-abstract-transport@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz#de241578406ac7b8a33ce0d77ae6e8a0b3b68a60"
integrity sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==
dependencies:
split2 "^4.0.0"

pino-std-serializers@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz#7c625038b13718dbbd84ab446bd673dc52259e3b"
integrity sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==

pino@^9.5.0:
version "9.14.0"
resolved "https://registry.yarnpkg.com/pino/-/pino-9.14.0.tgz#673d9711c2d1e64d18670c1ec05ef7ba14562556"
integrity sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==
dependencies:
"@pinojs/redact" "^0.4.0"
atomic-sleep "^1.0.0"
on-exit-leak-free "^2.1.0"
pino-abstract-transport "^2.0.0"
pino-std-serializers "^7.0.0"
process-warning "^5.0.0"
quick-format-unescaped "^4.0.3"
real-require "^0.2.0"
safe-stable-stringify "^2.3.1"
sonic-boom "^4.0.1"
thread-stream "^3.0.0"

process-warning@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-5.0.0.tgz#566e0bf79d1dff30a72d8bbbe9e8ecefe8d378d7"
integrity sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==

quick-format-unescaped@^4.0.3:
version "4.0.4"
resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7"
integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==

real-require@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78"
integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==

resolve-pkg-maps@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f"
integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==

safe-stable-stringify@^2.3.1:
version "2.5.0"
resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd"
integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==

sonic-boom@^4.0.1:
version "4.2.0"
resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-4.2.0.tgz#e59a525f831210fa4ef1896428338641ac1c124d"
integrity sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==
dependencies:
atomic-sleep "^1.0.0"

split2@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==

thread-stream@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-3.1.0.tgz#4b2ef252a7c215064507d4ef70c05a5e2d34c4f1"
integrity sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==
dependencies:
real-require "^0.2.0"

tslib@^2.4.0:
version "2.8.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
Expand Down
4 changes: 2 additions & 2 deletions solidity-example/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ An example repo to verify Noir circuits (with bb backend) using a Solidity verif
- `/contract` - Foundry project with a Solidity verifier and a Test contract that reads proof from a file and verifies it.
- `/js` - JS code to generate proof and save as a file.

Tested with Noir 1.0.0-beta.15 and bb 3.0.0-nightly.20251104
Tested with Noir 1.0.0-beta.18 and bb 3.0.0-nightly.20260102

### Installation / Setup

Expand Down Expand Up @@ -42,7 +42,7 @@ cd circuits
nargo execute

# Generate proof
bb prove -b ./target/noir_solidity.json -w target/noir_solidity.gz -o ./target --oracle_hash keccak
bb prove -b ./target/noir_solidity.json -w target/noir_solidity.gz -o ./target --verifier_target evm

# Run foundry test to read generated proof and verify
cd ..
Expand Down
4 changes: 2 additions & 2 deletions solidity-example/circuits/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ if ! nargo compile; then
fi

echo "Generating vkey..."
bb write_vk --oracle_hash keccak -b ./target/noir_solidity.json -o ./target
bb write_vk --verifier_target evm -b ./target/noir_solidity.json -o ./target

echo "Generating solidity verifier..."
bb write_solidity_verifier -k ./target/vk -o ../contract/Verifier.sol
bb write_solidity_verifier --verifier_target evm -k ./target/vk -o ../contract/Verifier.sol

echo "Done"
Loading