# Design BSV wallet backup and recovery: every rule

Every do and don't the guide states on the pages behind this skill. The costly ones come first; the full list follows, grouped by page. Quote them; do not paraphrase them.

85 rules: 28 that can cost money, 12 that can cost trust, 45 standard.

## Start here

- **DON'T** _(Costs money)_ Protect a backup with a password manager or account that lived only on the lost phone. That is not a backup. See Cloud backup › The circular-dependency trap.
  <https://www.bitcoinsv.design/guide/rule/1dcc7454f0/>
- **DO** _(Costs money)_ Never tell users "these words are your wallet" unless that is true for your wallet. Say plainly what the backup covers and what it doesn't.
  <https://www.bitcoinsv.design/guide/rule/79072d4e71/>
- **DON'T** _(Costs money)_ Let the master identity key sign payments or messages directly, and never expose a child private key derived against anyone.
  <https://www.bitcoinsv.design/guide/rule/bd0e68876f/>
- **DON'T** _(Costs money)_ Imply that recovery words move between wallet families. "Compatible with any bitcoin wallet" is false here, and a user who believes it will conclude their money is gone.
  <https://www.bitcoinsv.design/guide/rule/2377e802d8/>
- **DON'T** _(Costs money)_ Let the words reach a screenshot, a cloud note, a password manager on the same device, or a chat message. Disable screenshots on that screen where the platform allows it, and say why.
  <https://www.bitcoinsv.design/guide/rule/fd2bd65519/>
- **DO** _(Costs money)_ Encrypt on the device, before anything is sent. The service should only ever hold a blob it cannot read.
  <https://www.bitcoinsv.design/guide/rule/78bc2950f3/>
- **DON'T** _(Costs money)_ Store the root private key on a remote service in a form the service can decrypt. That is custody, and it should be described as custody.
  <https://www.bitcoinsv.design/guide/rule/f728c8f93c/>
- **DO** _(Costs money)_ Walk the recovery path assuming the device is gone, not locked, and remove every step that needs something only that device had.
  <https://www.bitcoinsv.design/guide/rule/c22b55aa20/>
- **DON'T** _(Costs money)_ Derive the encryption key from something the provider also holds. If the provider can decrypt it, the user is not self-custodying and the screen should not say they are.
  <https://www.bitcoinsv.design/guide/rule/fa511c9f66/>
- **DO** _(Costs money)_ Show when the last backup ran, on a screen the user sees often. A backup that silently stopped three months ago fails exactly when it is needed.
  <https://www.bitcoinsv.design/guide/rule/0994527ea9/>
- **DON'T** _(Costs money)_ Tell users "these words are your wallet" unless your wallet can restore everything from the words alone. A user who believes it will one day restore an empty-looking wallet and conclude the money is gone.
  <https://www.bitcoinsv.design/guide/rule/7b87f637ac/>
- **DON'T** _(Costs money)_ Call the whole thing "backup" and show one tick. That is the error this page exists to prevent.
  <https://www.bitcoinsv.design/guide/rule/969c5ee46a/>
- **DO** _(Costs money)_ Walk the recovery path assuming the device is gone, not locked, and remove anything that only exists on it.
  <https://www.bitcoinsv.design/guide/rule/b9cea7af28/>
- **DO** _(Costs money)_ Explain first, in two sentences: what the words do, and that a photograph of them is a copy of the money. Then show them.
  <https://www.bitcoinsv.design/guide/rule/55c4347112/>
- **DO** _(Costs money)_ Disable screenshots on this screen where the platform allows it, and say why rather than failing silently.
  <https://www.bitcoinsv.design/guide/rule/5836d4dc2f/>
- **DON'T** _(Costs money)_ Offer copy to clipboard. The clipboard is readable by other apps and syncs between devices.
  <https://www.bitcoinsv.design/guide/rule/bcf92277dd/>
- **DO** _(Costs money)_ Offer shares as an alternative, not an addition. Words and shares are two encodings of the same secret, so holding both makes two complete copies to protect rather than a safer arrangement.
  <https://www.bitcoinsv.design/guide/rule/805502c7da/>
- **DON'T** _(Costs money)_ Make it a manual export the user has to remember. They will not, and the gap will be exactly the payments they most wanted back.
  <https://www.bitcoinsv.design/guide/rule/72eb015230/>
- **DO** _(Costs money)_ Encrypt the backup with a key derived from the recovery words, so the words and the backup restore everything with nothing else to remember.
  <https://www.bitcoinsv.design/guide/rule/3329c28e91/>
- **DO** _(Costs money)_ Say on the setup screen that nobody else can open or reset this backup: "Only your recovery words can open this backup. Nobody can reset them, including us."
  <https://www.bitcoinsv.design/guide/rule/48e07a4783/>
- **DON'T** _(Costs money)_ Derive the encryption key from anything the provider also holds. If they can decrypt it, this is custody and the screen should not say otherwise.
  <https://www.bitcoinsv.design/guide/rule/d13e35fd6e/>
- **DO** _(Costs money)_ Test recovery by wiping a device, not by logging out.
  <https://www.bitcoinsv.design/guide/rule/b4d9b31c84/>
- **DO** _(Costs money)_ Say on this screen that it does not back up the keys. A user who sets this up and sees a tick will reasonably conclude they are finished. "Your wallet backup restores your records. Your recovery words restore your keys, and you still need to write them down."
  <https://www.bitcoinsv.design/guide/rule/360c4bae8b/>
- **DO** _(Costs money)_ When the keys are restored but no wallet backup is found, say so: "Your keys are restored. We could not find your wallet backup, so some payments may be missing. Anything you receive from now on will appear normally."
  <https://www.bitcoinsv.design/guide/rule/8b17310f57/>
- **DON'T** _(Costs money)_ Report a balance of zero as though it were a fact. It is the balance of what the wallet currently knows about.
  <https://www.bitcoinsv.design/guide/rule/8d9414d260/>
- **DO** _(Costs money)_ Re-establish the backup on the new device, and say so. A recovered wallet with no backup is one failure away from the same situation.
  <https://www.bitcoinsv.design/guide/rule/c35ab608d2/>
- **DO** _(Costs money)_ Run a full drill before the product holds real money: fund it, make payments across several counterparties, export, delete the installation, remove your own service from the path, and restore on a clean device with a different compatible wallet. See Backups.
  <https://www.bitcoinsv.design/guide/rule/c2ecdfda32/>
- **DON'T** _(Costs money)_ Ship a recovery flow that has only been tested with the original app still installed. That is the one situation it will not be used in.
  <https://www.bitcoinsv.design/guide/rule/8825d2c974/>
- **DON'T** _(Costs trust)_ Describe a shared or custodial key as self-custody.
  <https://www.bitcoinsv.design/guide/rule/3154963c4f/>
- **DON'T** _(Costs trust)_ Offer a choice of key scheme during onboarding. A person setting up their first wallet has no basis to answer, and the question is a good way to lose them before they hold anything.
  <https://www.bitcoinsv.design/guide/rule/9c4d3387b5/>
- **DON'T** _(Costs trust)_ Turn remote storage on without saying so. It is a meaningful change in who can be compelled to hand over data, and it belongs to the user to decide.
  <https://www.bitcoinsv.design/guide/rule/b2e765791f/>
- **DO** _(Costs trust)_ Say on the words screen which wallets can restore them: "These words restore your wallet in apps that support BSV recovery words. Other wallets may show an empty balance."
  <https://www.bitcoinsv.design/guide/rule/68b56c1f7c/>
- **DO** _(Costs trust)_ End the flow by saying what it did not do, and show the state of the other part: "Your recovery words restore your keys. Your wallet backup restores your records: which money is yours and how to spend it. Keep both." See Backup and recovery.
  <https://www.bitcoinsv.design/guide/rule/38ddb4b53c/>
- **DO** _(Costs trust)_ Explain it in one line that says where the backup goes and what opens it: "Back up your wallet to your cloud storage? It is encrypted on this phone, and only your recovery words can open it."
  <https://www.bitcoinsv.design/guide/rule/eaac762adf/>
- **DON'T** _(Costs trust)_ Enable remote storage without saying so. It changes who can be compelled to hand over data, and that is the user's decision.
  <https://www.bitcoinsv.design/guide/rule/6efda86df6/>
- **DON'T** _(Costs trust)_ Protect the backup with a separate PIN or password. A short PIN can be guessed by anyone holding the file, and a password is one more secret to forget at the worst moment.
  <https://www.bitcoinsv.design/guide/rule/010eaed1f0/>
- **DO** _(Costs trust)_ Recover what can be recovered without records, and be explicit that it may be partial.
  <https://www.bitcoinsv.design/guide/rule/a3cc43f610/>
- **DO** _(Costs trust)_ Name anything that did not, and say what it means. A token type the wallet does not support, records older than the backup, a Pass that needs reissuing.
  <https://www.bitcoinsv.design/guide/rule/4478343928/>
- **DON'T** _(Costs trust)_ Show a success screen with no numbers on it. The user's question is "is my money there", and a tick does not answer it.
  <https://www.bitcoinsv.design/guide/rule/6d3c1b95b2/>
- **DO** _(Costs trust)_ Prompt the user to check whether the old device should be considered compromised, if it was stolen rather than lost. Moving to fresh keys is a real option and nobody will think of it unaided.
  <https://www.bitcoinsv.design/guide/rule/7216e8df19/>

## Every rule, by page

### Backups

https://www.bitcoinsv.design/guide/how-it-works/backups/

- **DON'T** _(Costs money)_ Protect a backup with a password manager or account that lived only on the lost phone. That is not a backup. See Cloud backup › The circular-dependency trap.
  <https://www.bitcoinsv.design/guide/rule/1dcc7454f0/>
- **DO** Keep wallet records on the device by default, and make remote storage a separate, explained opt-in.
  <https://www.bitcoinsv.design/guide/rule/c9bd01e85a/>
- **DO** Encrypt records on the device before they are sent anywhere.
  <https://www.bitcoinsv.design/guide/rule/2f53032efb/>
- **DO** Back up records automatically and show when the last backup ran.
  <https://www.bitcoinsv.design/guide/rule/f8a0f3fbe9/>
- **DO** _(Costs money)_ Never tell users "these words are your wallet" unless that is true for your wallet. Say plainly what the backup covers and what it doesn't.
  <https://www.bitcoinsv.design/guide/rule/79072d4e71/>

### Overview

https://www.bitcoinsv.design/guide/how-it-works/private-key-management/overview/

- **DO** Have apps sign through the Wallet Application Interface, which uses a key derived for that purpose and never hands the app a private key.
  <https://www.bitcoinsv.design/guide/rule/b10c1953ad/>
- **DON'T** _(Costs money)_ Let the master identity key sign payments or messages directly, and never expose a child private key derived against anyone.
  <https://www.bitcoinsv.design/guide/rule/bd0e68876f/>
- **DON'T** _(Costs trust)_ Describe a shared or custodial key as self-custody.
  <https://www.bitcoinsv.design/guide/rule/3154963c4f/>
- **DO** Start people on the simplest scheme that suits the amount they hold, and offer a clear upgrade when the balance grows past it. See Wallet setups.
  <https://www.bitcoinsv.design/guide/rule/d8ba56d867/>
- **DO** Name what each scheme protects against, in the user's terms: a lost phone, a stolen phone, a dishonest person, a forgotten password.
  <https://www.bitcoinsv.design/guide/rule/4268e213cf/>
- **DON'T** _(Costs trust)_ Offer a choice of key scheme during onboarding. A person setting up their first wallet has no basis to answer, and the question is a good way to lose them before they hold anything.
  <https://www.bitcoinsv.design/guide/rule/9c4d3387b5/>
- **DON'T** Describe a scheme as "secure" without saying against what. Every scheme here is secure against something and useless against something else.
  <https://www.bitcoinsv.design/guide/rule/353e154e6e/>

### Manual backup

https://www.bitcoinsv.design/guide/how-it-works/private-key-management/manual-backup/

- **DON'T** _(Costs money)_ Imply that recovery words move between wallet families. "Compatible with any bitcoin wallet" is false here, and a user who believes it will conclude their money is gone.
  <https://www.bitcoinsv.design/guide/rule/2377e802d8/>
- **DO** Say which kind of words these are on the screen that shows them, and again on the screen that asks for them.
  <https://www.bitcoinsv.design/guide/rule/15efe0ff89/>
- **DO** Offer one method at setup, and let the user change it later.
  <https://www.bitcoinsv.design/guide/rule/505afb0055/>
- **DO** Explain what the words are and where to keep them before showing them.
  <https://www.bitcoinsv.design/guide/rule/60535151ec/>
- **DO** Confirm a few words at a position the user must read, and follow it with a plain prompt about where the paper will live.
  <https://www.bitcoinsv.design/guide/rule/5783e7ffbd/>
- **DON'T** Block the wallet behind a full twenty-four-word re-entry. People copy and paste to get past it, usually from the clipboard, which is the least safe place for them.
  <https://www.bitcoinsv.design/guide/rule/f260f13de8/>
- **DO** Offer a recovery check the user can run at any time, which confirms the words match without moving money.
  <https://www.bitcoinsv.design/guide/rule/085357cf4e/>
- **DO** Suggest two locations in different buildings, in plain terms: "one at home, one somewhere else you can reach".
  <https://www.bitcoinsv.design/guide/rule/e418176567/>
- **DON'T** _(Costs money)_ Let the words reach a screenshot, a cloud note, a password manager on the same device, or a chat message. Disable screenshots on that screen where the platform allows it, and say why.
  <https://www.bitcoinsv.design/guide/rule/fd2bd65519/>

### Automatic cloud backup

https://www.bitcoinsv.design/guide/how-it-works/private-key-management/cloud-backup/

- **DO** _(Costs money)_ Encrypt on the device, before anything is sent. The service should only ever hold a blob it cannot read.
  <https://www.bitcoinsv.design/guide/rule/78bc2950f3/>
- **DON'T** _(Costs money)_ Store the root private key on a remote service in a form the service can decrypt. That is custody, and it should be described as custody.
  <https://www.bitcoinsv.design/guide/rule/f728c8f93c/>
- **DO** _(Costs money)_ Walk the recovery path assuming the device is gone, not locked, and remove every step that needs something only that device had.
  <https://www.bitcoinsv.design/guide/rule/c22b55aa20/>
- **DON'T** _(Costs money)_ Derive the encryption key from something the provider also holds. If the provider can decrypt it, the user is not self-custodying and the screen should not say they are.
  <https://www.bitcoinsv.design/guide/rule/fa511c9f66/>
- **DO** Let users choose their provider, or run their own. A backup tied to one company is a backup with that company's lifespan.
  <https://www.bitcoinsv.design/guide/rule/589ffaa0a0/>
- **DO** Support more than one location at once. Two independent copies is the point.
  <https://www.bitcoinsv.design/guide/rule/d9fc409813/>
- **DO** _(Costs money)_ Show when the last backup ran, on a screen the user sees often. A backup that silently stopped three months ago fails exactly when it is needed.
  <https://www.bitcoinsv.design/guide/rule/0994527ea9/>
- **DON'T** _(Costs trust)_ Turn remote storage on without saying so. It is a meaningful change in who can be compelled to hand over data, and it belongs to the user to decide.
  <https://www.bitcoinsv.design/guide/rule/b2e765791f/>

### Backup and recovery

https://www.bitcoinsv.design/guide/daily-spending-wallet/backup-and-recovery/landing-page/

- **DON'T** _(Costs money)_ Tell users "these words are your wallet" unless your wallet can restore everything from the words alone. A user who believes it will one day restore an empty-looking wallet and conclude the money is gone.
  <https://www.bitcoinsv.design/guide/rule/7b87f637ac/>
- **DO** Put both items on one screen, each with its own state, so the user can see at a glance that one is done and the other is not.
  <https://www.bitcoinsv.design/guide/rule/ef829f99e9/>
- **DON'T** _(Costs money)_ Call the whole thing "backup" and show one tick. That is the error this page exists to prevent.
  <https://www.bitcoinsv.design/guide/rule/969c5ee46a/>
- **DO** _(Costs money)_ Walk the recovery path assuming the device is gone, not locked, and remove anything that only exists on it.
  <https://www.bitcoinsv.design/guide/rule/b9cea7af28/>

### Manual backup

https://www.bitcoinsv.design/guide/daily-spending-wallet/backup-and-recovery/manual-backup/

- **DO** _(Costs money)_ Explain first, in two sentences: what the words do, and that a photograph of them is a copy of the money. Then show them.
  <https://www.bitcoinsv.design/guide/rule/55c4347112/>
- **DON'T** Lead with a warning screen full of prohibitions. "Never screenshot, never email, never store in the cloud" is three nos before a person knows what the thing is.
  <https://www.bitcoinsv.design/guide/rule/a332028d19/>
- **DO** Number every word and show them in a fixed grid. Order matters and a reflowing list makes it ambiguous.
  <https://www.bitcoinsv.design/guide/rule/0499178954/>
- **DO** _(Costs money)_ Disable screenshots on this screen where the platform allows it, and say why rather than failing silently.
  <https://www.bitcoinsv.design/guide/rule/5836d4dc2f/>
- **DON'T** _(Costs money)_ Offer copy to clipboard. The clipboard is readable by other apps and syncs between devices.
  <https://www.bitcoinsv.design/guide/rule/bcf92277dd/>
- **DO** _(Costs trust)_ Say on the words screen which wallets can restore them: "These words restore your wallet in apps that support BSV recovery words. Other wallets may show an empty balance."
  <https://www.bitcoinsv.design/guide/rule/68b56c1f7c/>
- **DO** Confirm a few words at positions the user must read, then follow it with the question that matters: where is this going to live?
  <https://www.bitcoinsv.design/guide/rule/67bef33541/>
- **DON'T** Require every word back. People copy and paste to get past it, usually from the clipboard you just told them not to use.
  <https://www.bitcoinsv.design/guide/rule/7cced96089/>
- **DO** Ask, concretely, and offer sensible answers to pick from: a drawer at home, a safe, with a family member, a bank box. A choice is easier to make than a blank.
  <https://www.bitcoinsv.design/guide/rule/fd0cd00eb7/>
- **DO** Suggest two locations in different buildings, in plain words: "one at home, one somewhere else you can reach".
  <https://www.bitcoinsv.design/guide/rule/02d29e29bf/>
- **DO** Record what the user chose, so the recovery screen can remind them where they said they put it. A year later that is genuinely useful. Keep it inside the encrypted wallet backup, never in plain text with a provider.
  <https://www.bitcoinsv.design/guide/rule/111cd45f3d/>
- **DO** _(Costs money)_ Offer shares as an alternative, not an addition. Words and shares are two encodings of the same secret, so holding both makes two complete copies to protect rather than a safer arrangement.
  <https://www.bitcoinsv.design/guide/rule/805502c7da/>
- **DON'T** Offer shares to someone who will keep all five in the same drawer. Ask where they would go before offering the option.
  <https://www.bitcoinsv.design/guide/rule/7daa3d56b3/>
- **DO** Offer a recovery check at any time, which asks for the words and confirms they match without moving money. Put it where a worried user would look, which is settings and the backup screen, not a help article.
  <https://www.bitcoinsv.design/guide/rule/d13aff32cc/>
- **DO** _(Costs trust)_ End the flow by saying what it did not do, and show the state of the other part: "Your recovery words restore your keys. Your wallet backup restores your records: which money is yours and how to spend it. Keep both." See Backup and recovery.
  <https://www.bitcoinsv.design/guide/rule/38ddb4b53c/>

### Automatic cloud backup

https://www.bitcoinsv.design/guide/daily-spending-wallet/backup-and-recovery/cloud-backup/

- **DO** Run it continuously in the background, and show when it last succeeded somewhere the user passes regularly.
  <https://www.bitcoinsv.design/guide/rule/4aa08e24f3/>
- **DON'T** _(Costs money)_ Make it a manual export the user has to remember. They will not, and the gap will be exactly the payments they most wanted back.
  <https://www.bitcoinsv.design/guide/rule/72eb015230/>
- **DO** _(Costs trust)_ Explain it in one line that says where the backup goes and what opens it: "Back up your wallet to your cloud storage? It is encrypted on this phone, and only your recovery words can open it."
  <https://www.bitcoinsv.design/guide/rule/eaac762adf/>
- **DO** Let the user decline, and say what declining means in a sentence rather than a warning dialog.
  <https://www.bitcoinsv.design/guide/rule/7bbbb3d91f/>
- **DON'T** _(Costs trust)_ Enable remote storage without saying so. It changes who can be compelled to hand over data, and that is the user's decision.
  <https://www.bitcoinsv.design/guide/rule/6efda86df6/>
- **DO** _(Costs money)_ Encrypt the backup with a key derived from the recovery words, so the words and the backup restore everything with nothing else to remember.
  <https://www.bitcoinsv.design/guide/rule/3329c28e91/>
- **DON'T** _(Costs trust)_ Protect the backup with a separate PIN or password. A short PIN can be guessed by anyone holding the file, and a password is one more secret to forget at the worst moment.
  <https://www.bitcoinsv.design/guide/rule/010eaed1f0/>
- **DO** _(Costs money)_ Say on the setup screen that nobody else can open or reset this backup: "Only your recovery words can open this backup. Nobody can reset them, including us."
  <https://www.bitcoinsv.design/guide/rule/48e07a4783/>
- **DON'T** _(Costs money)_ Derive the encryption key from anything the provider also holds. If they can decrypt it, this is custody and the screen should not say otherwise.
  <https://www.bitcoinsv.design/guide/rule/d13e35fd6e/>
- **DO** _(Costs money)_ Test recovery by wiping a device, not by logging out.
  <https://www.bitcoinsv.design/guide/rule/b4d9b31c84/>
- **DO** Let the user choose a provider, or run their own. A backup tied to one company has that company's lifespan.
  <https://www.bitcoinsv.design/guide/rule/070ec8c365/>
- **DO** Support more than one destination at once. Two independent copies is the point of the exercise.
  <https://www.bitcoinsv.design/guide/rule/5d6888cf98/>
- **DO** Show the last successful backup as a time, not a tick. "Backed up 2 minutes ago" is information; a green check is decoration.
  <https://www.bitcoinsv.design/guide/rule/6f6ccf0656/>
- **DO** Say something when it has not run for a while, and say why where you can: no network, the service rejected it, or the user needs to sign in to the service again.
  <https://www.bitcoinsv.design/guide/rule/48beb0f300/>
- **DO** _(Costs money)_ Say on this screen that it does not back up the keys. A user who sets this up and sees a tick will reasonably conclude they are finished. "Your wallet backup restores your records. Your recovery words restore your keys, and you still need to write them down."
  <https://www.bitcoinsv.design/guide/rule/360c4bae8b/>

### Recovery

https://www.bitcoinsv.design/guide/daily-spending-wallet/backup-and-recovery/recovery/

- **DO** Design for the unplanned case and let the planned one benefit. A flow that assumes the old device is available fails exactly when it is needed.
  <https://www.bitcoinsv.design/guide/rule/06c9f5ef70/>
- **DO** Restore keys first, then records. The keys prove the wallet is the user's and open the wallet backup; the records tell it where the money is. Do not ask for any other password at the records step.
  <https://www.bitcoinsv.design/guide/rule/00121f71a8/>
- **DO** Put "I already have a wallet" on the first screen of the app, as prominent as "create one". Somebody recovering should never have to go through onboarding to find it.
  <https://www.bitcoinsv.design/guide/rule/ca0bab7028/>
- **DON'T** Call it "import". The user is not importing anything, they are getting their own wallet back, and the word matters when they are panicking.
  <https://www.bitcoinsv.design/guide/rule/7de98cb120/>
- **DO** Autocomplete from the wordlist as they type, and accept a word as soon as it is unambiguous. It is the single biggest reduction in effort available here.
  <https://www.bitcoinsv.design/guide/rule/1962dd9851/>
- **DO** Validate the whole phrase and say what is wrong: a word not in the list, a word in the wrong position, or a checksum failure meaning one word is wrong somewhere.
  <https://www.bitcoinsv.design/guide/rule/37387ca5db/>
- **DO** Offer the alternative if the user has shares rather than words, on the same screen rather than behind a separate menu.
  <https://www.bitcoinsv.design/guide/rule/9d22338e94/>
- **DON'T** Clear the field on an error. Retyping twenty-four words because of one mistake is how people give up.
  <https://www.bitcoinsv.design/guide/rule/ce17d99763/>
- **DO** Find it automatically where you can, and fall back to letting the user point at a file they kept themselves.
  <https://www.bitcoinsv.design/guide/rule/95530a1dcf/>
- **DO** Say what the backup contains before restoring it: when it was made, and roughly what is in it.
  <https://www.bitcoinsv.design/guide/rule/7ffa83aea3/>
- **DO** _(Costs money)_ When the keys are restored but no wallet backup is found, say so: "Your keys are restored. We could not find your wallet backup, so some payments may be missing. Anything you receive from now on will appear normally."
  <https://www.bitcoinsv.design/guide/rule/8b17310f57/>
- **DO** _(Costs trust)_ Recover what can be recovered without records, and be explicit that it may be partial.
  <https://www.bitcoinsv.design/guide/rule/a3cc43f610/>
- **DON'T** _(Costs money)_ Report a balance of zero as though it were a fact. It is the balance of what the wallet currently knows about.
  <https://www.bitcoinsv.design/guide/rule/8d9414d260/>
- **DO** Say what is happening in words rather than a bare progress bar: restoring keys, finding your backup, checking payments.
  <https://www.bitcoinsv.design/guide/rule/976472b72d/>
- **DO** Make it interruptible and resumable. Recovery happens on unfamiliar networks and a dropped connection should not mean starting over.
  <https://www.bitcoinsv.design/guide/rule/7e5bf7da40/>
- **DO** Show what came back: the balance, recent activity, contacts, and any tokens.
  <https://www.bitcoinsv.design/guide/rule/acf945665b/>
- **DO** _(Costs trust)_ Name anything that did not, and say what it means. A token type the wallet does not support, records older than the backup, a Pass that needs reissuing.
  <https://www.bitcoinsv.design/guide/rule/4478343928/>
- **DON'T** _(Costs trust)_ Show a success screen with no numbers on it. The user's question is "is my money there", and a tick does not answer it.
  <https://www.bitcoinsv.design/guide/rule/6d3c1b95b2/>
- **DO** _(Costs money)_ Re-establish the backup on the new device, and say so. A recovered wallet with no backup is one failure away from the same situation.
  <https://www.bitcoinsv.design/guide/rule/c35ab608d2/>
- **DO** _(Costs trust)_ Prompt the user to check whether the old device should be considered compromised, if it was stolen rather than lost. Moving to fresh keys is a real option and nobody will think of it unaided.
  <https://www.bitcoinsv.design/guide/rule/7216e8df19/>
- **DO** _(Costs money)_ Run a full drill before the product holds real money: fund it, make payments across several counterparties, export, delete the installation, remove your own service from the path, and restore on a clean device with a different compatible wallet. See Backups.
  <https://www.bitcoinsv.design/guide/rule/c2ecdfda32/>
- **DON'T** _(Costs money)_ Ship a recovery flow that has only been tested with the original app still installed. That is the one situation it will not be used in.
  <https://www.bitcoinsv.design/guide/rule/8825d2c974/>
