Your keys, explained
Murk uses a small set of keys, all derived from your wallet. You never manage a separate seed phrase.
Spend key
The master secret. It's derived on your device from a signature your wallet makes over a fixed message (not a transaction). From it, everything else follows. The spend key:
- opens your notes' owner key (
ownerKey = hash(spendKey)) — proving you own a note, - produces nullifiers when you spend — authorizing exactly one spend per note.
It is held in memory only, never stored or transmitted. Re-derive it anytime by connecting the same wallet and signing again.
Viewing key
A one-way subkey of the spend key (viewSeed = hash(spendKey, …)). It can decrypt your notes — read amounts and history — but cannot spend. Because it's a one-way hash of the spend key, having the viewing key never reveals the spend key.
This split is what enables compliance viewing keys: you can hand someone read access without handing over control.
Receive (shielded) address
Your public owner key + viewing public key, packed together. Others encrypt notes to it when they pay you. You can register it on-chain once so people can send to you by your ordinary Solana pubkey.
How they relate
wallet signature ──► spend key ──► owner key + nullifiers (SPEND)
│
└──► viewSeed ──► viewing key (READ ONLY)
- Spend key → can read and spend. Keep it secret.
- Viewing key → can read only. Safe to share with an auditor.
- Receive address → fully public. Share freely so people can pay you.
Losing / recovering
There's nothing extra to back up: your Murk keys are a function of your Solana wallet. Keep your wallet safe, and you keep your Murk funds. Lose your wallet, and — as with any self-custody — the funds are gone.