docs(theseus): record the add-on vault-root derivation as decided
bchwallet keys = HKDF(passwords/0 root, silentmode/addons/bchwallet/mainnet/0) -> m/44'/145'/0'. Confirmed; must not change once funds exist.
This commit is contained in:
parent
7b3b5f7be8
commit
a7cbc42dfa
1 changed files with 11 additions and 0 deletions
|
|
@ -22,6 +22,17 @@ m / 1414' / 0' messenger (Nostr etc.) ← future
|
|||
Same seed, three purposes, no cross-derivation. See
|
||||
[DESIGN-password-manager.md](DESIGN-password-manager.md) for the discipline.
|
||||
|
||||
**Add-on roots (decided 2026-09-06, do not change).** The vault never stores
|
||||
the BIP-39 seed, only per-purpose roots, so add-ons cannot get a fresh
|
||||
seed-level purpose after setup. `api.vault.derive("<addonId>/<path>")`
|
||||
therefore returns HKDF-SHA256(passwords/0 root, info =
|
||||
`silentmode/addons/<addonId>/<path>`). The bundled BCH wallet uses
|
||||
`bchwallet/mainnet/0` as its BIP32 master seed and derives `m/44'/145'/0'`
|
||||
from it. This is deterministic from the mnemonic (mnemonic → seed →
|
||||
passwords/0 → wallet) and works for random-seed vaults too. Changing the
|
||||
info string or the parent root would orphan every wallet's funds; recovery
|
||||
without Theseus is via the account xprv shown in the wallet's Settings.
|
||||
|
||||
## Strand A — Password manager
|
||||
|
||||
### A.1 — SHIPPED (0.0.3, 9c09955e)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue