# Changelog
All notable changes to `aggregation` will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://book.async.rs/overview/stability-guarantees.html).
## [Unreleased]
## [0.1.0] - 2026-09-22
First published release. The `0.1.1` and `0.1.2` entries that previously appeared here
described in-repo iterations that were never published, so their contents are folded in.
### Added
* Expose `IvcVerifier::vk`, `IvcVerifier::params_verifier` and `IvcInstance::acc`, so an IVC chain can be finalised from outside the crate
* Multi-circuit proof aggregation module and example [#311](https://github.com/midnightntwrk/midnight-zk/pull/311)
* Add `IvcError::InvalidWitness` variant [#311](https://github.com/midnightntwrk/midnight-zk/pull/311)
* Add `assign_without_subgroup_check` to `SelfEmulation` trait [#284](https://github.com/midnightntwrk/midnight-zk/pull/284)
* Missing load of native_chip and poseidon (although they were not necessary) [#90](https://github.com/midnightntwrk/midnight-zk/pull/90)
### Changed
* Adapt to new `ZkStdLib` curve accessors [#335](https://github.com/midnightntwrk/midnight-zk/pull/335)
* `IvcCircuit`'s `Relation::Error` is now `IvcError` instead of `plonk::Error` [#311](https://github.com/midnightntwrk/midnight-zk/pull/311)
* `IvcVerifier` is now generic over `T: Ivc` and stores the context internally; `verify` no longer takes a `ctx` parameter [#302](https://github.com/midnightntwrk/midnight-zk/pull/302)
* Introduce `IvcIO` trait and `Ivc` convenience trait [#264](https://github.com/midnightntwrk/midnight-zk/pull/264)
* Proof aggregation example [#258](https://github.com/midnightntwrk/midnight-zk/pull/258)
* Introduce `IvcContext` [#258](https://github.com/midnightntwrk/midnight-zk/pull/258)
* IVC module [#227](https://github.com/midnightntwrk/midnight-zk/pull/227)
* Rebase to new `zk_stdlib/` outside of `circuits/` [#155](https://github.com/midnightntwrk/midnight-zk/pull/155)
* Rebase to new `circuits/` [#120](https://github.com/midnightntwrk/midnight-zk/pull/120)
* Rebase to new `circuits/` with `sha512` [#96](https://github.com/midnightntwrk/midnight-zk/pull/96)
* truncated_challenges feature to allow --all-features compilation [#146](https://github.com/midnightntwrk/midnight-zk/pull/146)
* Rebase to new `circuits/` with `keccak` and `blake2b` [#135](https://github.com/midnightntwrk/midnight-zk/pull/135)
* Remove `is_genesis` from `IvcState` trait; genesis detection is now derived generically from `format_public_input` [#272](https://github.com/midnightntwrk/midnight-zk/pull/272)
* Rename `proof_aggregation` example to `single_circuit_aggregation` [#264](https://github.com/midnightntwrk/midnight-zk/pull/264)
* Remove `InnerValue` and `Instantiable` requirements from IVC `AssignedState` [#264](https://github.com/midnightntwrk/midnight-zk/pull/264)
* Decouple `IvcTransition` from `IvcIO` [#264](https://github.com/midnightntwrk/midnight-zk/pull/264)
* Rename `assert_transition` to `circuit_transition` in `IvcTransition` [#258](https://github.com/midnightntwrk/midnight-zk/pull/258)
* Pass `max_bit_len` to IVC circuit configuration [#251](https://github.com/midnightntwrk/midnight-zk/pull/251)
* Adapt `Relation` impls to new associated type `Error` [#252](https://github.com/midnightntwrk/midnight-zk/pull/252)
* Rename crate from `aggregator` to `aggregation` [#227](https://github.com/midnightntwrk/midnight-zk/pull/227)
* Adapt light aggregator to support non-fixed input commitments and improved fixed_bases handling [#212](https://github.com/midnightntwrk/midnight-zk/pull/212)
* Updated Rust toolchain to 1.90.0 [#210](https://github.com/midnightntwrk/midnight-zk/pull/210)
* `CircuitField` refactor [#201](https://github.com/midnightntwrk/midnight-zk/pull/201)
* Modify `pow2range` chip: adjust architecture in light aggregator [#38](https://github.com/midnightntwrk/midnight-zk/pull/38)
* Update dependency names [#32](https://github.com/midnightntwrk/midnight-zk/pull/32)
* Fix versions of crates in monorepo [#33](https://github.com/midnightntwrk/midnight-zk/pull/33)
* Unify transcript style [#34](https://github.com/midnightntwrk/midnight-zk/pull/34)
* Fix minor issue (serialize u32 instead of u8 on acc lengths) [#75](https://github.com/midnightntwrk/midnight-zk/pull/75)
* Import CommittedInstanceInstructions [#381](https://github.com/midnightntwrk/midnight-zk/pull/381)
* Adapt ZkStdArch to new SHA256 chip [#39](https://github.com/midnightntwrk/midnight-zk/pull/39)
* Rebase to new cost-model with improved K computation [#104](https://github.com/midnightntwrk/midnight-zk/pull/104)
### Removed
* Halo2curves dependency [#139](https://github.com/midnightntwrk/midnight-zk/pull/139)
* Add a turned-off automaton configuration due to the automaton chip being exposed in std_lib [#30](https://github.com/midnightntwrk/midnight-zk/pull/30)