Task
A SECOND node-side USER custody + signing surface survives in crates/dig-wallet/src/lib.rs — the
self-origin wallet UI (SPEC §16.3). It is a rival implementation of exactly the capability removed by
#325, and it was never covered by the #1701 freeze.
Evidence
lib.rs:369 POST /api/import — validates a mnemonic, seed_store::encrypt_seed(&m, &req.password),
writes it to seed_path(), opens a signing session.
lib.rs:409 POST /api/unlock — seed_store::decrypt_seed(&bytes, &req.password) → session.
lib.rs:510 POST /api/send — builds and BLS-signs a standard XCH payment; broadcast:true pushes
it to mainnet.
lib.rs:1049 onward — the CHIP-0002 dapp signer: chip0002_signMessage, chip0002_signCoinSpends,
chia_signMessageByAddress.
The freeze commit 2ce8002c touched sage/auth.rs, sage/custody.rs, sage/rpc.rs, seed_store.rs,
wallet_authz.rs and meta.rs — none of this.
Why it was NOT removed alongside the Sage plane
The zero-population measurement does not cover it. Step 2 of dig_ecosystem#1701 counted custody
manifest blobs (<config_dir>/wallets/), not seed_path(). Deleting this surface without its own count
carries the exact funds-loss risk the parent ticket's freeze-then-count sequence exists to prevent.
Deliverable
- COUNT first, over
seed_path(), on the same machines. Report the number.
- If zero, remove the surface and its CHIP-0002 signer, mirroring dig-node#325.
- If non-zero, an offline export path before removal, per the parent ticket's step 3.
Either way §908 — the node signs NOTHING on the user's behalf — is not whole until this closes.
SPEC.md §18.20 currently names this gap explicitly rather than claiming §908 is satisfied.
Parent
https://github.com/DIG-Network/dig_ecosystem/issues/1701
Sibling
#325
Task
A SECOND node-side USER custody + signing surface survives in
crates/dig-wallet/src/lib.rs— theself-origin wallet UI (SPEC §16.3). It is a rival implementation of exactly the capability removed by
#325, and it was never covered by the #1701 freeze.
Evidence
lib.rs:369POST /api/import— validates a mnemonic,seed_store::encrypt_seed(&m, &req.password),writes it to
seed_path(), opens a signing session.lib.rs:409POST /api/unlock—seed_store::decrypt_seed(&bytes, &req.password)→ session.lib.rs:510POST /api/send— builds and BLS-signs a standard XCH payment;broadcast:truepushesit to mainnet.
lib.rs:1049onward — the CHIP-0002 dapp signer:chip0002_signMessage,chip0002_signCoinSpends,chia_signMessageByAddress.The freeze commit
2ce8002ctouchedsage/auth.rs,sage/custody.rs,sage/rpc.rs,seed_store.rs,wallet_authz.rsandmeta.rs— none of this.Why it was NOT removed alongside the Sage plane
The zero-population measurement does not cover it. Step 2 of dig_ecosystem#1701 counted custody
manifest blobs (
<config_dir>/wallets/), notseed_path(). Deleting this surface without its own countcarries the exact funds-loss risk the parent ticket's freeze-then-count sequence exists to prevent.
Deliverable
seed_path(), on the same machines. Report the number.Either way §908 — the node signs NOTHING on the user's behalf — is not whole until this closes.
SPEC.md§18.20 currently names this gap explicitly rather than claiming §908 is satisfied.Parent
https://github.com/DIG-Network/dig_ecosystem/issues/1701
Sibling
#325