1

New to self-custody so please forgive misunderstandings.

I am trying to setup BTC wallets for self-custody and I would like it to achieve the following 3 goals:

  1. Simplicity of storing keys: full access to the wallet from just words

  2. No single point of failure (i.e., not just a plain singlesig wallet)

  3. Future-proofed against any wallet software implementations: no dependence on any wallet or company in any way. Can recover wallet purely from words.

So far the two things I found are multisig wallets or a singlesig + BIP39 passphrase.

Playing around with multisig wallets I found that it was a bit awkward to re-access the wallet after creating it. For example, I used Nunchuk (recommended air-gapped mobile wallet for Jade) to create a multisig wallet from two keys I created on the Jade. But it seemed just knowing the two keys xpubs was not enough to re-access the wallet later after removing it from Nunchuk. To re-access the wallet I had to export a file from Nunchuk with some descriptors for the two keys with a particular function (I tried to read the bitcoin github doc on this but got confused: https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md)

wsh(sortedmulti(2,
[--------/84'/0'/0']xpub-----/**,
[--------/84'/0'/0']xpub-----/**))
/0/*,/1/*

So this seemed to violate goal #1. And it wouldn't open in other wallets I tried, which seems to tie it to Nunchuk (or maybe a subset of wallets?) and so also seems to violate goal #3. Also feels uncomfortable to not understand the different functions wsh and others in that doc.

The other thing I saw that Jade offers is using an additional BIP39 passphrase (I guess they call it the 13th/25th word) on top of the standard recovery phrase. This seems to satisfy #1 and #2 but I have no idea if this is standardized and can be opened with other wallets or something weird and specific to Jade.

Any recommendations on how to setup a wallet that can satisfy those three goals?

1 Answer 1

1

A couple notes:

  1. BIP 39 is extremely popular and it's important to note that it is just a way of encoding a seed phrase. The words themselves are not the seed phrase. You can explore the BIP39 word list and its encoding details If you go to this link and scroll down to the section titled:

"Below is the BIP 39 word list if utilizing indexed numbers and/or 11-bit binary conversion"

  1. From the descriptor you provided, it seems you're setting up a 2-of-2 multi-signature wallet. Be cautious with this setup because if you lose access to just one key, you'll be locked out of your funds. Instead, I recommend using a 2-of-3 multi-signature wallet. This setup offers a good balance between security and redundancy, providing protection against both theft and loss. However, for most users, a BIP 39 seed phrase combined with a passphrase is sufficient.

  2. Output descriptors are readable strings that describe the structure of a Bitcoin address or script, used to produce spending conditions in wallets/transactions. When you perform a transaction, you must provide the public key(s) associated with each input. Output descriptors standardize the way these scripts are imported across different wallets. While they are relatively new (introduced in 2021 with Bitcoin Core 0.21.0, and specified across BIPs 380-390), they help ensure compatibility across different wallets. You can find a list of wallets that currently support output descriptors on outputdescriptors.org.

No matter which setup you choose, having a robust backup strategy is the most important part of keeping your coins safe. Ensure that your seed phrases, passphrases, and any additional information (like multi-sig descriptors) are securely backed up in multiple locations. If you have all of that information, the funds are always recoverable.

3
  • 1
    "Output descriptors are used to describe output scripts in Bitcoin transactions." Maybe: "Output descriptors compactly describe a wallet’s set of outputs."? Also, maybe clarify that "relative new" means that they were released in early 2021, and that the BIPs 380–390 standardize them in various applications. ;)
    – Murch
    Commented Sep 3 at 16:50
  • Thanks, I realized I included a sub-par explanation. Updated. Commented Sep 3 at 19:51
  • Thank you @MylesSherman - if I use a multi-sig configuration does it mean I MUST also store the output description in order to re-create the wallet later from scratch? My concern is this adds a level of complexity to storing recovery data that won't work with simple word storage. Commented Sep 18 at 4:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.