2.1.1 (2025-10-03)
BREAKING CHANGES
- backport-to-v2: Fix a misleading log in recursive verifier related to public input (#17184) (#17218)
- Enable free witness and different transcript checks (#16641)
- config and start options (#16767)
- avm: Use gt gadget in update check (#16776)
- avm: Migrate to memory multi-permutations (#16761)
- avm: Memory constraints (#16705)
- avm: Migration to GT gadget for Keccak permutation (#16725)
- merge the txe session state transition oracles, redo the internal wiring, introduce context handlers (#16659)
- acir serialization changes (#14311)
- AVM: Implement bytecodes limit in circuit (#16684)
- ssa: Signed shift overflow checks rhs < bit_size (noir-lang/noir#9685)
- allow consuming l1-to-l2 message in the same block (#16704)
- a static context propagates staticness to nested calls, even those that are not static calls. (#16670)
- merging event emission functions (#16126)
- misc avm - fixes constraints, ts sim, cpp sim, tracegen (#16664)
- avm fixes to alu, context, execution, tx pil. Fixes to tx execution and tx tracegen. Trace side-effect operations before they fail in TS state manager. Always perform nullifier non-membership check on non-existence in AVM TS.
- Define single ecdsa constraint generator (#16612)
- avm: enable amm check circuit (#16569)
- avm: last_child id constraints (#16568)
- avm: handle zero copy size (#16567)
- share transcript between pg and decider (#16642)
- Merge two ecdsa verification functions (#16509)
- avm: refactor data copy (#16556)
- avm: opcode error for infallible opcodes (#16629)
- avm: data_copy permutation (#16531)
- avm: ALU Shifts (#16515)
- avm: WIP ALU Shifts
- avm: memory multi permutations (#16586)
- Protogalaxy accumulator hash consistency check (#16547)
Features
- Add funding account to key store schema (#16785) (5e3219a)
- add fuzzer for Poseidon2 and Pedersen hash functions (#16604) (ec77233)
- add migration script (#16571) (3301ae5)
- add OTEL_COLLECTOR_URL (#16640) (0fb97ce)
- add release automation for v2 packages (#16681) (110cd4f)
- add storage budget control for FileBackedMemory (#16690) (c29739c)
- avm: WIP ALU Shifts (9d0626a)
- bb: --print_bench (#16673) (6107786)
- bb: runtime stack traces in debug mode (#16590) (4b3dd11)
- brillig functions can be pure if they are not entry points (noir-lang/noir#9659) (395632f)
- Change default slasher from empire to tally (#16514) (2e62509)
- check index size in merklelib (#16585) (9a983b2)
- Cleanup slash settings (cc519f7)
- compile optimized contract (58b7f78)
- create deploy-aztec-infra.yml (#16580) (5c178eb)
- create deploy-rollup-contracts.yml (#16549) (6689a2f)
- create test-network-scenarios.yml (#16595) (aee2d01)
- deploy-eth-devnet.yml github action (#16538) (b250eab)
- ECCVM Fuzzer (#16503) (0e9b2b0)
- Enable the use of multiple EOAs (#16272) (33aaffd)
- fix AVM circuit size (#16332) (79193aa)
- Group one audit tests (noir-lang/noir#9445) (581b16f)
- hoist safe casts from loops (noir-lang/noir#9645) (395632f)
- L1 contract etherscan verification (#16634) (614ee22)
- mem2reg: address last known value is independent of its aliases (noir-lang/noir#9613) (a64a6eb)
- merge-train/avm (#16766) (6111ef9)
- merge-train/barretenberg (#16578) (24844de)
- merge-train/barretenberg (#16599) (99549bc)
- optimize solidity honk verifier (#8690) (34eabaa)
- oracle version check (#16435) (7534d82)
- Propagate purities using SCCs (noir-lang/noir#9672) (395632f)
- publishers support multiple EOA accounts (8fc62bb)
- rollup: use optimized verifier (#16717) (29f0cec)
- scaffold deploy-scenario-network.yml (#16553) (470f10c)
- Simplify slasher settings (#16625) (5256c9f)
- Slash after N consecutive epochs of inactivity (#16700) (8b710ff)
- Slash lists, store expiration, veto checks (#16667) (a2e7a4d)
- small build docs refactor and adding build getting started (#16542) (dd54789)
- spartan/bootstrap.sh network_deploy (#16639) (b52194c)
- ssa_fuzzer: ecdsa blackbox functions (noir-lang/noir#9584) (a64a6eb)
Bug Fixes
- accept single prover publisher (#16651) (8cd0d2e)
- acir_gen: A slice might be a nested Array, not a flattened DynamicArray (noir-lang/noir#9600) (a64a6eb)
- action sort order (#16680) (8bd8f20)
- add keystoreDirectory option to sequencer (#17265) (2df1974)
- address potential deadlock (#16637) (ac71126)
- avm fixes to alu, context, execution, tx pil. Fixes to tx execution and tx tracegen. Trace side-effect operations before they fail in TS state manager. Always perform nullifier non-membership check on non-existence in AVM TS. (953f475)
- AVM hints for Cpp must use current block gasFees rather than historical (#16786) (14b573c)
- avm: avm vk after serialization unification (#16721) (6107786)
- avm: better relations_acc bench (#16735) (d0e9a97)
- avm: fix generated files (#16731) (071d61d)
- avm: gas computation in ts (#16692) (49bd6da)
- batch fixes for v2 branch (#16911) (42e8fb1)
- bb: debug preset is actually debug (#16577) (4b3dd11)
- bb: fix honk_solidity_key_gen debug build (#16744) (c29739c)
- bb: fix vk simplified buffer (#16720) (6107786)
- bb: grumpkin_srs_gen debug-build linking (#16638) (3634978)
- catch potential errors enqueuing gov/slashing signals (#16662) (7b9f72c)
- Check correct proposer in block proposal validator (#16825) (0943b56)
- ci: post-fix for noir projects cache bug (#16793) (2651b44)
- consistent slash amounts (#16691) (260112e)
- correctly handle prover reverted txs (#16654) (a40bb6b)
- deploy aztec infra boot node syntax and use old mnemonic (d1bb41f)
- deploy aztec tf ternary (fce41e6)
- disable old chart and proper runner file mounting (#16764) (f58f13a)
- disable web3signer in rc-1 (#16626) (399a0aa)
- Do not aggregate validator offenses across epochs in a vote (#16695) (4660801)
- Do not attempt proposer check if late into a slot (#16668) (50bece1)
- Do not send slashing vote if computed vote is zero (#16689) (1dadb08)
- docs: docs favicon (#16769) (fcb19dc)
- docs: some feedback on build getting started (#16686) (df1f722)
- docs: updating docs structure (#16513) (8f8be9a)
- don't thread-bomb unnecessarily (noir-lang/noir#9643) (a64a6eb)
- Enforce timetable on proposer check (#16702) (3a5f63b)
- expand: better handling of dereferences (again) (noir-lang/noir#9654) (581b16f)
- Fix if-else alias in mem2reg (noir-lang/noir#9611) (a64a6eb)
- Fix integration-l1-publisher e2e (#16747) (410b666)
- fix signTypedData in RemoteSigner (38db5d2)
- fixes to AVM tracegen for rollbacks to SETUP snapshot and for SSTORE unhappy path (#16591) (6f47d59)
- formatter: don't revert indentation increase after popping it (noir-lang/noir#9673) (395632f)
- hodgepodge of minor issues (#16752) (838230d)
- in avm cpp sim put counters (nullifier, notehash, msg) into a stack to be rolled back on error (#16665) (1887d17)
- include disable zk in acir test (58b7f78)
- increase gas limit when adding initial validators (#16607) (b9a62d5)
- inlining: Do not inline globals and lower them during ACIR gen (noir-lang/noir#9626) (a64a6eb)
- licm: Use
Loop::header
inLoop::is_fully_executed
(noir-lang/noir#9700) (395632f) - Make inc/dec_rc impure (noir-lang/noir#9617) (a64a6eb)
- make Ord for slices lexicographic (elements first, then length) (noir-lang/noir#9555) (581b16f)
- mem2reg: Assume all function reference parameters have an unknown alias set with nested references (noir-lang/noir#9632) (a64a6eb)
- mem2reg: Mark block parameters with unknown alias sets in presence of nested references (noir-lang/noir#9629) (a64a6eb)
- mem2reg: missing alias from block parameter to its argument (noir-lang/noir#9640) (a64a6eb)
- mem2reg: reuse existing expression and add missing alias (noir-lang/noir#9664) (395632f)
- misc fixes to simulator test fixtures, yarn-project bootstrap, bb-prover AVM error message (#16575) (aafdd56)
- Monomorphize function values as pairs of
(constrained, unconstrained)
(noir-lang/noir#9484) (a64a6eb) - noir-contracts: change variable and migrate to poseidon (#16618) (6a03e6c)
- noir-contracts: remove easy reference from private token contract (#16624) (ae4bc46)
- noir-contracts: remove easy reference from voting contract (#16619) (6256342)
- parallelize prefix (e61f859)
- Parse boolean env var with zod (#16746) (974af10)
- parse node url when starting a bot (backport) (#16970) (36ebf40)
- Prove block that consumes an L1toL2 msg added on the same L1 block (#16375) (92ea203), closes #16675
- prover fixes (#16657) (7274ae2)
- publisher addresses for rc-1 (225e4d2)
- reject non-json RPC requests (155982c), closes #16489
- reject non-json RPC requests (#16646) (65e5a6b), closes #16489
- Revert "feat(mem2reg): address last known value is independent of its& (noir-lang/noir#9628) (a64a6eb)
- sequencer proposer action sort order (3eb3292)
- set gate challenges in initial accumulator (#16613) (1c3b9f3)
- signTypedData in RemoteSigner (#16661) (77675f2)
- solidity gate challenge generation (#16623) (1c3b9f3)
- sol: temporarily disable optimized verifier (#16799) (e53d3d9)
- squash commit attribution and fork behaviour (#16570) (7b4a616)
- squash-pr.sh (#16719) (f8fa569)
- ssa: Constant fold Brillig calls using the SSA interpreter (noir-lang/noir#9655) (581b16f)
- ssa: Put some default in
Value::uninitialized
for references in the SSA interpreter (noir-lang/noir#9603) (a64a6eb) - ssa: Signed shift overflow checks rhs < bit_size (noir-lang/noir#9685) (395632f)
- testnet archival node - v2 (bff1beb), closes #17139
- testnet archival node - v2 (#17142) (3693ee7), closes #17139
- throw when making Fr from negatives (#16002) (95aa2a7)
- Update slash settings in helm templates (#16696) (5146518)
- use archiveAt(0) instead of getBlock to get genesis archive tree - backport v2 (#17447) (0a026a0)
- use numeric salts (4bf7181)
- validate binary operations which do not allow fields (noir-lang/noir#9649) (581b16f)
Miscellaneous
stdlib::poseidon2
internal audit (#16534) (f84ce60)- add a regression test for #9613 (noir-lang/noir#9630) (a64a6eb)
- add another mem2reg regression for #9613 (noir-lang/noir#9635) (a64a6eb)
- add backend config for rpc nodes (#17103) (a0e07af)
- add bootnode otel resource attribute (0329bab)
- Add comment to prevent out-of-sync databus ranges (#16589) (1c3b9f3)
- Add config to evict txs after reorg (#17113) (#17118) (8c9f15a)
- add extra bitshifts tests (noir-lang/noir#9680) (395632f)
- add flag to destroy namespace (357e323)
- add flake (#16611) (8a98bcc)
- Add flake in epochs_proof_public_cross_chain (#16749) (553a560)
- add new hostnames (#16819) (f1fc2b8)
- add new scripts to CM (#16650) (39a5fc4)
- add test for trait bound on implementing type (noir-lang/noir#9652) (581b16f)
- add tests for bounded_vec (noir-lang/noir#9576) (395632f)
- add two mem2reg regression tests where references are returned (noir-lang/noir#9670) (395632f)
- Add UltraCircuitBuilder.NonNativeFieldMultiplication flake (#16743) (b7efa2e)
- add validity period check on zkpassport (#17054) (3b6d649)
- add workflow to create canary release (#16653) (d0d5be1)
- alter number of blocks for alpha (#16587) (7e0b229)
- amis (#16710) (32eb09d)
- AMM TXE tests (#16458) (f78e8d1)
- audit ECCVM msm relation (#16532) (c29739c)
- audit PointTable relation in the ECCVM. (#16592) (4b3dd11)
- audit the set relation of the ECCVM (#16706) (1e0d257)
- avm: Cleaning up some obsolete AVM related constants (#16722) (d0e9a97)
- avm: remove trace truncation (#16609) (3a379e8)
- avm: suppport idiom with multipermutations (8eabb89)
- avm: suppport
add<>
idiom with multipermutations (#16615) (af644e4) - backport dependabot deps (#17463) (ebf1efa)
- Backport deployment refactor (#17280) (6b49a89)
- Backport fix to staging-ignition to v2 (#17159) (72ffbf0)
- Backport ignition slashing config to v2 (#17100) (683809d)
- Backport of fixes into v2 (#17206) (5f821fd)
- Backport of ignition fix attempt 2 (#17201) (f62c142)
- Backport of workflow fix (#17333) (69c62c0)
- Backport slack alerts (#17460) (7b117ec)
- backport some commits to RC (#16899) (6779e0b)
- backport to v2 (#17046) (039c8ed)
- Backport to v2 (#17095) (83b34b0)
- backport-to-v2: chore: New salt for staging-ignition (#17453) (#17457) (af68dea)
- backport-to-v2: chore: remove unconstrained generics from trait impls (#17075) (#17307) (79b481d)
- backport-to-v2: chore(avm)!: Fix a misleading log in recursive verifier related to public input (#17184) (#17218) (fb233b9)
- backport-to-v2: feat: add date gated relayer (#17323) (#17440) (a90e065)
- backport-to-v2: feat: add flushing rewarder (#17335) (#17441) (995febb)
- backport-to-v2: feat: support using existing ERC20 token for fee and staking (#17413) (#17437) (67578c9)
- backport-to-v2: fix: avm gracefully handles shifts (shl) with huge bit sizes (#17171) (#17309) (649a902)
- backport-to-v2: fix: improve libp2p connection limits for network discovery (#17425) (#17449) (4776c0d)
- backport-to-v2: fix(docs): Update Counter contract tutorial imports and remove unnecessary sections (#17241) (#17268) (edc6b00)
- backport-to-V2: L1 backports (#17365) (06b2acb)
- Batch merge to v2 (#16936) (3593c90)
- bb: CLAUDE.md (#16614) (1c3b9f3)
- bb: remove --output_format, have one-size-fits-all format (#16201) (6107786)
- bb: UH bench flake (#16620) (860dab2)
- bool_t from witness index functionality (#16688) (1e0d257)
- break
NodeInterner
into chunks (noir-lang/noir#9674) (395632f) - brillig: Include function name with
--count-array-copies
debug information (noir-lang/noir#9623) (a64a6eb) - bump deps (noir-lang/noir#9698) (395632f)
- bump external pinned commits (noir-lang/noir#9618) (a64a6eb)
- Bump foundry version to 1.3.3 (#16669) (45e1fad)
- bump minor version (dbc243f)
- bump queue flush size (3c0dcbd)
- bump timeout on network scenario tests (80837fb)
- Cherry-picking into v2 (#17002) (98c015a)
- ci: attempt to fix rare flake (#16635) (83b4439)
- ci: give prover-full 20 minutes (#16739) (410fd97)
- ci: root cause fix of prover full disruption (#16789) (dd1a832)
- civc tidy 2 (#16600) (1c3b9f3)
- cleanup eth devnet when destroy and build the repo when deploy (0d99fe3)
- commit
foundry.lock
(#16823) (73c23d3) - compression of config in gov to reduce costs. (#16603) (708d702)
- compute beta products for max log dyadic size instead of 21 (#16772) (1e0d257)
- configure git in auto-tag (54de5a7)
- databus internal audit - small cleanups and tests coverage (#16703) (f84ce60)
- Delete contract addresses from chain l2 config (#17430) (e956690)
- Delete snapshot files from bucket older than a week (#16733) (1683ae8)
- deploy snapshot cronjob in staging (#16887) (dbf76b3)
- disable AVM_PROVING_STRICT for now in prover full test until we fix bugs (#16740) (3af8061)
- docs: fix reference to --sequencer.validatorPrivateKey -> s (#16812) (e353048)
- docs: node docs to v2 (#17205) (0e13702)
- docs: remove old tutorials (#16788) (51a126f)
- docs: remove outdated references to tutorials and improve clarity (2017c5c)
- docs: spinning out bb docs (noir-lang/noir#9402) (395632f)
- docs: style updates (#16768) (a9708bd)
- docs: Switch from
master
tonext
for pulling bbup's installation script (#16566) (69ca19d) - docs: update all minor dependencies (#16555) (3eedfac)
- docs: Update dependency page's examples (noir-lang/noir#9634) (581b16f)
- document intrinsics (noir-lang/noir#9382) (a64a6eb)
- document remove_if_else (in preparation for audit) (noir-lang/noir#9621) (a64a6eb)
- drop timestamp in favour of GCP's field (0c1fdf8)
- Ensure DB map sizes are configured for networks (#17383) (97427ed)
- fix acir test (6be4ec8)
- fix annotations (#17080) (69cf06c)
- fix bot defaults (#17071) (b068f87)
- fix clippy warnings (noir-lang/noir#9675) (395632f)
- fix docs build and validate gcp json (a50e16c)
- fix ip name and bot release wait (#17101) (3509bd0)
- fix l1 config and update staging (#16908) (d69bebe)
- fix multi-eoa flake (#16616) (d46f452)
- fix private payments test (#16601) (87ddf16)
- fix sol acir test (#16760) (83bede3)
- fix string interpolation when transmitting files to runner (7f156af)
- give bot new addresses (#17070) (42a23dd)
- greenlight
checked_to_unchecked
for audits (noir-lang/noir#9537) (a64a6eb) - handover to governance (#16630) (bfac9cf)
- ignition config - backport (#16954) (5b03f90)
- increase both startup probe duration (backport) (#17019) (5a358b6)
- increase default agent poll (#16810) (08e8faf)
- increase delay between txs (#16674) (8b2ca23)
- increase queue params staging public (4722ff3)
- inline bb-cli-lib into bb executable (#16602) (1c3b9f3)
- install doxygen in update-docs (64f63f5)
- k8s config fixes (bc72aaa)
- kubectl (#17140) (6a8b435), closes #17133
- LICM refactors (noir-lang/noir#9642) (581b16f)
- licm: Break things up further in LICM (noir-lang/noir#9683) (395632f)
- lock noir ref to commit (#16807) (b006f98)
- mem2reg: add a few regression tests (noir-lang/noir#9615) (a64a6eb)
- mem2reg: avoid redundant PostOrder computation (noir-lang/noir#9620) (a64a6eb)
- mem2reg: Only add to per function last_loads if load is not removed (noir-lang/noir#9647) (a64a6eb)
- merge-train: update trains with no PR (#16779) (35f3aa6)
- More updated staging public config (#17364) (9821cce)
- move state to txe session (#16574) (87fc924)
- only run remove_paired_rc in brillig functions (noir-lang/noir#9624) (a64a6eb)
- optionally run tests as part of network deploy (d40ab58)
- Orderbook TXE tests (#16451) (62f076a)
- pass
DataFlowGraph
instead ofFunction
as arg (noir-lang/noir#9656) (581b16f) - pass service account and network params by file (38744aa)
- pin bitnami/kubectl (#17112) (fe466e6)
- Pin next rc-1 bots to 8 core spots (#16726) (799822c)
- playground: update sfpc artifacts (#17057) (d87997a)
- preliminary clean up and reorg of cycle_group (#16645) (5ab003f)
- pull out interpreter binary evaluation logic into pure functions (noir-lang/noir#9665) (395632f)
- Re-create cross chain messaging fix on v2 (#17058) (07e8702)
- re-enable some avm proving tests (3b8db17)
- re-enable some avm proving/check-circuit tests (#16666) (a8e65bf)
- redact debug info and file maps from snapshots (noir-lang/noir#9666) (395632f)
- Reduce gas cost for tally slash proposer (#16617) (6746d32)
- reduce lock delay (fba4042)
- refactor avm tx execution to generate "empty phase" events (#16676) (152eadf)
- remote unused env vars (c4fa851)
- remove ACCEPT_DISABLED_AVM_VK_TREE_ROOT (#17238) (80e9c3f)
- remove bad rollup-version default (#17223) (6fea75c)
- remove bitnami/kubectl (#17114) (1750c66)
- remove duplicated frontend tests (noir-lang/noir#9706) (395632f)
- remove handling for slice arguments to MSM (noir-lang/noir#9648) (581b16f)
- remove no-longer-used lookup grand prod delta (#16543) (0738287)
- remove playwright workaround (noir-lang/noir#9704) (395632f)
- remove the early returns from `complete_kernel_circuit_logic' (#16563) (47eefba)
- remove unnecessary initializations in acir tests (#16545) (47eefba)
- remove unused env vars (#16707) (c190016)
- Separate config vars for prune penalties (#16694) (4229886)
- Set default log level of prover agent to verbose (#16697) (d93473c)
- set namespace in CI and verify contracts when deploy rollup (2a69eb9)
- set new env var for remote attester signers (#16622) (b751402)
- set testnet addresses (6cdfe75)
- setup rpc (#17110) (ad89759)
- show which type is invalid as program input (noir-lang/noir#9701) (395632f)
- Slash for inactivity network test (#16718) (a2222ca)
- some inlining refactors (noir-lang/noir#9622) (a64a6eb)
- specify refname and allow absolute network paths (94d53b0)
- ssa: Greenlight
brillig_entry_points
and switch to centralized CallGraph (noir-lang/noir#9668) (395632f) - ssa: Refactor
unrolling
(noir-lang/noir#9653) (581b16f) - ssa: Refactor flattening (noir-lang/noir#9663) (395632f)
- staking queue config now includes max value (#16621) (5346120)
- Streamline staging deployments (#17328) (e7120db)
- switch to keystores (#16633) (552591f)
- tidy civc (#16360) (d63c09f)
- trigger a new release-please (0930b8b)
- truncate changelog (af7c4b4)
- turn on testnet compat test (#17195) (0daa224)
- undo previous now that the changelog has been trimmed (5cb5d79)
- unique network names (#16658) (9089619)
- upate flakes to reference browser_prove.sh (#16596) (a4850d4)
- update AztecBot's email address when squashing (#16652) (94e0477)
- update cluster to fix logging issues (#16701) (1bae740)
- update deps (37a87fc)
- update readme in the eccvm to include description of multiset and lookups (#16765) (1e0d257)
- update staging config (#16884) (dea3f0f)
- Update Terraform to match GCP (#16728) (ac3f9ac)
- update zkpassport version (#17044) (37333e0)
- update zkpassport version (#17339) (870130f)
- use
assert_ssa_does_not_change
throughout all SSA tests (noir-lang/noir#9625) (a64a6eb) - use correct contract addresses (30977c6)
- Use nullish instead of optional in key store schema (#16734) (f4b6476)
- v2: release 2.0.1 (#16839) (19f0d8a)
- v2: release 2.0.2 (#17126) (993fbb4)
- v2: release 2.0.3 (#17137) (7269012)
- Validate L1 config in ts-land (#16647) (2841e2b)
- verify contracts as part of deploy (d973d30)
- verify contracts on staging network (7cd5f83)
- wasm fix (#16751) (c29739c)