Skip to content
bitcoinsv.design

Search the guide

Search the guide

A calm glass jar of soft glowing light sealed with a lid, standing on a high shelf, and beside it on a lower shelf a small open everyday pouch, a thin path of light flowing occasionally from the jar to the pouch

Savings wallet

A wallet for money that moves rarely: several keys, no app connections, and deliberate top-ups to the wallet that does the spending.

The companion to the daily spending wallet, defined by what it refuses to do.

It does not connect to apps. That one rule is most of the design. An is useful because it answers requests all day, which is also why it should not hold everything somebody owns. The answers nothing, so the risks that come with being connected do not reach it. See Wallet setups.

The case for a savings wallet

What it is for

Money the user would be upset to lose, held for months or years, moved a handful of times. Not a vault for everything, and not an investment product: a second wallet whose job is to be boring.

The person this is drawn for is close to Hugo: saving steadily, rarely spending, and unlikely to remember the setup two years later.

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.

Don't

Build savings features into the everyday wallet. A wallet that is both ends up too slow for a coffee and too exposed for savings.

Several keys, not one

Key overview

Several keys are what make a savings wallet worth the friction: no single lost key loses the money, and no single stolen key spends it.

A common arrangement is two of three:

KeyWhere it livesWhat it is for
1This phoneYour everyday signature
2A signing device, or a second phoneA second signature that a compromised phone or computer cannot make
3Kept offline, or with a serviceStanding in for either of the others if one is lost

Setting up the first key

The first key's steps

Choosing a connection type

Choosing a device type

The third key

Do

Walk setup one key at a time, saying for each where it is going and what losing it would mean.

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.

Don't

Finish setup without the user having restored from it once, with a small amount. An untested wallet has more ways to fail than a single-key one.

Setup complete

On BSV: the arrangement is public

If you build it as a multi-key , rather than one key split into shares, the keys and threshold are in the open, because new pay-to-script-hash outputs are not allowed. Anyone can see this is a two-of-three.

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.

Spending from it

The savings home screen

The useful idea here is a limit. It keeps a top-up quick and a large withdrawal deliberate.

The script cannot see how much is being spent, so the limit is not in the script. It is the policy of one key, an auto-signer, for example the key held by a service. The auto-signer adds its signature on its own, but only to payments below the limit:

  • Below the limit, your phone signs and the auto-signer co-signs. One tap.
  • Above the limit, the auto-signer refuses, so a second key of yours has to sign.

A small amount

Confirming a small amount

A large amount

A large amount, step one

signing on an unbranded offline device by scanning a code each way
signing on an unbranded offline device by scanning a code each way

Confirming a large amount

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."

Do

Show progress through a multi-key signature as collected and outstanding, naming the device still needed.

Don't

Let the limit be raised with a single key. Raising the threshold for spending is itself a high-value action and needs the quorum.

The limit is only as strong as the auto-signer's policy, so the auto-signer should accept a new limit only when the quorum has signed for it.

Changing limits

The limits flow

Confirming a limit change

Topping up the everyday wallet

The one routine job. It should be short, and it only goes one way.

Do

Make the transfer a named action with the destination prefilled, so it is two taps from the savings home screen.

Don't

Let the everyday wallet pull from savings on its own. A compromised app would drain both, which defeats the whole arrangement. See Multiple wallets.

Recovery and replacing a key

Recovery settings

Recovery options

A savings wallet is used rarely, so recovery is likely to happen long after setup, by somebody who has forgotten how it works.

With a multi-key script, every carries the keys it was locked to. Replacing a key therefore means moving the money to outputs that carry the new one. Until it moves, the old key still works on every output it is part of.

Registering a device

Recovery complete

Do

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.

Do

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.

Do

Prompt an occasional recovery check. A wallet opened twice a year is one whose backup has had a long time to go stale.

Where a time lock fits

A recovery path that opens on a set date unless the owner pushes it back, so the money is not lost if the owner becomes unavailable. It is the main variant of this design and has its own page, because on BSV it is a transaction signed in advance, which somebody has to keep and the wallet has to rebuild.

See Time-based recovery.

Open questions

  • Do people understand a limit that a co-signing key enforces, and what should the wallet say when the auto-signer is unreachable?
  • How often should the wallet prompt a recovery check for a wallet opened twice a year, and does a prompt lead to a check or get dismissed?
  • What split between everyday and savings do people choose when asked "How much would you be uncomfortable keeping on your phone?"

Written from: BRC-42, BRC-100, BRC-140, BRC-151, ts-stack script docs.

Checklist

The rules on this page, in a form you can work through.

14 rules