Ledger 8.0.2 release notes
For the complete documentation index, see llms.txt
- Version: v8.0.2
- Date: 12 March 2026
- Environment: Preview, Preprod
High-level summary
Ledger 8.0.2 introduces fixes to Merkle tree canonicity and DUST change computation during registration. It also adds new capabilities such as the with_genesis_settings constructor for ledger state, native Arm proof server builds, and a last block time context variable.
This release also includes bug fixes for logging, sequencing-check iteration determinism, and divide-by-zero handling in dust.rs (panic changed to error).
Audience
This release note is relevant for developers who build applications using the Ledger WASM bindings.
What changed (Summary of updates)
This release combines behavior-level corrections with developer-facing improvements. The updates below highlight fixes that improve determinism and transaction correctness.
- Fixed DUST change computation for DUST spent during registration (breaking behavior change)
- Fixed Merkle tree canonicity (breaking behavior change)
- Added last block time context variable
- Added
with_genesis_settingsledger state constructor for initial parameters and pool allocations - Added native Arm proof server build support
- Logged non-proof-erased transaction hashes
- Resolved non-determinism and out-of-spec iteration order in sequencing checks
- Removed accidental structured logging of full ledger state in some code paths
- Changed divide-by-zero in
dust.rsfrom panic to error
New features
Below are the new features introduced in this release.
Last block time context variable
blockContext now exposes lastBlockTime.
LedgerState::with_genesis_settings constructor
This constructor creates a new ledger state with explicit genesis parameterization, including network ID, initial parameters, and system-controlled pools:
- The locked pool, representing funds locked on Midnight while circulating as cNIGHT on Cardano
- The reserve pool, representing funds allocated for protocol participation rewards
- The treasury pool, representing funds reserved for governance-controlled strategic use
New features requiring configuration updates
No configuration updates are required for this release.
Deprecations
None in this release.
Breaking changes
Below are the breaking changes and required actions for developers.
Last block time context variable
blockContext includes an additional field, lastBlockTime.
Required actions: None
Transaction behavior changes
This release includes behavior-level breaking changes without direct API signature changes, including Merkle tree canonicity and DUST registration change calculation fixes.
Required actions: None
Fixed defect list
The following defects were fixed in Ledger 8.0.2:
| Defect number | Description |
|---|---|
| PM-20776 | Fixed reference handling after spend of NIGHT inputs during registration |
| PM-21748 | Logged and emitted non-proof-erased transaction hashes instead of misleading proof-erased variants |
| PR-161 | Fixed Merkle tree canonicity |
| PR-182 | Used BTreeMap in as_indexed |
| PM-21978 | Changed divide-by-zero from panic to error |
Links and references
- GitHub repository: Midnight Ledger
- API documentation: Midnight Ledger API