feat: BIP-39 master seed for unified key derivation
Some checks failed
Build Archipelago ISO (dev) / build-iso (push) Failing after 17m51s
Container Orchestration Tests / smoke-tests (push) Has been cancelled
Container Orchestration Tests / unit-tests (push) Has been cancelled

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:
Dorian
2026-03-31 01:41:24 +01:00
parent 3d50fb9888
commit a8292ab622
50 changed files with 2200 additions and 258 deletions

View File

@@ -54,6 +54,9 @@ pub struct ServerInfo {
pub wifi_ssids: Vec<String>,
#[serde(rename = "zram-enabled")]
pub zram_enabled: bool,
/// True if this node's keys are derived from a BIP-39 seed.
#[serde(rename = "seed-backed", default)]
pub seed_backed: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
@@ -269,6 +272,7 @@ impl DataModel {
unread: 0,
wifi_ssids: vec![],
zram_enabled: false,
seed_backed: false,
},
package_data: HashMap::new(),
peer_health: HashMap::new(),