Release Notes
Signing Room v3.3.0 & @signing-room/sdk v1.1.0
This release introduces a major usability upgrade for high-stakes treasury coordination: Encrypted UTXO Address Labelling. Alongside this flagship feature, we resolved a tricky WebSocket race condition in the address book sync, patched an upstream base image CVE, and significantly improved our test suite coverage.
Because this is a non-breaking, additive protocol update, the WebSocket protocol version remains stable, ensuring backward compatibility with older clients.
✨ New Features
Address Labelling (UTXO Labelling)
Coordinators can now assign human-readable aliases (e.g., "Corporate Treasury Cold Storage" or "Primary Vault") directly to raw Bitcoin input and output addresses.
- Zero-Knowledge: Like all metadata, address labels are end-to-end encrypted and cryptographically blinded. The relay server never learns the underlying addresses or their assigned labels.
- Real-time Syncing: Labels applied by the Coordinator are instantly broadcasted and decrypted by all connected participants in the room.
- Persistent Caching: Labels are securely saved to the user's local address book, meaning recognized addresses will automatically display their human-readable aliases in future signing ceremonies.
- Forensic Auditing: Assigned labels are automatically ingested into the final PDF and CSV audit logs alongside the raw addresses.
🐛 Bug Fixes
-
Audit Log Double-Firing (Race Condition): Fixed an issue where auto-syncing the local address book during room initialization caused duplicate
UPDATE_ADDRESS_LABELnetwork requests (and duplicate audit log entries). -
Implemented a strictly-timed
hasSyncedLocalAddressBookexecution lock bound to theSTATE_SYNC_DECRYPTEDandROLE_UPDATEevents. -
Added
Setdata structures to instantly deduplicate identical addresses (e.g., change addresses) before network calls are dispatched, ensuring completely atomic state and log updates. -
Trivy Scan / Alpine Base Image CVE: Addressed a high-severity OpenSSL vulnerability (
CVE-2026-14456) failing CI/CD Trivy scans. Upstream Nginx images were lagging, so we implemented a temporary root-escalation step in the Docker build to manually upgradelibssl3andlibcrypto3. This permanently mitigates the CVE while preserving the hardened, minimal attack surface of the unprivilegedalpine-slimimage.
📦 SDK Updates (@signing-room/sdk v1.1.0)
- New Method: Added
coordinator.setAddressLabel(address, label)to allow programmatic labelling of UTXOs. - New State Property: The
RoomStateinterface now exposes theaddressLabelsdictionary. - New Event: The
SigningRoomClientnow routes theADDRESS_LABELS_DECRYPTEDaction to the internal state store.
🧩 Web Component / UI Updates
- New Webhook Event: The embedded
<signing-room>widget now emits anaddressLabelledCustomEvent via theWidgetDispatcherServiceso host applications can track when UTXOs are aliased. - UI Integration: Added a new "Add Label" action button to all input and output cards in the transaction overview tab.
- Search Support & UX: The transaction search filter now accurately parses and filters against human-readable address labels. Input placeholders were also updated to explicitly prompt users to "Search by address or label..." to ensure the feature is instantly discoverable.
🛡️ Relay Worker & Security
- Buffer Overflow Protection: Implemented a strict 200-character payload limit on both hardware signer labels and address labels within the Cloudflare Worker to protect the Durable Object against storage bloat and spam.
- State Syncing: Updated the
STATE_SYNCandUPDATE_ADDRESS_LABELWebSockets actions to correctly map and broadcast the new blinded label properties.
🧪 Testing & Tooling Upgrades
- Expanded E2E Coverage: Playwright tests have been heavily expanded and refined:
- Added full UI interaction coverage for the Address Labelling flow, including filtering inputs/outputs by custom labels and verifying empty search states.
- Added Web Component host telemetry checks to verify
addressLabelledevent emissions. - Expanded the deterministic BIP protocol test vectors to generate and validate
UPDATE_ADDRESS_LABELcryptographic cipher payloads.


