feat: BIP-39 master seed for unified key derivation
Replace fragmented random key generation with a single 24-word BIP-39 mnemonic that deterministically derives all node keys: Ed25519 (DID), secp256k1 (Nostr/Bitcoin), BIP-84 xprv (Bitcoin Core), and LND aezeed entropy. New onboarding flow: seed generate → word verification → identity naming. Restore path enabled via 24-word entry. Includes seed RPC handlers, mock backend support, LND/Bitcoin Core wallet-from-seed integration, and UI polish across settings and discover views. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
3d50fb9888
commit
a8292ab622
@@ -225,6 +225,43 @@ class RPCClient {
|
||||
})
|
||||
}
|
||||
|
||||
// ─── Seed Management ───────────────────────────────────────────────
|
||||
|
||||
async generateSeed(): Promise<{ words: string[] }> {
|
||||
return this.call({ method: 'seed.generate' })
|
||||
}
|
||||
|
||||
async verifySeed(words: string[], indices: number[]): Promise<{
|
||||
verified: boolean
|
||||
did: string
|
||||
nostr_npub: string
|
||||
}> {
|
||||
return this.call({ method: 'seed.verify', params: { words, indices } })
|
||||
}
|
||||
|
||||
async restoreSeed(words: string[]): Promise<{
|
||||
did: string
|
||||
nostr_npub: string
|
||||
restored: boolean
|
||||
}> {
|
||||
return this.call({ method: 'seed.restore', params: { words } })
|
||||
}
|
||||
|
||||
async saveSeedEncrypted(passphrase: string): Promise<{ saved: boolean }> {
|
||||
return this.call({ method: 'seed.save-encrypted', params: { passphrase } })
|
||||
}
|
||||
|
||||
async seedStatus(): Promise<{
|
||||
has_seed: boolean
|
||||
is_legacy: boolean
|
||||
identity_count: number
|
||||
next_index: number
|
||||
}> {
|
||||
return this.call({ method: 'seed.status' })
|
||||
}
|
||||
|
||||
// ─── Node Identity ───────────────────────────────────────────────
|
||||
|
||||
async getNodeDid(): Promise<{ did: string; pubkey: string }> {
|
||||
return this.call({
|
||||
method: 'node.did',
|
||||
|
||||
Reference in New Issue
Block a user