# Savings, shared or inherited money

The savings and inheritance reference designs and the three wallet patterns, plus the key-management and spending-condition pages they are built on.

The costly rules come first; the full list follows, grouped by page. Every line carries the address of the sentence it came from.

306 rules: 57 that can cost money, 24 that can cost trust, 225 standard.

## Start here

- **DON'T** _(Costs money)_ Build a product where the user's funds depend on your company continuing to exist. Every wallet should be recoverable without you. See Backups.
  <https://www.bitcoinsv.design/guide/rule/665b6af4ce/>
- **DO** _(Costs money)_ Make the irreversible step unmistakable. A payment cannot be recalled, so the review screen is the last line of defence.
  <https://www.bitcoinsv.design/guide/rule/b502171c81/>
- **DO** _(Costs money)_ Show the total a payment takes from the user, who it goes to, and that it cannot be undone, before they commit.
  <https://www.bitcoinsv.design/guide/rule/72c3ab54e4/>
- **DO** _(Costs money)_ Name the limits. "This backup covers your keys but not your payment records" is the sentence that stops somebody losing money later.
  <https://www.bitcoinsv.design/guide/rule/02cda8cac2/>
- **DON'T** _(Costs money)_ Let the everyday wallet draw from savings on its own, or let an agent raise its own budget. Both turn a bridge into a leak.
  <https://www.bitcoinsv.design/guide/rule/8d5c89ed47/>
- **DON'T** _(Costs money)_ Show long decimal BSV amounts in a consumer interface. "0.00012500 BSV" asks the reader to count zeros, and they will get it wrong.
  <https://www.bitcoinsv.design/guide/rule/5fe9c5b068/>
- **DO** _(Costs money)_ Make the handle the default and the address the fallback. Every payment that uses a handle is a payment that cannot go to the wrong network.
  <https://www.bitcoinsv.design/guide/rule/98fc09f14d/>
- **DO** _(Costs money)_ Put the network name next to the address field, always, not only on error. "BSV address" is three words and it is the whole defence.
  <https://www.bitcoinsv.design/guide/rule/fea05e6af6/>
- **DO** _(Costs money)_ Warn on every pasted address rather than trying to detect a bad one. You cannot detect it, and a warning that only fires sometimes teaches people it means something specific.
  <https://www.bitcoinsv.design/guide/rule/7b6afde89f/>
- **DON'T** _(Costs money)_ Use "bitcoin address" as the field label. That is the word that cannot distinguish the networks, on the screen where the distinction is the whole point.
  <https://www.bitcoinsv.design/guide/rule/e92e4f5284/>
- **DO** _(Costs money)_ Put the network on the confirmation, beside the recipient, in the same weight as the amount.
  <https://www.bitcoinsv.design/guide/rule/e7486b509a/>
- **DO** _(Costs money)_ Say plainly what cannot be undone, before the button: "Sent to the wrong network, this usually cannot be recovered."
  <https://www.bitcoinsv.design/guide/rule/94b4f84162/>
- **DO** _(Costs money)_ Offer a test payment for a first-time address above a threshold you choose, and ask the user to check with the recipient that it arrived. It costs a fraction of a penny and it is the only defence that proves the address is right.
  <https://www.bitcoinsv.design/guide/rule/ea9599e1da/>
- **DO** _(Costs money)_ Make the network selection impossible to leave at a default, and restate the chosen network on the confirmation.
  <https://www.bitcoinsv.design/guide/rule/278b3b2795/>
- **DO** _(Costs money)_ Build time conditions with nLockTime and nSequence, and test that an early spend fails. A test that only proves the late spend succeeds proves nothing.
  <https://www.bitcoinsv.design/guide/rule/b62aa2ae7d/>
- **DO** _(Costs money)_ State where a pre-signed future transaction lives, who holds it, and what happens if the inputs are spent before its date. That is a backup requirement, not an implementation detail.
  <https://www.bitcoinsv.design/guide/rule/31f330a837/>
- **DO** _(Costs money)_ Warn before a condition becomes unmeetable, not after. "One more lost key and this is unrecoverable" is useful; the same message afterwards is not.
  <https://www.bitcoinsv.design/guide/rule/039e20ae48/>
- **DON'T** _(Costs money)_ Let a user create a condition they have not demonstrably tested. Require a small-value rehearsal of the unlock path before real money goes in.
  <https://www.bitcoinsv.design/guide/rule/b13bd63634/>
- **DO** _(Costs money)_ Back up the wallet configuration alongside the key material, and include it in the recovery drill. A condition nobody can reconstruct is money nobody can move. See Backups.
  <https://www.bitcoinsv.design/guide/rule/85a7914dd7/>
- **DON'T** _(Costs money)_ Finish setup without the user having restored from it once, with a small amount. An untested multi-key wallet has more ways to fail than a single-key one.
  <https://www.bitcoinsv.design/guide/rule/18966d7037/>
- **DON'T** _(Costs money)_ Let the limit be raised with a single key. Raising the threshold for spending is itself a high-value action and needs the quorum.
  <https://www.bitcoinsv.design/guide/rule/3e6a8e94db/>
- **DON'T** _(Costs money)_ Let the everyday wallet pull from savings on its own. A compromised app would drain both, which defeats the whole arrangement. See Multiple wallets.
  <https://www.bitcoinsv.design/guide/rule/3b0fcb147c/>
- **DO** _(Costs money)_ Move the funds to a new arrangement when a key is lost, and say why: the old key still works on every output it is part of until the money moves.
  <https://www.bitcoinsv.design/guide/rule/c85e78c073/>
- **DO** _(Costs money)_ Back up the wallet configuration alongside the keys, and include it in the recovery drill. A quorum of signers with no record of the arrangement cannot spend. See Backups.
  <https://www.bitcoinsv.design/guide/rule/2d50f1ba9d/>
- **DON'T** _(Costs money)_ Offer a period shorter than a few months. A path that opens while somebody is on a long trip is a theft risk dressed as a feature.
  <https://www.bitcoinsv.design/guide/rule/a67beef669/>
- **DO** _(Costs money)_ Make sure they keep the pre-signed transaction, since without it the path is theoretical. The wallet should hold it and the backup should include it.
  <https://www.bitcoinsv.design/guide/rule/6b029ec268/>
- **DON'T** _(Costs money)_ Add somebody to a recovery path without telling them. The arrangement only works if they still have their key when it matters.
  <https://www.bitcoinsv.design/guide/rule/83ba29796b/>
- **DO** _(Costs money)_ Send the new recovery transaction to the recovery people as part of every refresh, and show on the home screen anyone who has not received it.
  <https://www.bitcoinsv.design/guide/rule/80b2f24149/>
- **DO** _(Costs money)_ Treat it as a change with consequences: move the money to new outputs first, so the removed person's copy stops working, then say who was removed and send the new transaction to the people who remain.
  <https://www.bitcoinsv.design/guide/rule/03a855b0c8/>
- **DON'T** _(Costs money)_ Let somebody be removed from a recovery path without the wallet confirming the replacement transaction actually reached everybody who needs it.
  <https://www.bitcoinsv.design/guide/rule/9f8f455aa6/>
- **DO** _(Costs money)_ The pre-signed transaction is the part other backup designs have no slot for, and the part that makes this arrangement real. Back it up with the configuration, re-export it every time it is rebuilt, and include it in the recovery drill. See Backups.
  <https://www.bitcoinsv.design/guide/rule/3e4771352c/>
- **DON'T** _(Costs money)_ Let the wallet hold more than the rehearsal amount until the recovery path is built and every beneficiary has a copy. When the real money arrives, rebuild the path against it: money received after signing is not covered until the next refresh.
  <https://www.bitcoinsv.design/guide/rule/91b6642acd/>
- **DO** _(Costs money)_ Require a rehearsal with a small amount before the wallet holds anything real: fund it, spend from it with two keys, then build the recovery path and confirm every beneficiary has it.
  <https://www.bitcoinsv.design/guide/rule/4015b36345/>
- **DO** _(Costs money)_ Re-send the pre-signed transaction every time it is rebuilt, which is after every payment in or out and every refresh. An out-of-date copy either spends money that has already moved, and fails, or misses money the wallet received since.
  <https://www.bitcoinsv.design/guide/rule/62829388dc/>
- **DO** _(Costs money)_ Rebuild and redistribute it automatically after every payment in or out, and show on the home screen when a beneficiary is holding an out-of-date copy.
  <https://www.bitcoinsv.design/guide/rule/308a98d154/>
- **DON'T** _(Costs money)_ Treat it as a one-time export during setup. It will be wrong after the first payment.
  <https://www.bitcoinsv.design/guide/rule/ad99aa9cc4/>
- **DON'T** _(Costs money)_ Put key material in it. It is a map, not a key. It should be safe to leave with a solicitor.
  <https://www.bitcoinsv.design/guide/rule/bdfbad1985/>
- **DO** _(Costs money)_ Check the recovery path assumes the owner's devices are gone. Every step that needs something only on their phone fails at exactly the moment it is needed.
  <https://www.bitcoinsv.design/guide/rule/0d296f6e0d/>
- **DON'T** _(Costs money)_ Put the configuration and a quorum of key material in the same place. Together they are the money.
  <https://www.bitcoinsv.design/guide/rule/becbb8448d/>
- **DO** _(Costs money)_ Run a full drill before the wallet holds anything real: fund it, export everything, delete the owner's installation, and have a beneficiary recover using only the document and their own key.
  <https://www.bitcoinsv.design/guide/rule/5c4c016184/>
- **DO** _(Costs money)_ Make sure every beneficiary gets the new transaction, and tell them the old one stopped working when the money moved. Two valid-looking copies with different dates is the worst state for somebody using this in an emergency.
  <https://www.bitcoinsv.design/guide/rule/aa8881fd26/>
- **DO** _(Costs money)_ Make the new wallet's backup part of its creation, not a later prompt. A second wallet with no backup is a second way to lose money.
  <https://www.bitcoinsv.design/guide/rule/180fdb66ea/>
- **DON'T** _(Costs money)_ Offer to connect an app to the savings wallet. A savings wallet that accepts app requests is an everyday wallet with a misleading name.
  <https://www.bitcoinsv.design/guide/rule/f85efeacfa/>
- **DON'T** _(Costs money)_ Let a recovery key spend alone. It should be one of a quorum, not a back door, or the arrangement is not shared control.
  <https://www.bitcoinsv.design/guide/rule/d68af135f3/>
- **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/>
- **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)_ 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)_ Treat the signer as one key in a set rather than the only key, where the amount justifies it. A single signing device that is lost is a total loss. See Multi-key.
  <https://www.bitcoinsv.design/guide/rule/3bd229a88f/>
- **DO** _(Costs money)_ Say what happens if the device breaks, during setup, not during recovery. The answer is the recovery material, and the user should have it before they need it.
  <https://www.bitcoinsv.design/guide/rule/04eea61984/>
- **DO** _(Costs money)_ Back up the wallet configuration with the same care as a key. It names every key in the arrangement.
  <https://www.bitcoinsv.design/guide/rule/63bb703e74/>
- **DON'T** _(Costs trust)_ Require an identity document, an email address or a phone number to hold money. Where a regulation requires it for a particular feature, gate that feature, not the wallet.
  <https://www.bitcoinsv.design/guide/rule/2a1abdf36f/>
- **DO** _(Costs trust)_ Give every wallet an export the user holds themselves, and a send to a plain address that works without your servers. See Legacy compatibility.
  <https://www.bitcoinsv.design/guide/rule/0d8433711c/>
- **DO** _(Costs trust)_ Before revealing key linkage for a counterparty, tell the user it exposes every payment between them and that counterparty, past and future. See Wallet privacy.
  <https://www.bitcoinsv.design/guide/rule/6db3fdafda/>
- **DON'T** _(Costs trust)_ Put a savings total and a quick-pay action on the same screen. The total makes the payment feel smaller than it is.
  <https://www.bitcoinsv.design/guide/rule/11140daf0a/>
- **DO** _(Costs trust)_ Let the weight of a confirmation follow its consequence: whether it can be undone, how large the amount is against what the wallet holds, whether the recipient is new, and whether it grants something that keeps working after today.
  <https://www.bitcoinsv.design/guide/rule/ca4deb21a3/>
- **DON'T** _(Costs trust)_ Use one confirmation style for everything. People learn the shape of "confirm" within a week and stop reading what is inside it.
  <https://www.bitcoinsv.design/guide/rule/cf6fbcfa5c/>
- **DO** _(Costs trust)_ Give every failure on the send and connect flows a message that says whether money moved: "Nothing left your wallet" or "The payment went through".
  <https://www.bitcoinsv.design/guide/rule/9653a8c175/>
- **DO** _(Costs trust)_ Make a wallet's permission prompt readable in full by a screen reader: who is asking, what for, and for how long. A grant the person could not hear is not consent.
  <https://www.bitcoinsv.design/guide/rule/783df4309f/>
- **DO** _(Costs trust)_ Use Bitcoin SV or BSV on screen: "Send BSV", "Your BSV balance", "Bitcoin SV address". Use one of the two consistently within a screen.
  <https://www.bitcoinsv.design/guide/rule/4e724b402c/>
- **DON'T** _(Costs trust)_ Write "bitcoin" alone on a screen where somebody is about to move money. Used precisely it is an umbrella covering several chains, so it is the one word that cannot tell a user which network they are on. See Bitcoin.
  <https://www.bitcoinsv.design/guide/rule/ff7e7b18ab/>
- **DO** _(Costs trust)_ Say when a converted figure is an estimate, and roughly how fresh the rate is. A price that silently drifts is worse than one labelled approximate.
  <https://www.bitcoinsv.design/guide/rule/ab0796fbfa/>
- **DO** _(Costs trust)_ Keep one bitcoin unit per screen. Mixing "0.0001 BSV" and "10,000 sats" in one view asks the user to do arithmetic to compare two things you wrote.
  <https://www.bitcoinsv.design/guide/rule/19ba942704/>
- **DON'T** _(Costs trust)_ Abbreviate amounts in a financial context. "12.5k sats" saves four characters and introduces a rounding question.
  <https://www.bitcoinsv.design/guide/rule/e8d6661969/>
- **DON'T** _(Costs trust)_ Shorten a number with an ellipsis, ever. Reformat it or let it wrap.
  <https://www.bitcoinsv.design/guide/rule/28ab6b7ed7/>
- **DO** _(Costs trust)_ Say what happened in plain words: which network it went to, that the money is not lost from the chain but is out of reach from here, and what recovery would require.
  <https://www.bitcoinsv.design/guide/rule/6221629f1c/>
- **DON'T** _(Costs trust)_ Promise recovery you cannot deliver. If it needs the other party's cooperation, say that is what it needs.
  <https://www.bitcoinsv.design/guide/rule/d3b1447e05/>
- **DO** _(Costs trust)_ Treat the condition as public when you design it. A recovery path that only works because nobody knows it exists is not a security property.
  <https://www.bitcoinsv.design/guide/rule/6c60d5831a/>
- **DON'T** _(Costs trust)_ Build savings features into the everyday wallet. A wallet that is both ends up too slow for a coffee and too exposed for savings.
  <https://www.bitcoinsv.design/guide/rule/e9a7cf3858/>
- **DON'T** _(Costs trust)_ Show a pending shared payment as "Sending". Nothing has been sent, and the difference matters when somebody is waiting to be paid.
  <https://www.bitcoinsv.design/guide/rule/c1003435c4/>
- **DON'T** _(Costs trust)_ Offer downgrades without a hard confirmation naming what is lost. Going from three keys to one is a real reduction in protection and should feel like one.
  <https://www.bitcoinsv.design/guide/rule/4eaf5f7317/>
- **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)_ Let a partly signed payment be abandoned cleanly, without leaving funds stuck.
  <https://www.bitcoinsv.design/guide/rule/d1ea40e31c/>

## Every rule, by page

### Design principles

https://www.bitcoinsv.design/guide/getting-started/principles/

- **DO** Let the user hold their own keys, and make the path to doing so the default rather than an advanced option.
  <https://www.bitcoinsv.design/guide/rule/0e25385677/>
- **DO** Say plainly when something is custodial. A service holding keys on a user's behalf is a legitimate product; describing it as self-custody is not.
  <https://www.bitcoinsv.design/guide/rule/3726e3cf93/>
- **DON'T** _(Costs money)_ Build a product where the user's funds depend on your company continuing to exist. Every wallet should be recoverable without you. See Backups.
  <https://www.bitcoinsv.design/guide/rule/665b6af4ce/>
- **DO** Match the protection to the amount. A wallet holding coffee money and a wallet holding savings are different products, and pretending otherwise produces one that is wrong for both. See Wallet setups.
  <https://www.bitcoinsv.design/guide/rule/88ed0414ab/>
- **DO** _(Costs money)_ Make the irreversible step unmistakable. A payment cannot be recalled, so the review screen is the last line of defence.
  <https://www.bitcoinsv.design/guide/rule/b502171c81/>
- **DO** Ask for as little as the product needs. The independent risk assessment of the wallet interface (BRC-151) warns how much a wallet can be asked for; the answer is to need less of it. See Connecting a wallet.
  <https://www.bitcoinsv.design/guide/rule/0341c279d1/>
- **DON'T** Train people to tap approve. A prompt that appears constantly, is pre-ticked, or reappears until accepted teaches exactly the habit that gets someone robbed.
  <https://www.bitcoinsv.design/guide/rule/b405f2b096/>
- **DO** Write for someone who has never heard of a UTXO and never needs to. Internal vocabulary belongs in advanced views and documentation.
  <https://www.bitcoinsv.design/guide/rule/da45913bb9/>
- **DO** Meet WCAG 2.2 AA: contrast, touch targets, screen reader labels, and amounts that read aloud sensibly. See Accessibility.
  <https://www.bitcoinsv.design/guide/rule/bb3271f0dc/>
- **DON'T** _(Costs trust)_ Require an identity document, an email address or a phone number to hold money. Where a regulation requires it for a particular feature, gate that feature, not the wallet.
  <https://www.bitcoinsv.design/guide/rule/2a1abdf36f/>
- **DO** Support the standards rather than a bespoke integration. Design your connect flow around "your wallet", not a brand.
  <https://www.bitcoinsv.design/guide/rule/381f5ac09f/>
- **DO** _(Costs trust)_ Give every wallet an export the user holds themselves, and a send to a plain address that works without your servers. See Legacy compatibility.
  <https://www.bitcoinsv.design/guide/rule/0d8433711c/>
- **DON'T** Invent a proprietary format for something a BRC already covers. A format only your product reads is a lock-in whether or not you meant it as one.
  <https://www.bitcoinsv.design/guide/rule/f6ae896c38/>
- **DO** _(Costs money)_ Show the total a payment takes from the user, who it goes to, and that it cannot be undone, before they commit.
  <https://www.bitcoinsv.design/guide/rule/72c3ab54e4/>
- **DO** Say what your product can see and what it stores. A wallet that phones a service on every balance check should say which service and what it learns.
  <https://www.bitcoinsv.design/guide/rule/ca1aefc429/>
- **DO** _(Costs money)_ Name the limits. "This backup covers your keys but not your payment records" is the sentence that stops somebody losing money later.
  <https://www.bitcoinsv.design/guide/rule/02cda8cac2/>
- **DON'T** Describe a product as private, anonymous or instant without the qualifier that makes it true.
  <https://www.bitcoinsv.design/guide/rule/630f05adcd/>
- **DO** Keep outputs from unrelated counterparties apart when selecting what to spend. Spending them together is the main remaining on-chain leak. See Coin selection.
  <https://www.bitcoinsv.design/guide/rule/8e1c2b6c46/>
- **DO** _(Costs trust)_ Before revealing key linkage for a counterparty, tell the user it exposes every payment between them and that counterparty, past and future. See Wallet privacy.
  <https://www.bitcoinsv.design/guide/rule/6db3fdafda/>
- **DON'T** Collect what you do not need, and never attach a user's identity to routine payments for convenience.
  <https://www.bitcoinsv.design/guide/rule/532e6d6e67/>
- **DON'T** Write personal data on chain in the clear. There is no delete.
  <https://www.bitcoinsv.design/guide/rule/9cf7b80b0a/>
- **DO** Let users choose or self-host the services your wallet depends on, and support more than one. See Nodes and verification.
  <https://www.bitcoinsv.design/guide/rule/a310b591f1/>
- **DON'T** Weld a product to one provider's endpoint. That is your product's lifespan as well as theirs.
  <https://www.bitcoinsv.design/guide/rule/90f2e1b5df/>

### Visual language

https://www.bitcoinsv.design/guide/getting-started/visual-language/

- **DO** Use the BSV mark, the upright B on gold, wherever a BSV product needs the symbol as a mark.
  <https://www.bitcoinsv.design/guide/rule/fe64509ecb/>
- **DON'T** Use the orange disc or a tilted B to stand for BSV. Both say a different network to anyone who knows the difference.
  <https://www.bitcoinsv.design/guide/rule/349de561b7/>
- **DO** Use the Unicode character ₿, not the logo, when you need the bitcoin symbol in text. It scales, reflows and can be read by a screen reader. For amounts and labels, use sats and BSV; see Amounts and units.
  <https://www.bitcoinsv.design/guide/rule/3da32ce0ba/>
- **DON'T** Use the golden disc logo inside a sentence. It is a mark, not a letterform, and at text size it is a smudge.
  <https://www.bitcoinsv.design/guide/rule/2e80a24df0/>
- **DON'T** Put memes in a product. They read as a private joke to people inside and as unseriousness to people outside, and the second group is who you are trying to reach.
  <https://www.bitcoinsv.design/guide/rule/48418fbe04/>
- **DO** Draw the thing that is happening. A payment is a person handing something to a person.
  <https://www.bitcoinsv.design/guide/rule/6200916e40/>
- **DO** Pick a point on the scale deliberately and hold it across the product. Drifting between the two is what produces an app that is baffling to newcomers and patronising to everyone else.
  <https://www.bitcoinsv.design/guide/rule/d3b7b38cd3/>
- **DON'T** Use a lightning bolt to mean speed in a BSV product. Show the thing itself: a payment confirmed while the customer is still at the till.
  <https://www.bitcoinsv.design/guide/rule/8aabfb2d4b/>
- **DON'T** Put advocacy in a product. Say what yours does and let it be judged on that.
  <https://www.bitcoinsv.design/guide/rule/69599bcb85/>
- **DO** Reach for the gold metaphor on a savings surface and leave it off an everyday one. A payment app that looks like a vault tells people their coffee money is an investment.
  <https://www.bitcoinsv.design/guide/rule/4f51bc1620/>

### Spending, saving and delegating

https://www.bitcoinsv.design/guide/designing-products/spending-saving-delegating/

- **DO** Decide which state of mind each screen is for, and design that screen for it alone.
  <https://www.bitcoinsv.design/guide/rule/7f98a99062/>
- **DON'T** _(Costs trust)_ Put a savings total and a quick-pay action on the same screen. The total makes the payment feel smaller than it is.
  <https://www.bitcoinsv.design/guide/rule/11140daf0a/>
- **DO** Build each state of mind on its own wallet, so the separation holds even when the interface does not. A layout can be redesigned; a key the everyday wallet never had cannot leak from it.
  <https://www.bitcoinsv.design/guide/rule/ad2b23851e/>
- **DO** Make every move between states of mind a visible step the person takes, with its own confirmation.
  <https://www.bitcoinsv.design/guide/rule/10f19e8865/>
- **DON'T** _(Costs money)_ Let the everyday wallet draw from savings on its own, or let an agent raise its own budget. Both turn a bridge into a leak.
  <https://www.bitcoinsv.design/guide/rule/8d5c89ed47/>
- **DO** Pick the primary state of mind for the product, and say so. A payments app is for spending, with saving as an optional layer reached by a bridge. A savings product is for saving, with a quick top-up as its one shortcut. A product that will not choose ends up with the savings total next to the pay button.
  <https://www.bitcoinsv.design/guide/rule/e557c3aab8/>

### Getting to know your users

https://www.bitcoinsv.design/guide/designing-products/getting-to-know-your-users/

- **DO** Lead with the concrete benefit for the person in front of you. "Keep the 45p the card company takes on a £5 sale" beats any sentence containing the word sovereignty.
  <https://www.bitcoinsv.design/guide/rule/4d5e8b87d4/>
- **DO** Count the ideas a person has to hold to finish their first task, not just the steps. Each new idea is a place they can stop.
  <https://www.bitcoinsv.design/guide/rule/6633d7fd30/>
- **DON'T** Treat speed as comprehension. Removing friction removes the reason to stop; it does not answer "what did I just do?"
  <https://www.bitcoinsv.design/guide/rule/5d79ca507e/>
- **DO** _(Costs trust)_ Let the weight of a confirmation follow its consequence: whether it can be undone, how large the amount is against what the wallet holds, whether the recipient is new, and whether it grants something that keeps working after today.
  <https://www.bitcoinsv.design/guide/rule/ca4deb21a3/>
- **DON'T** _(Costs trust)_ Use one confirmation style for everything. People learn the shape of "confirm" within a week and stop reading what is inside it.
  <https://www.bitcoinsv.design/guide/rule/cf6fbcfa5c/>
- **DO** Decide which of the three you are for, and say so. A product aimed at all three serves none well.
  <https://www.bitcoinsv.design/guide/rule/6102c7a17c/>
- **DON'T** Assume somebody who has used another chain understands this one. They will look for a fee picker, wait for confirmations, and assume their recovery words work here. See Legacy compatibility.
  <https://www.bitcoinsv.design/guide/rule/dd776c8dbe/>
- **DO** Test recovery before you polish onboarding: confirm a new user can restore their wallet on a second device before refining the first-run screens.
  <https://www.bitcoinsv.design/guide/rule/c011785af6/>

### Common user flows

https://www.bitcoinsv.design/guide/designing-products/common-user-flows/

- **DON'T** Lead a store listing with self-custody or decentralisation. They are reasons to stay, not reasons to install.
  <https://www.bitcoinsv.design/guide/rule/5e4df29166/>
- **DO** Use the device's own biometric with a passcode fallback, and require authentication for payments above a threshold the user can see.
  <https://www.bitcoinsv.design/guide/rule/6f716b945f/>
- **DO** Make the wallet's own activity the place to find out whether something worked. See Activity.
  <https://www.bitcoinsv.design/guide/rule/40259c712c/>
- **DO** Offer a view-only mode for people who should see a balance but not spend it.
  <https://www.bitcoinsv.design/guide/rule/6d0c87d856/>
- **DO** _(Costs trust)_ Give every failure on the send and connect flows a message that says whether money moved: "Nothing left your wallet" or "The payment went through".
  <https://www.bitcoinsv.design/guide/rule/9653a8c175/>

### Usage life cycle

https://www.bitcoinsv.design/guide/designing-products/usage-life-cycle/

- **DON'T** Keep showing onboarding hints to somebody on their hundredth payment.
  <https://www.bitcoinsv.design/guide/rule/69e63ba024/>
- **DO** Teach each of the four at the moment it first applies: ownership when money first arrives, irreversibility on the first review screen, the backup when the balance is worth protecting, the network name wherever somebody pastes an address.
  <https://www.bitcoinsv.design/guide/rule/86f56f942f/>
- **DON'T** Teach what the product can take care of for them, such as fees or key schemes. Every concept taught before it is needed is a reason to stop.
  <https://www.bitcoinsv.design/guide/rule/1f6a29ac0d/>
- **DO** Make the first thing a new user does end with them holding real money: received from a person, or spent on something they wanted anyway.
  <https://www.bitcoinsv.design/guide/rule/2a864d4717/>
- **DON'T** Build a practice wallet or a simulated payment in place of a real first receive. It teaches the user that the real thing is somewhere else.
  <https://www.bitcoinsv.design/guide/rule/584baf8aaf/>
- **DO** Design for the person doing the introducing: a handle they can share, a payment request they can send, and a first payment that says who it came from. See Contacts.
  <https://www.bitcoinsv.design/guide/rule/86c37f9174/>
- **DO** Get a new user from opening the app to holding money in one sitting, without leaving the app except to ask somebody to pay them.
  <https://www.bitcoinsv.design/guide/rule/38199c11b4/>
- **DO** Give every setup step a way back. A mistake during setup should cost a tap, not the wallet.
  <https://www.bitcoinsv.design/guide/rule/1e89fe909b/>
- **DO** Ask the person, after a test, to explain to a friend what they just did. What they cannot explain did not land.
  <https://www.bitcoinsv.design/guide/rule/9f4988651b/>
- **DO** Measure where people stop, step by step, and work on the worst step first. A whole-funnel number tells you there is a problem and not where it is.
  <https://www.bitcoinsv.design/guide/rule/44e7d6568e/>
- **DO** Design the "frightening moment" explicitly. A payment that looks stuck, an unexpected balance, an app asking for something alarming. One clear explanation at that moment can keep somebody who would otherwise leave.
  <https://www.bitcoinsv.design/guide/rule/09a0b91ad8/>
- **DO** We suggest two causes to check first: being asked to choose a key scheme, and having nowhere to get any BSV. The first is yours to fix. See First use.
  <https://www.bitcoinsv.design/guide/rule/daa04676a4/>

### Accessibility

https://www.bitcoinsv.design/guide/designing-products/accessibility/

- **DON'T** Ship a control labelled "button". A QR code built as an unlabelled image is not selectable at all, so it does not exist for a screen reader user.
  <https://www.bitcoinsv.design/guide/rule/975540d1d7/>
- **DO** Name the thing and its effect: "QR code, double tap to copy the payment handle".
  <https://www.bitcoinsv.design/guide/rule/c4b54d03e8/>
- **DO** _(Costs trust)_ Make a wallet's permission prompt readable in full by a screen reader: who is asking, what for, and for how long. A grant the person could not hear is not consent.
  <https://www.bitcoinsv.design/guide/rule/783df4309f/>
- **DO** Put the recipient before the amount in the reading order of a review screen. It is the field most worth hearing first.
  <https://www.bitcoinsv.design/guide/rule/b61d8d3e8a/>
- **DO** Give every scan a typed or pasted equivalent. A user who cannot aim a camera still needs to pay.
  <https://www.bitcoinsv.design/guide/rule/e62777c1c9/>
- **DO** Pair colour with a word or a symbol, always. Sent and received, plus and minus, not just red and green.
  <https://www.bitcoinsv.design/guide/rule/dd06a6092e/>
- **DON'T** Put a countdown on a confirmation. Nothing here expires, so a timer is a difficulty you added. If a rate quote goes stale, refresh it rather than timing the person out.
  <https://www.bitcoinsv.design/guide/rule/58d003b536/>
- **DO** Make sure an amount reads aloud correctly. "12,500 sats" should be spoken as a number and a unit, which means it has to be text with a real unit beside it.
  <https://www.bitcoinsv.design/guide/rule/8d7230c7d8/>
- **DO** Use fixed-width digits (tabular-nums), so a changing balance does not shift the layout under a magnified viewport.
  <https://www.bitcoinsv.design/guide/rule/c4dae24589/>
- **DO** Offer at least one route that does not need handwriting: an encrypted file the user stores themselves, split shares held by people they trust, or a signing device.
  <https://www.bitcoinsv.design/guide/rule/e6ffe7da39/>
- **DO** Let the words be read aloud in private, and let the confirmation step be completed with a screen reader. A test that only works by sight makes recovery impossible later.
  <https://www.bitcoinsv.design/guide/rule/0ceff10f13/>
- **DO** Write at a reading age of about twelve. Short sentences, common words, one idea each.
  <https://www.bitcoinsv.design/guide/rule/e93cc9b805/>
- **DO** Say what happened and what it means for the money. "The payment did not go through. Nothing left your wallet." beats an error code every time.
  <https://www.bitcoinsv.design/guide/rule/89b13e7a98/>
- **DO** Run the send and recovery flows with the screen reader on and the screen off. It takes an afternoon and finds problems an automated audit misses.
  <https://www.bitcoinsv.design/guide/rule/2fb80808d8/>
- **DO** Include people with disabilities in research, paid, rather than simulating them.
  <https://www.bitcoinsv.design/guide/rule/a4d68925d0/>

### Amounts and units

https://www.bitcoinsv.design/guide/patterns/amounts-and-units/

- **DO** Default to satoshis, not BSV, for the bitcoin figure. Everyday amounts are hundreds or thousands of satoshis, and the decimal form is unreadable at that scale.
  <https://www.bitcoinsv.design/guide/rule/7109c0692f/>
- **DO** Write "sats" or "satoshis" in words, and group digits in threes: 12,500 sats.
  <https://www.bitcoinsv.design/guide/rule/cb0ea7723f/>
- **DON'T** _(Costs money)_ Show long decimal BSV amounts in a consumer interface. "0.00012500 BSV" asks the reader to count zeros, and they will get it wrong.
  <https://www.bitcoinsv.design/guide/rule/5fe9c5b068/>
- **DON'T** Adopt a satoshi glyph. None renders reliably, none is in common fonts, and your users have not seen any of them.
  <https://www.bitcoinsv.design/guide/rule/0259e17026/>
- **DO** _(Costs trust)_ Use Bitcoin SV or BSV on screen: "Send BSV", "Your BSV balance", "Bitcoin SV address". Use one of the two consistently within a screen.
  <https://www.bitcoinsv.design/guide/rule/4e724b402c/>
- **DO** Prefer "Bitcoin SV" where there is room and the reader may be new to it, "BSV" where space is tight or the term repeats in a list.
  <https://www.bitcoinsv.design/guide/rule/3c14de2099/>
- **DON'T** _(Costs trust)_ Write "bitcoin" alone on a screen where somebody is about to move money. Used precisely it is an umbrella covering several chains, so it is the one word that cannot tell a user which network they are on. See Bitcoin.
  <https://www.bitcoinsv.design/guide/rule/ff7e7b18ab/>
- **DO** Lead with local currency for anything a person chooses to buy, with the satoshi amount beside it: "£12.00 (24,000 sats)".
  <https://www.bitcoinsv.design/guide/rule/3efb93cfc2/>
- **DO** Lead with satoshis for figures software decides or enforces, such as allowance limits, what is left of an allowance and agent budgets, with local currency beside them.
  <https://www.bitcoinsv.design/guide/rule/4db298dc64/>
- **DO** Let the two be swapped in one tap, and remember the choice.
  <https://www.bitcoinsv.design/guide/rule/ee876b1dbf/>
- **DO** _(Costs trust)_ Say when a converted figure is an estimate, and roughly how fresh the rate is. A price that silently drifts is worse than one labelled approximate.
  <https://www.bitcoinsv.design/guide/rule/ab0796fbfa/>
- **DO** Use tabular figures (tabular-nums in CSS) everywhere a figure appears, so digits line up in a column and a changing balance does not shift the layout.
  <https://www.bitcoinsv.design/guide/rule/052b376429/>
- **DO** Format for the reader's locale. 1,200 and 1.200 and 1 200 are the same number to three different people and three different numbers to one of them.
  <https://www.bitcoinsv.design/guide/rule/a50eb4bb1f/>
- **DO** _(Costs trust)_ Keep one bitcoin unit per screen. Mixing "0.0001 BSV" and "10,000 sats" in one view asks the user to do arithmetic to compare two things you wrote.
  <https://www.bitcoinsv.design/guide/rule/19ba942704/>
- **DON'T** _(Costs trust)_ Abbreviate amounts in a financial context. "12.5k sats" saves four characters and introduces a rounding question.
  <https://www.bitcoinsv.design/guide/rule/e8d6661969/>
- **DON'T** _(Costs trust)_ Shorten a number with an ellipsis, ever. Reformat it or let it wrap.
  <https://www.bitcoinsv.design/guide/rule/28ab6b7ed7/>
- **DO** Leave the fee off the review screen and put it in the transaction details. If it is shown, show it in local currency: "Fee: less than 1p".
  <https://www.bitcoinsv.design/guide/rule/848ac6bb53/>
- **DO** Show the individual amount where it happens and the aggregate where the user is deciding something. "About 1p (20 sats)" on the article, "940 sats (about 47p) today" in the allowance summary.
  <https://www.bitcoinsv.design/guide/rule/fb1efa5b2d/>
- **DO** Round aggregates to a sensible precision in local currency. "About 24p today" is more useful than "£0.2384".
  <https://www.bitcoinsv.design/guide/rule/62d7f58727/>
- **DO** Make sure an amount reads correctly aloud. A screen reader should say "twelve thousand five hundred satoshis", which means the unit needs to be text rather than an image or an unlabelled glyph.
  <https://www.bitcoinsv.design/guide/rule/3873d5026d/>
- **DO** Never rely on colour alone to show direction. Pair the colour with a sign or a word.
  <https://www.bitcoinsv.design/guide/rule/8d1e3f0487/>

### Wrong-network payments

https://www.bitcoinsv.design/guide/patterns/wrong-network-payments/

- **DO** _(Costs money)_ Make the handle the default and the address the fallback. Every payment that uses a handle is a payment that cannot go to the wrong network.
  <https://www.bitcoinsv.design/guide/rule/98fc09f14d/>
- **DO** _(Costs money)_ Put the network name next to the address field, always, not only on error. "BSV address" is three words and it is the whole defence.
  <https://www.bitcoinsv.design/guide/rule/fea05e6af6/>
- **DO** _(Costs money)_ Warn on every pasted address rather than trying to detect a bad one. You cannot detect it, and a warning that only fires sometimes teaches people it means something specific.
  <https://www.bitcoinsv.design/guide/rule/7b6afde89f/>
- **DON'T** _(Costs money)_ Use "bitcoin address" as the field label. That is the word that cannot distinguish the networks, on the screen where the distinction is the whole point.
  <https://www.bitcoinsv.design/guide/rule/e92e4f5284/>
- **DO** _(Costs money)_ Put the network on the confirmation, beside the recipient, in the same weight as the amount.
  <https://www.bitcoinsv.design/guide/rule/e7486b509a/>
- **DO** _(Costs money)_ Say plainly what cannot be undone, before the button: "Sent to the wrong network, this usually cannot be recovered."
  <https://www.bitcoinsv.design/guide/rule/94b4f84162/>
- **DO** _(Costs money)_ Offer a test payment for a first-time address above a threshold you choose, and ask the user to check with the recipient that it arrived. It costs a fraction of a penny and it is the only defence that proves the address is right.
  <https://www.bitcoinsv.design/guide/rule/ea9599e1da/>
- **DO** _(Costs trust)_ Say what happened in plain words: which network it went to, that the money is not lost from the chain but is out of reach from here, and what recovery would require.
  <https://www.bitcoinsv.design/guide/rule/6221629f1c/>
- **DO** Give them the transaction reference and the output, so somebody technical can help.
  <https://www.bitcoinsv.design/guide/rule/dc1f50e8b3/>
- **DON'T** Say "transaction failed". It did not fail. It succeeded somewhere else, and telling somebody it failed sends them looking for a refund that is not coming.
  <https://www.bitcoinsv.design/guide/rule/c1d8c3eddf/>
- **DON'T** _(Costs trust)_ Promise recovery you cannot deliver. If it needs the other party's cooperation, say that is what it needs.
  <https://www.bitcoinsv.design/guide/rule/d3b1447e05/>
- **DO** _(Costs money)_ Make the network selection impossible to leave at a default, and restate the chosen network on the confirmation.
  <https://www.bitcoinsv.design/guide/rule/278b3b2795/>
- **DO** Treat a first withdrawal to a new address as a different flow from a repeat one.
  <https://www.bitcoinsv.design/guide/rule/6e0e8f799c/>

### Spending conditions

https://www.bitcoinsv.design/guide/patterns/spending-conditions/

- **DO** _(Costs money)_ Build time conditions with nLockTime and nSequence, and test that an early spend fails. A test that only proves the late spend succeeds proves nothing.
  <https://www.bitcoinsv.design/guide/rule/b62aa2ae7d/>
- **DO** _(Costs money)_ State where a pre-signed future transaction lives, who holds it, and what happens if the inputs are spent before its date. That is a backup requirement, not an implementation detail.
  <https://www.bitcoinsv.design/guide/rule/31f330a837/>
- **DO** State the minimum transaction version any script you document requires. A script that works in one version and silently fails in another is the worst kind of documentation error.
  <https://www.bitcoinsv.design/guide/rule/cef6a5fb47/>
- **DON'T** Assume every wallet or service in the chain of custody emits the version your script needs. Check before you depend on it.
  <https://www.bitcoinsv.design/guide/rule/165a3631ce/>
- **DO** _(Costs trust)_ Treat the condition as public when you design it. A recovery path that only works because nobody knows it exists is not a security property.
  <https://www.bitcoinsv.design/guide/rule/6c60d5831a/>
- **DO** Describe a condition by its consequence: "Locked until 1 March 2027. Nobody can move this, including you."
  <https://www.bitcoinsv.design/guide/rule/c25799d12f/>
- **DO** Show the whole schedule on one screen, including the rules that have not taken effect yet.
  <https://www.bitcoinsv.design/guide/rule/5e1c50a8ad/>
- **DO** _(Costs money)_ Warn before a condition becomes unmeetable, not after. "One more lost key and this is unrecoverable" is useful; the same message afterwards is not.
  <https://www.bitcoinsv.design/guide/rule/039e20ae48/>
- **DO** Let an unfinished setup be saved and resumed. These arrangements need several devices or several people and rarely come together in one sitting.
  <https://www.bitcoinsv.design/guide/rule/c52aed0ae0/>
- **DON'T** _(Costs money)_ Let a user create a condition they have not demonstrably tested. Require a small-value rehearsal of the unlock path before real money goes in.
  <https://www.bitcoinsv.design/guide/rule/b13bd63634/>
- **DON'T** Offer a condition builder to ordinary users. Offer two or three worked arrangements with names and plain descriptions, and let the complexity live in the templates rather than in the user's head.
  <https://www.bitcoinsv.design/guide/rule/14e24f95bf/>
- **DO** _(Costs money)_ Back up the wallet configuration alongside the key material, and include it in the recovery drill. A condition nobody can reconstruct is money nobody can move. See Backups.
  <https://www.bitcoinsv.design/guide/rule/85a7914dd7/>

### Savings wallet

https://www.bitcoinsv.design/guide/savings-wallet/

- **DO** Size it by what the everyday wallet should not hold. "How much would you be uncomfortable keeping on your phone?" is the question that produces a sensible split.
  <https://www.bitcoinsv.design/guide/rule/1eb2669b31/>
- **DON'T** _(Costs trust)_ Build savings features into the everyday wallet. A wallet that is both ends up too slow for a coffee and too exposed for savings.
  <https://www.bitcoinsv.design/guide/rule/e9a7cf3858/>
- **DO** Walk setup one key at a time, saying for each where it is going and what losing it would mean.
  <https://www.bitcoinsv.design/guide/rule/c9c8e70a29/>
- **DO** Let setup be saved and resumed. Gathering devices rarely happens in one sitting, and a setup that cannot be resumed tends to be abandoned.
  <https://www.bitcoinsv.design/guide/rule/3a979d7e2f/>
- **DON'T** _(Costs money)_ Finish setup without the user having restored from it once, with a small amount. An untested multi-key wallet has more ways to fail than a single-key one.
  <https://www.bitcoinsv.design/guide/rule/18966d7037/>
- **DO** Design on the assumption that the rule is readable. A recovery path that works only because nobody knows it exists is not a security property. See Multi-key.
  <https://www.bitcoinsv.design/guide/rule/434b4c253c/>
- **DO** Say which path a payment is taking before the user starts, not after. "This is above your limit, so it needs your signing device too."
  <https://www.bitcoinsv.design/guide/rule/90ba3c11ba/>
- **DO** Show progress through a multi-key signature as collected and outstanding, naming the device still needed.
  <https://www.bitcoinsv.design/guide/rule/0b19f18430/>
- **DON'T** _(Costs money)_ Let the limit be raised with a single key. Raising the threshold for spending is itself a high-value action and needs the quorum.
  <https://www.bitcoinsv.design/guide/rule/3e6a8e94db/>
- **DO** Make the transfer a named action with the destination prefilled, so it is two taps from the savings home screen.
  <https://www.bitcoinsv.design/guide/rule/8d0a0bb957/>
- **DON'T** _(Costs money)_ Let the everyday wallet pull from savings on its own. A compromised app would drain both, which defeats the whole arrangement. See Multiple wallets.
  <https://www.bitcoinsv.design/guide/rule/3b0fcb147c/>
- **DO** _(Costs money)_ Move the funds to a new arrangement when a key is lost, and say why: the old key still works on every output it is part of until the money moves.
  <https://www.bitcoinsv.design/guide/rule/c85e78c073/>
- **DO** _(Costs money)_ Back up the wallet configuration alongside the keys, and include it in the recovery drill. A quorum of signers with no record of the arrangement cannot spend. See Backups.
  <https://www.bitcoinsv.design/guide/rule/2d50f1ba9d/>
- **DO** Prompt an occasional recovery check. A wallet opened twice a year is one whose backup has had a long time to go stale.
  <https://www.bitcoinsv.design/guide/rule/3353cfee07/>

### Time-based recovery

https://www.bitcoinsv.design/guide/savings-wallet/time-based-recovery/

- **DO** Explain the arrangement before any key is created, in terms of what happens rather than what it is made of: "You can always spend this. If you don't use it for a year, the people you choose can."
  <https://www.bitcoinsv.design/guide/rule/8dfae2ba23/>
- **DO** Name each key by where it is, not by its number. "This phone", "Signing device", "Anna's phone" is what the owner will need to recognise in two years.
  <https://www.bitcoinsv.design/guide/rule/127a0fb82c/>
- **DO** Turn reminders on by default and say why: the path opening is the failure case, and a reminder is what prevents it.
  <https://www.bitcoinsv.design/guide/rule/af11a6d2c2/>
- **DON'T** _(Costs money)_ Offer a period shorter than a few months. A path that opens while somebody is on a long trip is a theft risk dressed as a feature.
  <https://www.bitcoinsv.design/guide/rule/a67beef669/>
- **DO** Tell them what they have been given, in a message they can understand without the app: "Maya has named you on her savings wallet. You can't spend anything. If she doesn't use it for a year, you and one other person can move it on her behalf."
  <https://www.bitcoinsv.design/guide/rule/c0b4b90826/>
- **DO** _(Costs money)_ Make sure they keep the pre-signed transaction, since without it the path is theoretical. The wallet should hold it and the backup should include it.
  <https://www.bitcoinsv.design/guide/rule/6b029ec268/>
- **DON'T** _(Costs money)_ Add somebody to a recovery path without telling them. The arrangement only works if they still have their key when it matters.
  <https://www.bitcoinsv.design/guide/rule/83ba29796b/>
- **DO** Show the date plainly on the home screen, as a date rather than a countdown. "Recovery opens 14 March 2027" is checkable; "in 237 days" is anxiety.
  <https://www.bitcoinsv.design/guide/rule/4c280b1a8a/>
- **DO** Remind well in advance, more than once, and through a channel that is not the app. Somebody who has stopped opening the app is exactly the person who needs reminding.
  <https://www.bitcoinsv.design/guide/rule/f5dbcff12d/>
- **DO** Notify the recovery people when the path is refreshed, so they know the arrangement is alive.
  <https://www.bitcoinsv.design/guide/rule/8040ebc146/>
- **DO** _(Costs money)_ Send the new recovery transaction to the recovery people as part of every refresh, and show on the home screen anyone who has not received it.
  <https://www.bitcoinsv.design/guide/rule/80b2f24149/>
- **DO** _(Costs money)_ Treat it as a change with consequences: move the money to new outputs first, so the removed person's copy stops working, then say who was removed and send the new transaction to the people who remain.
  <https://www.bitcoinsv.design/guide/rule/03a855b0c8/>
- **DON'T** _(Costs money)_ Let somebody be removed from a recovery path without the wallet confirming the replacement transaction actually reached everybody who needs it.
  <https://www.bitcoinsv.design/guide/rule/9f8f455aa6/>
- **DO** Fold the path rebuild into device replacement automatically, and show it as a step so the owner knows it happened.
  <https://www.bitcoinsv.design/guide/rule/eda637f60b/>
- **DO** _(Costs money)_ The pre-signed transaction is the part other backup designs have no slot for, and the part that makes this arrangement real. Back it up with the configuration, re-export it every time it is rebuilt, and include it in the recovery drill. See Backups.
  <https://www.bitcoinsv.design/guide/rule/3e4771352c/>

### Inheritance wallet

https://www.bitcoinsv.design/guide/inheritance-wallet/

- **DON'T** Offer this to somebody setting up their first wallet. It is the most complex arrangement in this guide and the least forgiving of an abandoned setup. See Upgradeable wallet.
  <https://www.bitcoinsv.design/guide/rule/9f7260e9a2/>
- **DO** Read Succession before designing any of the others. Every decision in setup should be judged by whether it makes that flow survivable for somebody grieving, unfamiliar with the app, and possibly using it for the first time.
  <https://www.bitcoinsv.design/guide/rule/e937b6b6b3/>

### Overview

https://www.bitcoinsv.design/guide/inheritance-wallet/overview/

- **DO** Choose the threshold by asking which pairs of people should be able to act together, not by picking a number. "Any two of these four" is a sentence the owner can check against their own family.
  <https://www.bitcoinsv.design/guide/rule/6584beffcd/>
- **DON'T** Build an arrangement where the owner alone cannot spend. It turns everyday access into a committee and the wallet stops being used, which is how it ends up abandoned and unmaintained.
  <https://www.bitcoinsv.design/guide/rule/b97dc18fa1/>
- **DO** Show this table in the app, filled in with the real names, and let anybody holding a key see it. A participant who does not know what they hold cannot act when it matters.
  <https://www.bitcoinsv.design/guide/rule/a6015f5fc0/>
- **DO** Judge every setup decision by what it costs to maintain. A four-key arrangement with a six-month period is more secure on paper and will be dead in two years, because nobody keeps up with it.
  <https://www.bitcoinsv.design/guide/rule/947e9c516d/>

### Wallet creation

https://www.bitcoinsv.design/guide/inheritance-wallet/wallet-creation/

- **DO** Say how long it takes and what is needed before starting. Somebody who begins without their signing device and without telling their partner will not finish.
  <https://www.bitcoinsv.design/guide/rule/86badbf6b4/>
- **DON'T** Explain multi-key, thresholds or timelocks here. None of it helps somebody decide whether to start.
  <https://www.bitcoinsv.design/guide/rule/dd14279893/>
- **DO** Offer two or three named arrangements rather than a builder. "You and your partner, with your daughter inheriting" is a choice somebody can make; "2-of-4 with a 365-day recovery path" is not.
  <https://www.bitcoinsv.design/guide/rule/49591262c9/>
- **DO** Name each key by where it lives rather than by number. In two years "Signing device in the study" is recognisable and "Key 2" is not.
  <https://www.bitcoinsv.design/guide/rule/65ad819d33/>
- **DO** Send a request the other person can act on without explanation from the owner. It should say who is asking, what it is for, and that they are not being asked for money.
  <https://www.bitcoinsv.design/guide/rule/49cf57cfa8/>
- **DO** Show the owner who has responded and who has not, and let them nudge.
  <https://www.bitcoinsv.design/guide/rule/70fe8fef57/>
- **DON'T** Require everybody to be present at once. Coordinating three people in one sitting is the step most likely to stall.
  <https://www.bitcoinsv.design/guide/rule/f3bf47af0a/>
- **DO** Show the schedule as dates with names against them: "From 14 March 2027, Christina can move this on her own."
  <https://www.bitcoinsv.design/guide/rule/dbdd4752ee/>
- **DO** Default to a year. Shorter means more maintenance than anybody sustains; much longer means the beneficiaries wait at the worst time.
  <https://www.bitcoinsv.design/guide/rule/59b635f9b8/>
- **DON'T** _(Costs money)_ Let the wallet hold more than the rehearsal amount until the recovery path is built and every beneficiary has a copy. When the real money arrives, rebuild the path against it: money received after signing is not covered until the next refresh.
  <https://www.bitcoinsv.design/guide/rule/91b6642acd/>
- **DO** End with the table from Overview, filled in with real names: who can spend alone, who can spend together, and who can act after the period. It is the last chance to catch an arrangement that does not match what the owner meant.
  <https://www.bitcoinsv.design/guide/rule/63700f9001/>
- **DO** _(Costs money)_ Require a rehearsal with a small amount before the wallet holds anything real: fund it, spend from it with two keys, then build the recovery path and confirm every beneficiary has it.
  <https://www.bitcoinsv.design/guide/rule/4015b36345/>
- **DO** Save after every step and make the unfinished wallet visible on the home screen with what is still needed. "Waiting for Christina's key" is a state the owner can act on a week later.
  <https://www.bitcoinsv.design/guide/rule/cf1790959c/>
- **DO** Remind, gently, about an unfinished setup. It is the one nag worth having.
  <https://www.bitcoinsv.design/guide/rule/4799ec7b37/>

### Onboarding cosigners

https://www.bitcoinsv.design/guide/inheritance-wallet/onboarding-cosigners/

- **DO** Track per person whether they have received it, imported it, and confirmed. Three states, because "sent" is not "working".
  <https://www.bitcoinsv.design/guide/rule/718af05cf1/>
- **DO** Say what they can do, what they cannot, and when that changes, in a sentence each: "You can't move this money on your own. You and Christina together can. If Bob doesn't use it for a year, Christina can on her own."
  <https://www.bitcoinsv.design/guide/rule/c1190fa45f/>
- **DO** Name who asked, and let them decline. Being added to somebody's inheritance arrangement is a real obligation.
  <https://www.bitcoinsv.design/guide/rule/661f77a4bb/>
- **DON'T** Present it as "a wallet has been shared with you". They are not getting money, and somebody who thinks they are will be confused twice: now, and much later.
  <https://www.bitcoinsv.design/guide/rule/74f0b2d72e/>
- **DO** Have the cosigner sign something harmless as part of setup, so both sides know the key works before it is relied on. A key that has never signed is an assumption.
  <https://www.bitcoinsv.design/guide/rule/26147cf99f/>
- **DO** Give each cosigner an export they hold themselves, containing the configuration, their key's recovery material and, where they are on the succession path, the current pre-signed transaction.
  <https://www.bitcoinsv.design/guide/rule/954045775f/>
- **DO** _(Costs money)_ Re-send the pre-signed transaction every time it is rebuilt, which is after every payment in or out and every refresh. An out-of-date copy either spends money that has already moved, and fails, or misses money the wallet received since.
  <https://www.bitcoinsv.design/guide/rule/62829388dc/>
- **DO** Send an occasional note to each cosigner confirming the arrangement is alive and their key still works. Once or twice a year is enough, and it doubles as a check that their contact details are current.
  <https://www.bitcoinsv.design/guide/rule/4d58d75e28/>
- **DO** Let a cosigner see the arrangement at any time without the owner's involvement.
  <https://www.bitcoinsv.design/guide/rule/da1e07a7b1/>

### Backup

https://www.bitcoinsv.design/guide/inheritance-wallet/backup/

- **DO** _(Costs money)_ Rebuild and redistribute it automatically after every payment in or out, and show on the home screen when a beneficiary is holding an out-of-date copy.
  <https://www.bitcoinsv.design/guide/rule/308a98d154/>
- **DON'T** _(Costs money)_ Treat it as a one-time export during setup. It will be wrong after the first payment.
  <https://www.bitcoinsv.design/guide/rule/ad99aa9cc4/>
- **DO** Write it for somebody who will read it once, under stress, possibly years from now. No jargon, no screenshots of an app version that will not exist.
  <https://www.bitcoinsv.design/guide/rule/5b440985bc/>
- **DO** Regenerate it whenever the arrangement changes, and date it clearly so an old copy is recognisable as old.
  <https://www.bitcoinsv.design/guide/rule/4415bb8e25/>
- **DON'T** _(Costs money)_ Put key material in it. It is a map, not a key. It should be safe to leave with a solicitor.
  <https://www.bitcoinsv.design/guide/rule/bdfbad1985/>
- **DO** Walk the owner through it as places rather than categories: "Your words at home. A copy of the document with your solicitor. Christina has her own key and a copy of the document."
  <https://www.bitcoinsv.design/guide/rule/700c9ab489/>
- **DO** _(Costs money)_ Check the recovery path assumes the owner's devices are gone. Every step that needs something only on their phone fails at exactly the moment it is needed.
  <https://www.bitcoinsv.design/guide/rule/0d296f6e0d/>
- **DON'T** _(Costs money)_ Put the configuration and a quorum of key material in the same place. Together they are the money.
  <https://www.bitcoinsv.design/guide/rule/becbb8448d/>
- **DO** _(Costs money)_ Run a full drill before the wallet holds anything real: fund it, export everything, delete the owner's installation, and have a beneficiary recover using only the document and their own key.
  <https://www.bitcoinsv.design/guide/rule/5c4c016184/>
- **DO** Repeat the drill when anything changes. An arrangement that worked at setup and has had two key replacements since has not been tested.
  <https://www.bitcoinsv.design/guide/rule/cd94a0ebce/>
- **DO** If the drill cannot be completed by somebody who was not involved in setup, the arrangement has not achieved what it exists for, however correct the cryptography is.
  <https://www.bitcoinsv.design/guide/rule/e3ad61b8e4/>

### Making changes

https://www.bitcoinsv.design/guide/inheritance-wallet/making-changes/

- **DO** Distinguish a planned replacement, where the old key still exists, from a lost one. They need different confirmations and the second is a security event.
  <https://www.bitcoinsv.design/guide/rule/ef2ebd3719/>
- **DO** Require the remaining quorum to authorise the replacement. One person should not be able to swap another out.
  <https://www.bitcoinsv.design/guide/rule/2cd6553e52/>
- **DO** End the flow by confirming three things happened: the new configuration reached everybody, the succession transaction was rebuilt, and the recovery document was regenerated. Each is a separate failure if it is skipped.
  <https://www.bitcoinsv.design/guide/rule/f6c304ca27/>
- **DO** Show progress as named people rather than a count: "Signed by Bob. Waiting for Alice or Christina."
  <https://www.bitcoinsv.design/guide/rule/b62333bbd8/>
- **DO** Let the second signer see what they are approving, including the recipient and the amount, on their own device. That screen is the only independent check in the flow.
  <https://www.bitcoinsv.design/guide/rule/731b8ec8fa/>
- **DO** Let a pending payment be abandoned cleanly, and say so if it leaves outputs reserved.
  <https://www.bitcoinsv.design/guide/rule/056a052e8e/>
- **DO** Present it as a migration: a new arrangement is created and the balance moves to it, in a payment the current quorum approves.
  <https://www.bitcoinsv.design/guide/rule/5f64859ebc/>
- **DO** Keep the old wallet's history after the move. The arrangement changed; the record of what was spent did not.
  <https://www.bitcoinsv.design/guide/rule/556d53748b/>
- **DON'T** Imply somebody can be removed without the funds moving. They keep their key, and a key that still works on the old outputs is a key that still works.
  <https://www.bitcoinsv.design/guide/rule/28b2595019/>
- **DO** _(Costs money)_ Make sure every beneficiary gets the new transaction, and tell them the old one stopped working when the money moved. Two valid-looking copies with different dates is the worst state for somebody using this in an emergency.
  <https://www.bitcoinsv.design/guide/rule/aa8881fd26/>
- **DO** Let an emptied arrangement be archived rather than deleted, keeping its history and its recovery document.
  <https://www.bitcoinsv.design/guide/rule/88e5761f00/>
- **DON'T** Allow an arrangement with a balance to be deleted. Offer to move the funds first and say where they would go.
  <https://www.bitcoinsv.design/guide/rule/1cf58b2e93/>

### Succession

https://www.bitcoinsv.design/guide/inheritance-wallet/succession/

- **DO** Say which route is available, and when the other becomes available, on the first screen a beneficiary sees. "You and Alice can do this together now. On your own, from 14 March 2027."
  <https://www.bitcoinsv.design/guide/rule/1b23be3745/>
- **DO** Accept the configuration from a printed code as readily as from a file. Paper is the medium most likely to survive a decade and an estate.
  <https://www.bitcoinsv.design/guide/rule/0034b395dd/>
- **DO** Show the balance and what can be done with it immediately after import, before asking for anything else. The first question is "is it still there".
  <https://www.bitcoinsv.design/guide/rule/3e14b21645/>
- **DO** Offer "move everything to my own wallet" as the default action, not a generic send screen. It is what more or less everybody is here to do.
  <https://www.bitcoinsv.design/guide/rule/498b3c927e/>
- **DO** Let it be done in parts. Somebody may want to move a little first to be sure it works, and that instinct should be supported rather than treated as an error.
  <https://www.bitcoinsv.design/guide/rule/9b96b732d4/>
- **DO** Make sharing the part-signed transaction work over whatever people already use: a message, email, a code on a screen. Do not require both parties to be in the same place, or to install anything beyond the wallet that holds their key.
  <https://www.bitcoinsv.design/guide/rule/a1157ca044/>
- **DO** Name the people, not the keys. "Waiting for David" is something a grieving person can act on.
  <https://www.bitcoinsv.design/guide/rule/582c8164b0/>
- **DO** Show the lock date plainly and whether it has passed. "This becomes valid on 14 March 2027" and, after that, "This can be sent now."
  <https://www.bitcoinsv.design/guide/rule/bf51ef88f8/>
- **DO** Check the inputs are still unspent before offering it, and say clearly if they are not: "This route is out of date because the wallet was used after it was prepared. Use the two-signature route instead." That is the single most likely failure and it must not present as a cryptic error.
  <https://www.bitcoinsv.design/guide/rule/6a8e1fbdcc/>
- **DON'T** Let a beneficiary broadcast a transaction whose inputs are gone and watch it fail. Check first and explain.
  <https://www.bitcoinsv.design/guide/rule/2512d95f85/>
- **DO** Offer to archive the arrangement once it is empty, keeping its history and its document. There may be an estate to account to.
  <https://www.bitcoinsv.design/guide/rule/b74ba2104e/>
- **DO** Tell the other participants it was used, and when. Somebody holding a key should learn that the arrangement has been executed from the app rather than from a relative.
  <https://www.bitcoinsv.design/guide/rule/c0ba8d53c9/>
- **DO** Design this flow first and work backwards. A setup flow that produces an elegant arrangement nobody can execute has failed at the only thing it was for.
  <https://www.bitcoinsv.design/guide/rule/aceacfe186/>

### Multiple wallets

https://www.bitcoinsv.design/guide/wallet-patterns/multiple-wallets/

- **DO** Give a savings wallet its own keys and its own recovery material. See Multi-key.
  <https://www.bitcoinsv.design/guide/rule/cbe05d9c75/>
- **DO** Offer two or three named arrangements rather than a wallet builder. "Everyday and savings" is a choice somebody can make; "configure a key scheme" is not.
  <https://www.bitcoinsv.design/guide/rule/462750da01/>
- **DO** Recommend a scheme from those answers and explain it in one line. "Two of three keys, because you said this is most of your savings and you want to be able to lose a phone."
  <https://www.bitcoinsv.design/guide/rule/63d0a910c5/>
- **DO** _(Costs money)_ Make the new wallet's backup part of its creation, not a later prompt. A second wallet with no backup is a second way to lose money.
  <https://www.bitcoinsv.design/guide/rule/180fdb66ea/>
- **DO** Show a combined total and the per-wallet breakdown together. People want to know what they have and where it is, in one glance.
  <https://www.bitcoinsv.design/guide/rule/e363ce01db/>
- **DO** Let activity be filtered to one wallet or seen across all of them, and always label which wallet an entry belongs to.
  <https://www.bitcoinsv.design/guide/rule/2fbf992f8c/>
- **DON'T** Make switching wallets a mode the user can forget they are in. A wallet-coloured header and the wallet's name on the send screen are cheap and prevent the worst mistake in this whole design.
  <https://www.bitcoinsv.design/guide/rule/f7b8642441/>
- **DO** Default to the everyday wallet for every payment, and make choosing another a deliberate step.
  <https://www.bitcoinsv.design/guide/rule/fe82b7103a/>
- **DO** Say which wallet is paying on the review screen, in words, not only as a colour.
  <https://www.bitcoinsv.design/guide/rule/5f911d9760/>
- **DO** Show, per wallet, which apps are connected to it. See Security.
  <https://www.bitcoinsv.design/guide/rule/6a17dfe0f2/>
- **DON'T** _(Costs money)_ Offer to connect an app to the savings wallet. A savings wallet that accepts app requests is an everyday wallet with a misleading name.
  <https://www.bitcoinsv.design/guide/rule/f85efeacfa/>
- **DO** Show it as a transfer rather than a payment in activity: one entry, not an outgoing and an incoming.
  <https://www.bitcoinsv.design/guide/rule/a2beea952b/>
- **DO** Require the savings wallet's own authorisation for anything leaving it, on its own device where that applies. Topping up should always be a deliberate human action.
  <https://www.bitcoinsv.design/guide/rule/8a2d17fdc1/>
- **DON'T** Offer an automatic sweep from everyday into savings without the user setting it up explicitly, and never the other direction.
  <https://www.bitcoinsv.design/guide/rule/96fdf16455/>
- **DO** When the user creates a payment request, ask which wallet should receive it, defaulting to everyday, and remember the choice per counterparty.
  <https://www.bitcoinsv.design/guide/rule/93708254d8/>
- **DON'T** Publish both handles in the same place. Doing so links the two wallets for anyone reading. See Wallet privacy.
  <https://www.bitcoinsv.design/guide/rule/a883c205ef/>
- **DO** Let a wallet be archived rather than deleted: hidden from the main view, still able to receive, still restorable.
  <https://www.bitcoinsv.design/guide/rule/03d5db7f15/>
- **DON'T** Offer to delete a wallet with a balance. Offer to empty it first, and say where the money would go.
  <https://www.bitcoinsv.design/guide/rule/1ca5fd2aa4/>
- **DO** Let users name and colour their wallets. "Rent" and "Holiday" are how people think, and a distinct colour is the fastest check that they are about to pay from the right one.
  <https://www.bitcoinsv.design/guide/rule/d6d18ef03e/>
- **DON'T** Rely on colour alone to distinguish wallets. Always pair it with the name.
  <https://www.bitcoinsv.design/guide/rule/540681d6c4/>

### Shared wallet

https://www.bitcoinsv.design/guide/wallet-patterns/shared-wallet/

- **DO** Ask what the group is protecting against before offering a rule. "One of us loses a phone" and "one of us might take the money" need different answers, and only the second needs a threshold above one.
  <https://www.bitcoinsv.design/guide/rule/8b3f7ded40/>
- **DO** Let an unfinished setup be saved and resumed. Getting three people to be available at once is the step most likely to stall.
  <https://www.bitcoinsv.design/guide/rule/160bd1f2cb/>
- **DO** Show whose key is set up and whose is outstanding, and give a way to nudge the people who are missing.
  <https://www.bitcoinsv.design/guide/rule/cd2a190854/>
- **DO** Include a recovery key held outside the group, or by the group's least active member, and say plainly what it can and cannot do on its own.
  <https://www.bitcoinsv.design/guide/rule/58c3a73490/>
- **DON'T** _(Costs money)_ Let a recovery key spend alone. It should be one of a quorum, not a back door, or the arrangement is not shared control.
  <https://www.bitcoinsv.design/guide/rule/d68af135f3/>
- **DO** Show who has signed, who has not, and how long it has been waiting. Most of the time a shared payment is blocked on a person, not on the network.
  <https://www.bitcoinsv.design/guide/rule/2a50c27a6c/>
- **DO** Notify the people whose signature is outstanding, and let anyone in the group nudge them without leaving the app.
  <https://www.bitcoinsv.design/guide/rule/c4ec2f3b90/>
- **DO** Let a proposer cancel their own pending payment cleanly, without leaving funds reserved.
  <https://www.bitcoinsv.design/guide/rule/4583f478db/>
- **DON'T** _(Costs trust)_ Show a pending shared payment as "Sending". Nothing has been sent, and the difference matters when somebody is waiting to be paid.
  <https://www.bitcoinsv.design/guide/rule/c1003435c4/>
- **DO** Attribute every payment to the member who proposed it and the members who approved it, and keep the note field prominent. "Who bought this and why" is the question a shared account gets asked most.
  <https://www.bitcoinsv.design/guide/rule/74d1570f9f/>
- **DO** Design it as a migration with a clear explanation: a new wallet is created with the new members, and the balance is moved to it in a payment the current quorum approves.
  <https://www.bitcoinsv.design/guide/rule/d8ea6b8acd/>
- **DO** Keep the old wallet's history visible after the move. The money changed arrangement; the record of what the group spent did not.
  <https://www.bitcoinsv.design/guide/rule/3665d5bbfa/>
- **DON'T** Imply a member can be removed without the remaining members acting. Anybody holding a key keeps it, and the only remedy is to move the funds somewhere their key does not work.
  <https://www.bitcoinsv.design/guide/rule/3bac68810b/>

### Upgradeable wallet

https://www.bitcoinsv.design/guide/wallet-patterns/upgradeable-wallet/

- **DO** Name the trigger in terms of the user's own money: "You're holding more than you said you wanted to keep on this phone. Want to add a second key?"
  <https://www.bitcoinsv.design/guide/rule/bde6fcaaf1/>
- **DON'T** Offer the upgrade as an abstract security improvement. "Increase your security level" is a prompt nobody acts on, because nobody knows what level they are at.
  <https://www.bitcoinsv.design/guide/rule/3857860fe6/>
- **DO** Keep small payments one-tap at every stage. A multi-key wallet that asks for a second device to buy a coffee has become a savings wallet by accident. See Wallet setups.
  <https://www.bitcoinsv.design/guide/rule/79f63eabec/>
- **DO** Show the current arrangement in plain words, and what each option would protect against. "One key on this phone. If you lose it and have your recovery words, you're fine. If somebody unlocks it, they can spend."
  <https://www.bitcoinsv.design/guide/rule/be335ddb52/>
- **DO** Let a user rehearse the new arrangement with a small amount before moving everything.
  <https://www.bitcoinsv.design/guide/rule/e978eca3c7/>
- **DON'T** _(Costs trust)_ Offer downgrades without a hard confirmation naming what is lost. Going from three keys to one is a real reduction in protection and should feel like one.
  <https://www.bitcoinsv.design/guide/rule/4eaf5f7317/>
- **DO** This is a path, not a feature. The upgrade should be prompted by the balance crossing something the user would mind losing, not discovered in settings by the people who least need it.
  <https://www.bitcoinsv.design/guide/rule/b11f484fc8/>
- **DO** Offer the upgrade path for people who want one wallet, and the two-wallet arrangement for people holding enough to care. The second is the one this guide recommends once there is real money involved. See Multiple wallets.
  <https://www.bitcoinsv.design/guide/rule/d09cae6771/>

### 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/>

### 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/>

### 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/>

### External signers

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

- **DO** Show progress while an animated code is being scanned, as a proportion collected rather than a frame count. Users point a camera at a flickering screen for several seconds and need to know it is working.
  <https://www.bitcoinsv.design/guide/rule/fc8c81e131/>
- **DO** Prompt the user to compare the signer's screen with the computer's before approving, and say which one to believe if they differ.
  <https://www.bitcoinsv.design/guide/rule/dfd37ed6a6/>
- **DO** Design the capability, and be honest in the product about what exists. "Use a signing device" is a promise; "works with devices that support air-gapped BEEF signing" is a fact the user can check.
  <https://www.bitcoinsv.design/guide/rule/8e497f735d/>
- **DON'T** Build a savings or inheritance flow whose only safe path needs a device your users cannot obtain. Multi-key across phones and people is available today and is the better default until that changes.
  <https://www.bitcoinsv.design/guide/rule/64efa91057/>
- **DO** _(Costs money)_ Treat the signer as one key in a set rather than the only key, where the amount justifies it. A single signing device that is lost is a total loss. See Multi-key.
  <https://www.bitcoinsv.design/guide/rule/3bd229a88f/>
- **DO** Let the wallet work read-only while the signer is away. Balances, history and receiving should all function without it, so the device is only needed to spend.
  <https://www.bitcoinsv.design/guide/rule/663890b2a7/>
- **DO** _(Costs money)_ Say what happens if the device breaks, during setup, not during recovery. The answer is the recovery material, and the user should have it before they need it.
  <https://www.bitcoinsv.design/guide/rule/04eea61984/>
- **DON'T** Require the signer for receiving. Nothing needs signing to receive, and a wallet that asks for it has made the device a daily chore for no gain.
  <https://www.bitcoinsv.design/guide/rule/f915501fd0/>

### Multi-key

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

- **DO** Show whose signature is still outstanding, and give a way to nudge them. Most of the time a shared payment is waiting on a person, not on the network.
  <https://www.bitcoinsv.design/guide/rule/1a6af3cd89/>
- **DO** Walk the setup one key at a time, and say for each one where it is going and what losing it would mean.
  <https://www.bitcoinsv.design/guide/rule/aa6d776a46/>
- **DO** Let an unfinished setup be saved and resumed. Gathering three devices or three people rarely happens in one sitting.
  <https://www.bitcoinsv.design/guide/rule/9dbd190984/>
- **DON'T** Finish setup without the user having restored from it once. An untested multi-key wallet is a wallet with more ways to fail than a single-key one.
  <https://www.bitcoinsv.design/guide/rule/973cc5b477/>
- **DO** _(Costs money)_ Back up the wallet configuration with the same care as a key. It names every key in the arrangement.
  <https://www.bitcoinsv.design/guide/rule/63bb703e74/>
- **DO** Show what is being signed in plain terms on every device that signs, and how many signatures are collected.
  <https://www.bitcoinsv.design/guide/rule/a4c57c41cd/>
- **DO** _(Costs trust)_ Let a partly signed payment be abandoned cleanly, without leaving funds stuck.
  <https://www.bitcoinsv.design/guide/rule/d1ea40e31c/>
- **DON'T** Say "2-of-3 multisig". Say "Two of your three keys are needed to spend", and name the keys the way the user named them.
  <https://www.bitcoinsv.design/guide/rule/47ec5ed38b/>
- **DO** Pick on the trust question, not the privacy one. If the parties need to be sure no one of them can ever reconstruct the whole key, that is bare multisig. If the goal is one person's key surviving a fire, shares are simpler and cheaper.
  <https://www.bitcoinsv.design/guide/rule/314d72ca3c/>
