Vaulkyrie has three different signing models, so its security model is mode-dependent.Documentation Index
Fetch the complete documentation index at: https://docs.vaulkyrie.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Threat boundaries by mode
| Mode | Main secret | What compromise means | Mitigation in code |
|---|---|---|---|
| Threshold Vault | FROST key packages | A device with fewer than threshold shares cannot sign alone. Enough shares can sign. | DKG distributes shares; signing requires threshold participants; server cosigner stores only one participant share. |
| PQC Wallet | One-time Winternitz secret elements | Reusing a consumed one-time key weakens or destroys security for that key. | prepareQuantumVaultAdvanceInBackground signs an advance message and stores the next key record before submission. |
| Privacy Vault | Local Ed25519 secret plus Umbra master seed | The signer can authorize Umbra operations; the master seed is needed to decrypt private balance state. | Background session checks, encrypted storage, master seed validation against Umbra identity. |
Relay server trust model
The relay server forwards ceremony messages and maintains session membership. It should not be treated as a trusted custody authority. For regular ceremonies, it sees round messages but not every secret share. For server cosigner mode, it stores one cosigner key package encrypted in server-local state. That cosigner can contribute one threshold signature share when invited, but it cannot sign alone unless the threshold policy is configured incorrectly. Relevant source:relay-server/src/server.tsrelay-server/src/cosigner.tsrelay-server/src/secureStorage.tssrc/services/frost/cosignerThresholdSigner.ts
One-time signature safety
Winternitz signatures are one-time signatures. A single key should sign exactly one message. Vaulkyrie encodes this model by treating the current root as spend authority and advancing to the next root after each spend. Relevant source:src/services/quantum/wots.tssrc/background/quantumVaultSession.tscrates/vaulkyrie-protocol/src/lib.rsprograms/vaulkyrie-core/src/processor.rs
Seed and backup safety
The browser wallet stores wallet state and key material through encrypted persistence helpers. The background session requires the active wallet password before revealing secrets or signing with local secret material. Relevant source:src/lib/walletPersistStorage.tssrc/lib/walletBackup.tssrc/background/sessionState.tssrc/background/vaultSession.tssrc/services/umbra/umbraMasterSeedStorage.tssrc/services/quantum/quantumVaultStorage.ts
Practical cautions
- Do not publish raw FROST key packages, Privacy Vault private keys, Umbra master seeds, PQC mnemonics, or serialized WOTS secret keys.
- Do not reuse a PQC one-time key after it has signed.
- Do not rely on local browser storage as the only copy of recoverable secrets.
- Do not document or share machine-specific paths in public docs.
- Do not change on-chain instruction layouts without coordinating redeployment and client compatibility.
