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
|
Same seed, three purposes, no cross-derivation. See
|
||||||
[DESIGN-password-manager.md](DESIGN-password-manager.md) for the discipline.
|
[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
|
## Strand A — Password manager
|
||||||
|
|
||||||
### A.1 — SHIPPED (0.0.3, 9c09955e)
|
### A.1 — SHIPPED (0.0.3, 9c09955e)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue