August 31–September 7, 2026
This update covers qualifying public-repository engineering activity during the previous seven days. Links to public changes appear directly beside the summaries they support.
Web-wallet
Section titled “Web-wallet”Improved restoration, unlock and spent-note handling, alongside keyboard accessibility and browser-support maintenance.
- Corrected cache reconciliation after reverted spends by checking note-spend status. (PR #963)
- Added recovery from synchronization failures during restoration while preserving the chosen starting height and editable recovery phrase. (PR #961)
- Preserved password whitespace during unlock to match the password accepted at wallet setup. (PR #960)
- Added accessible control labels, native dashboard links and clearer keyboard behavior for navigation and switches. (PR #962)
- Replaced manually maintained path aliases with the framework-generated configuration. (PR #959)
- Documented a two-year browser-support policy and aligned JavaScript and CSS build targets with that policy. (PR #958)
- Replaced Lamb utility calls with native JavaScript and removed the dependency while preserving existing behavior. (PR #956)
- Removed unused helpers, obsolete compatibility code and unneeded dependencies. (PR #957)
DuskEVM SDK
Section titled “DuskEVM SDK”Expanded cross-layer messaging APIs and compatibility checks, and consolidated withdrawal-rehearsal preparation.
- Shared withdrawal-rehearsal preparation and proof selection through the SDK while preserving its public API. (PR #8)
- Matched message-call hashing to the canonical OP encoding and added a compatibility test vector. (PR #7)
- Added APIs for sending cross-layer messages and tracking their submission, proofs and finalization. (PR #6)
Merlin
Section titled “Merlin”Established a Dusk-maintained transcript library compatible with Merlin 3, with updated Rust tooling and dependency handling.
- Updated the Keccak dependency and retained transcript compatibility. (PR #8)
- Replaced byte-order helpers with standard conversions and removed an unnecessary test dependency. (PR #7)
- Corrected internal state layout and supported borrowed labels without changing cryptographic challenges or generated randomness. (PR #6)
- Added compatibility test vectors and continuous-integration coverage for the new package. (PR #1)
Updated privacy guidance, ecosystem references and developer-update navigation, with a fallback for a legacy transaction link.
- Added a static fallback for the legacy transaction-model link, directing readers to its maintained deep-dive page. (PR #147)
- Refreshed ecosystem listings for DuskScan, the .dusk gateway and contract-development tools. (PR #146)
- Consolidated privacy documentation around a canonical guide and aligned related capability and status references. (PR #145)
- Added the August 24–31 developer update and its source references to the newest-first update index. (PR #144)
Jubjub
Section titled “Jubjub”Removed unused embedded encryption code that had been superseded by a dedicated library. (PR #166)
Poseidon252
Section titled “Poseidon252”Expanded hash-compatibility tests and enabled stricter development checks without changing release behavior.
- Restored development-mode assertion and overflow checks while leaving release settings unchanged. (PR #296)
- Added known-answer tests across hashing domains and multiple outputs to guard API compatibility. (PR #294)
- Prevented unsafe Rust code from being introduced into the hash library. (PR #293)
Strengthened proof-input binding and serialization checks while reducing unnecessary memory allocation.
- Serialized scalars into one preallocated buffer instead of allocating a separate buffer for each value. (PR #963)
- Corrected bit-length calculation for dynamically sized byte containers. (PR #962)
- Bound proofs to the public-input positions selected during compilation and explicitly rejected incompatible legacy prover data. (PR #958)
- Made undersized serialization buffers fail explicitly and calculated prover-key storage from actual polynomial lengths. (PR #955)
Updated WebAssembly memory-copy validation and TypeScript definitions in preparation for version 0.2.0. (PR #13)
Bls12_381
Section titled “Bls12_381”Strengthened serialized field-value checks and simplified curve-point encoding while preserving valid formats.
- Rejected noncanonical archived field values while preserving the existing format and valid round trips. (PR #176)
- Reused compressed point encoders to remove duplicate serialization code without changing its output. (PR #174)
Wallet
Section titled “Wallet”Updated mainnet and testnet account-history links to DuskScan and hid explorer controls for unsupported networks. (PR #105)
Merkle
Section titled “Merkle”Expanded verification tests and restored benchmark coverage while simplifying tree initialization.
- Restored the zero-knowledge benchmark against the current hash API and included all targets in continuous-integration linting. (PR #138)
- Added native and circuit tests that rejected tampered leaves, sibling paths and roots. (PR #139)
- Replaced custom unsafe array initialization with the standard-library equivalent. (PR #134)
- Removed a redundant proof example that duplicated the maintained integration test. (PR #135)