> For AI agents: the documentation index is at https://docs.umbraprivacy.com/llms.txt, and every page is available as Markdown at its URL with .md appended.

# Recovery (/docs/account/recovery)

> **Umbra's clients, not the protocol**
>
> Recovery by signing again works because Umbra's clients derive every key from one wallet signature. The protocol has no recovery step of its own. A client that makes keys another way recovers them however its own standard says.

Recovering an Umbra account is signing the same message with the same wallet on the new device and letting it rescan. There is nothing else to restore, and nothing else that can restore it.

## On a new device

### Sign the account message

Connect your main wallet and sign the fixed Umbra message. The signature is identical to the first one, because Ed25519 signatures of the same bytes by the same key do not vary. See [the account signature](https://docs.umbraprivacy.com/docs/account/account-signature).

### Re-derive the keys

The device derives the wallet seed, and from it the platform wallet, the identity keys, the ML-KEM-768 keypair and the journal key exactly as before, and recomputes your identity commitment from them.

### Confirm the registration

The SDK asks the indexer whether the commitment is registered. It is, so nothing is sent: registration is insert-once, and a repeat is not attempted.

### Open a new local store

The store starts from the slot you registered at. No note from before that slot can be yours, because the identity it would be made out to did not exist yet.

### Rescan the encrypted notes

The device downloads the pool's encrypted notes and tries each one with your ML-KEM-768 secret key, including notes you sent yourself as change. Each match is opened and its commitment and nullifier are recomputed. See [receive and sync](https://docs.umbraprivacy.com/docs/operations/receive-and-sync).

### Mark what was spent

The device reads the pool's published nullifiers and matches them against your notes' nullifiers. Matched notes are spent; the rest are your balance.

### Rebuild your history

For every transaction that spent one of your notes, the device fetches its sender record and decrypts it with a key re-derived from your outgoing viewing key. That restores what you sent, to whom and in which token.

## What recovery depends on

- **Your main wallet.** It is the only backup. The Solana SDK offers no recovery phrase for an account derived from a signature.
- **The same chain and deployment.** Both are part of the derivation, so an application pointed at another deployment derives a different account from the same signature, and finds none of your notes.
- **A wallet that signs the exact message.** A wallet or adapter that wraps the message before signing is refused: the SDK checks the signature over the exact message before deriving any key. Recover with the wallet you registered with.
- **The encrypted-note archive.** The chain stores only note commitments and a digest of each transaction's encrypted notes, never the encrypted notes themselves. Finding your notes needs the archive the data endorser writes and the indexer serves. If it were lost, the chain alone would not be enough to find or open your notes.

## What cannot be recovered

- **A lost main wallet is a lost account.** Nothing else can reproduce the signature, and without it nobody can derive your spending keys. Your private balance stays in the pool's token accounts, unspendable.
- **The guardian nodes cannot help you spend.** Their viewing-key shares cannot be used to spend: spending needs the spending key, the nullifier key and the blinders, which were never shared.
- **The escape hatch is no way round a lost wallet.** It still needs a proof of ownership, which needs the same keys. See [escape hatch](https://docs.umbraprivacy.com/docs/operations/escape-hatch).

## If the signature leaks

There is no way to rotate or revoke Umbra keys: no instruction replaces an identity commitment or changes the keys behind it, and the account message itself says so. If you believe the signature has leaked:

1. create a new account from a different main wallet and register it;
2. move your private balance to the new account with private transfers, or withdraw it;
3. treat the old account's history as readable by whoever holds the signature, permanently.

Whoever holds the leaked signature can spend at the same time as you, so this is a race.

## Checklist

- Keep your main wallet's own backup safe; it is the Umbra backup too.
- Sign the account message only in an application you trust, and never copy the signature anywhere.
- Recover with the same wallet and the same way of signing that you registered with.
- If a recovered account shows as unregistered, stop: you are probably looking at a different account, not an empty one.

## Related

- [The account signature](https://docs.umbraprivacy.com/docs/account/account-signature): Why signing again recovers everything.
- [Receive and sync](https://docs.umbraprivacy.com/docs/operations/receive-and-sync): How the rescan finds your notes.
- [Everything you own](https://docs.umbraprivacy.com/docs/account/overview): Each object and where it lives.


Last updated 12 October 2026
