---
config:
layout: fixed
theme: base
themeVariables:
primaryColor: '#e94a39'
primaryBorderColor: '#e94a39'
primaryTextColor: '#ffffff'
lineColor: '#e94a39'
look: classic
---
flowchart TD
subgraph subGraph0["Local Storage"]
direction TB
V["Vault
(password_manager.Vault)
• encrypted index
• config"]
end
subgraph subGraph1["Backup Pipeline"]
direction TB
BK1["Timestamped Backups
(BackupManager)"]
BK2["Portable Backup
(portable_backup.py)
.json.enc"]
BK3["Nostr Snapshot
(nostr.client)
gzip chunks"]
end
subgraph Restore["Restore"]
direction TB
R1["Local Backup File"]
R2["Nostr Snapshot"]
R3["Portable Backup"]
R4["Vault Restore
(Vault / BackupManager)"]
end
A["Parent Seed
(BIP-39 Mnemonic)"] --> B["Seed Bytes
(BIP-39 → 512-bit)"]
B --> C["BIP-85 Derivation
(local_bip85.BIP85)"]
C --> D1["Password Entropy
(password_generation)"] & D2["TOTP Secret
(utils.key_derivation.derive_totp_secret)"] & D3["SSH Key Entropy
(password_generation.derive_ssh_key)"] & D4["PGP Key Entropy
(entry_management.add_pgp_key)"] & D5["Child Mnemonic
(BIP-85 derive_mnemonic)"] & D6["Nostr Key Entropy
(nostr.KeyManager)"] & D7["Key/Value Data
(entry_management.add_key_value)"] & D8["Managed Account Seed
(entry_management.add_managed_account)"]
D1 --> E1["Passwords"]
D2 --> E2["2FA Codes"]
D3 --> E3["SSH Key Pair"]
D4 --> E4["PGP Key"]
D5 --> E5["Seed Phrase"]
D6 --> E6["Nostr Keys
(npub / nsec)"]
D7 --> E7["Key/Value"]
D8 --> E8["Managed Account"]
E1 --> V
E2 --> V
E3 --> V
E4 --> V
E5 --> V
E6 --> V
E7 --> V
E8 --> V
V --> BK1 & BK2 & BK3
R1 --> R4
R2 --> R4
R3 --> R4
R4 --> V
A -. "Same seed ⇒ re-derive any artifact on demand" .- E1
A -.-> E2 & E3 & E4 & E5 & E6 & E7 & E8