September 14–21, 2026
This update covers verified engineering progress during the previous seven days. Work in private repositories is summarized without private links or implementation identities; links to public changes appear directly beside the summaries they support.
Core (Private Repo)
Section titled “Core (Private Repo)”Reduced archive bookkeeping and consolidated shared node logic to simplify maintenance and testing.
- Removed temporary archive benchmarks and retained the maintained performance-test suite.
- Reused Rust compilation outputs between compatible CI jobs and checked benchmark targets in their intended build configuration.
- Shared finalized archive lookup data and applied only each block’s new entries after its database write succeeded, avoiding repeated copies of growing dictionaries.
- Documented finalized-event ordering and added checks for pagination, restart and retry behavior.
- Centralized upgrade-rule definitions to reduce duplicated maintenance.
Wallet (Private Repo)
Section titled “Wallet (Private Repo)”Strengthened wallet operations for more dependable account handling.
Piecrust (Private Repo)
Section titled “Piecrust (Private Repo)”Strengthened contract execution handling for more dependable application behavior.
Bls12_381
Section titled “Bls12_381”Expanded curve-point validation and regression coverage to strengthen the library’s handling of untrusted inputs.
- Prepared version 0.15.0 metadata and its changelog, corrected the documented Rust minimum, and excluded CI configuration from the package. (PR #186)
- Added public-API tests for malformed point encodings, curve boundaries, scalar arithmetic and multi-scalar multiplication across serial and parallel configurations. (PR #187, PR #182)
- Bounded hash-expansion lengths and decoded fixed-size hexadecimal values into stack arrays, reducing avoidable allocations while preserving accepted formats. (PR #185)
- Added opt-in checks for individual and nested archived curve points, checked multi-scalar multiplication inputs, and required pairing caches to be reconstructed from validated points. (PR #181, PR #180)
Jubjub
Section titled “Jubjub”Expanded scalar and point regression tests to check encoding, arithmetic and coordinate conversions without changing production behavior. (PR #174)
Connect
Section titled “Connect”Validated provider-supplied settings and preserved connection state to make application reads and wallet selection more dependable.
- Updated the SDK’s Vitest test dependency from 4.1.4 to 4.1.11. (PR #40)
- Restricted discovered wallet icons to embedded image data, preventing the picker from requesting remote icon URLs. (PR #50)
- Validated node URLs, added bounded read timeouts and an explicit application read-node setting, and presented discovered wallet branding as self-reported. (PR #47)
- Rejected delayed profile and address results after a session changed, while preserving valid overlapping reads and submitted transaction results. (PR #39)
Wallet
Section titled “Wallet”Improved wallet unlocking, private-balance recovery and account-index validation to preserve user state across asynchronous operations.
- Moved wallet tests from Vitest 4.1.9 to 4.1.11. (PR #111)
- Restricted BLS account indices to whole numbers from 0 to 255 and added checks that signing approvals remained isolated between requesting sites. (PR #118)
- Preserved password entry and focus during passive unlock-screen updates, cleared the form on completion, and prevented duplicate submissions. (PR #116)
- Linked private-balance caches to block hashes, rebuilt invalid caches, saved scan progress with note data, and cancelled outdated synchronization work while preserving pending spending reservations. (PR #109)
Wallet discovery
Section titled “Wallet discovery”Split temporary wallet identities from saved preferences and stabilized provider selection across the SDK and wallet.
- Separated temporary wallet identities from saved product preferences. When identities collided, the SDK retained the first valid provider without treating discovery metadata as authentication. (PR #48, PR #43)
- Assigned each page’s wallet provider a temporary discovery identifier while retaining its separate message-routing identity. (PR #115)
Typed-data signing
Section titled “Typed-data signing”Added shared typed-data signing across the SDK and wallet, with bounded encoding, explicit approval details and application-verification guidance.
- Added automated checks against encoded reference data and native BLS signatures, and clarified prominent site display and application contract scoping. (PR #12)
- Added shared-library signing with trusted site and network checks and an expandable full request view. Disabled signing when the displayed request couldn’t be verified or exceeded display limits. (PR #114, PR #112)
- Integrated the shared signing library through optional imports, keeping cryptographic code out of the main SDK and requiring trusted network and site expectations for verification. (PR #41)
- Prepared package metadata and changelog entries for version 0.1.0-rc.0 without changing encoder behavior; the protocol specification remained a draft. (Commit b46ac9ea)
- Limited message structure and repeated processing while preserving accepted encodings. Documented application checks for the expected signer, network, site, contract and validity period, with single-use approvals consumed in one operation. (PR #9, PR #8)
Web-wallet
Section titled “Web-wallet”Removed retained account references on reset and blocked delayed synchronization or unlock results from restoring a previous wallet session. (PR #953)
Changed hashing to reuse validated input so custom adapters couldn’t substitute different data between checking and use. (PR #41)
Jubjub-schnorr
Section titled “Jubjub-schnorr”Required canonical signature responses in the VarGen circuit; adopting the change requires matching proving and verification keys. (PR #85)