Skip to content

Latest commit

 

History

History
547 lines (415 loc) · 25.6 KB

casa-recovery.md

File metadata and controls

547 lines (415 loc) · 25.6 KB

Casa Recovery Information

Finding your recovery data

When performing a Sovereign Recovery, you should operate on the assumption that the Casa Recovery Key is unavailable, meaning you have either 5-of-6, 4-of-5, or 2-of-3 signing keys left. To complete a transaction, you need ALL of your public keys.

All your public keys can be downloaded directly from the Casa mobile app. Just tap each key icon from your Key Shield screen, then tap View Public Keys. With your hardware wallets, it's important to use the public keys displayed by the app, rather than the ones exposed by a hardware manufacturer's app. The account-level public keys used by Casa are different from the devices' root public keys.

Don't forget to copy the derivation paths! When you view the public key for a specific account on a device, the current derivation path will be displayed beneath it. Derivation paths change every time you add a new device to your key set; it's important that you use the current path, otherwise the wrong addresses will be generated by your recovery wallet software.

To access your Mobile Key seed - tap into the Mobile Key icon on your Key Shield, then tap Export Private Key. NOTE - Once you export your Mobile Key seed, it is marked as compromised as a precaution, and you can no longer use your Mobile Key to sign transactions through the app.

IMPORTANT - Your public keys and Mobile Key seed are secured locally on your iOS or Android phone. Meaning they can be accessed even if Casa's infrastructure is unavailable, and even if your device does not have an active Internet connection. To ensure you're able to log into Casa even if you're offline, you must NOT enable the "clear cache on logout" option.

Note: the following instructions are for recovery of a Casa wallet with Electrum. Instructions for using Specter Desktop (more complicated to install) to recover a Casa wallet can be found at the bottom.

Casa Covenant recovery

How to recover funds from a 3-of-6 Casa bitcoin wallet without using Casa software or servers. First, gather your recovery data from either your Sovereign Recovery email or from the app as described above.

Install the latest version of Electrum. Electrum 4.0.0 or later is required for Coldcard support.

Linux Only

Install the appropriate libraries for your hardware wallets:

  1. sudo apt install libusb-1.0-0-dev libudev-dev python3-pip
  2. pip3 install btchip-python
  3. pip3 install trezor
  4. pip3 install ckcc-protocol

Set the udev rules for each hardware wallet:

  1. wget https://raw.githubusercontent.com/spesmilo/electrum/master/contrib/udev/20-hw1.rules
  2. wget https://raw.githubusercontent.com/spesmilo/electrum/master/contrib/udev/51-trezor.rules
  3. wget https://raw.githubusercontent.com/spesmilo/electrum/master/contrib/udev/51-coinkite.rules
  4. sudo mv *.rules /etc/udev/rules.d/

Add your user to the plugdev group

  1. sudo groupadd plugdev
  2. sudo usermod -aG plugdev $(whoami)
  3. sudo udevadm control --reload-rules && sudo udevadm trigger

After this initial setup, restart your computer.

Step-By-Step Guide

  1. Run electrum. For testnet, run electrum --testnet.
  2. Create a new wallet and give it a name.
  3. Choose "multi-signature wallet".
  4. Select "From 6 cosigners".
  5. Select "Require 3 signatures".
  6. Click next.

For cosigner 1 of 6:

  1. Choose "hardware wallet".
  2. Plug in hardware device 1 if it isn't already plugged in.
  3. Click next.
  4. Select your hardware device and click next.
  5. Select p2sh-segwit multisig.
    • The derivation path should change to something like: m/48'/0'/0'/1'. Replace it with the derivation path from your recovery data, which will look something like: m/49/0/0.
  6. Click next, then next again on the master public key screen.

For cosigner 2 of 6:

  1. Choose "cosign with hardware device".
  2. Plug in hardware device 2 if it isn't already plugged in.
  3. Click next.
  4. Select your hardware device and click next.
  5. Select p2sh-segwit multisig.
    • The derivation path should change to something like: m/48'/1'/0'/1'. Replace it with the derivation path from your recovery data.
  6. Click next.

For cosigner 3 of 6:

If you're signing using the Mobile Key:

  1. Select "I already have a seed"
  2. Click next
  3. Type the seed phrase into the box
  4. Click "Options"
  5. Check "BIP39 seed"
  6. Click "OK"
  7. Click "Next"
  8. Select "p2sh-segwit (p2wpkh-p2sh)"
  9. The derivation path should change to something like m/48'/0'/0'/1' - replace it with the derivation path from your recovery data, which will look something like: m/49/0/0
  10. Click "Next"

If you're signing with a third hardware device:

  1. Choose "cosign with hardware device".
  2. Plug in hardware device 3 if it isn't already plugged in.
  3. Click next.
  4. Select your hardware device and click next.
  5. Select p2sh-segwit multisig.
    • The derivation path should change to something like m/48'/1'/0'/1'. Replace it with the derivation path from your recovery data.
  6. Click next.

For cosigner 4 of 6:

  1. Choose "Enter cosigner key" and click next.
  2. If you are signing with 3 hardware devices, paste the "Mobile Device Public Key" for the appropriate account from your recovery data. If you imported the Mobile Key seed phrase earlier, paste the Public Key for a hardware device with which you are not signing. If you accidentally paste in a public key for one of the hardware devices you already added, you will see a "duplicate key" error.
  3. Click next.

For cosigner 5 of 6:

  1. Choose "Enter cosigner key" and click next.
  2. Paste your final unused hardware Device Key for the appropriate account from your recovery data.
  3. Click next.

For cosigner 6 of 6:

  1. Choose "Enter cosigner key" and click next.
  2. Paste the "Recovery Device Key" for the appropriate account from your recovery data.
  3. Click next.
  4. On the password screen, leave both fields blank and click next.

Electrum will now initialize your wallet and display all of the transactions that have been received and sent by it. If you don't see your transactions show up after a minute or so, something went wrong during the process and Electrum derived the wrong set of addresses.

To send your assets to a new wallet, click on the "send" tab and fill in the "pay to" field with and address owned by your new wallet. Click the "max" button to sweep all of the value out of the wallet, and slide the "fee" bar to an appropriate fee depending upon your urgency.

Once you click "send" you will be prompted to confirm the amount and destination address on each hardware device.

Upon completing the third signature, the "broadcast" button will no longer be greyed out. Click "broadcast" and then copy the transaction id into a block explorer to check that the transaction has propagated across the network.

NOTE: Electrum can be finicky with hardware signing device support, especially on Linux. In order to prevent errors, ensure that you only have ONE electrum instance running and plug ALL of your hardware devices in simultaneously rather than plugging and unplugging the devices as you sign.

Casa Key Shield recovery

How to recover funds from a 3-of-5 Casa bitcoin wallet without using Casa software or servers. First, gather your recovery data from either your Sovereign Recovery email or from the Casa app as described above.

Install the latest version of Electrum. Electrum 4.0.0 or later is required for Coldcard support.

Linux Only

Install the appropriate libraries for your hardware wallets:

  1. sudo apt install libusb-1.0-0-dev libudev-dev python3-pip
  2. pip3 install btchip-python
  3. pip3 install trezor
  4. pip3 install ckcc-protocol

Set the udev rules for each hardware wallet:

  1. wget https://raw.githubusercontent.com/spesmilo/electrum/master/contrib/udev/20-hw1.rules
  2. wget https://raw.githubusercontent.com/spesmilo/electrum/master/contrib/udev/51-trezor.rules
  3. wget https://raw.githubusercontent.com/spesmilo/electrum/master/contrib/udev/51-coinkite.rules
  4. sudo mv *.rules /etc/udev/rules.d/

Add your user to the plugdev group

  1. sudo groupadd plugdev
  2. sudo usermod -aG plugdev $(whoami)
  3. sudo udevadm control --reload-rules && sudo udevadm trigger

After this initial setup, restart your computer.

Step-By-Step Guide

  1. Run electrum. For testnet, run electrum --testnet.
  2. Create a new wallet and give it a name.
  3. Choose "multi-signature wallet".
  4. Select "From 5 cosigners".
  5. Select "Require 3 signatures".
  6. Click next.

For cosigner 1 of 5:

  1. Choose "hardware wallet".
  2. Plug in hardware device 1 if it isn't already plugged in.
  3. Click next.
  4. Select your hardware device and click next.
  5. Select p2sh-segwit multisig.
    • The derivation path should change to something like: m/48'/0'/0'/1'. Replace it with the derivation path from your recovery data, which will look something like: m/49/0/0.
  6. Click next, then next again on the master public key screen.

For cosigner 2 of 5:

  1. Choose "cosign with hardware device".
  2. Plug in hardware device 2 if it isn't already plugged in.
  3. Click next.
  4. Select your hardware device and click next.
  5. Select p2sh-segwit multisig.
    • The derivation path should change to something like: m/48'/1'/0'/1'. Replace it with the derivation path from your recovery data.
  6. Click next.

For cosigner 3 of 5:

If you're signing using the Mobile Key:

  1. Select "I already have a seed"
  2. Click next
  3. Type the seed phrase into the box
  4. Click "Options"
  5. Check "BIP39 seed"
  6. Click "OK"
  7. Click "Next"
  8. Select "p2sh-segwit (p2wpkh-p2sh)"
  9. The derivation path should change to something like m/48'/0'/0'/1' - replace it with the derivation path from your recovery data, which will look something like: m/49/0/0
  10. Click "Next"

If you're signing with a third hardware device:

  1. Choose "cosign with hardware device".
  2. Plug in hardware device 3 if it isn't already plugged in.
  3. Click next.
  4. Select your hardware device and click next.
  5. Select p2sh-segwit multisig.
    • The derivation path should change to something like m/48'/1'/0'/1'. Replace it with the derivation path from your recovery data.
  6. Click next.

For cosigner 4 of 5:

  1. Choose "Enter cosigner key" and click next.
  2. If you are signing with 3 hardware devices, paste the "Mobile Device Public Key" for the appropriate account from your recovery data. If you imported the Mobile Key seed phrase earlier, paste the Public Key for the hardware device with which you are not signing. If you accidentally paste in a public key for one of the hardware devices you already added, you will see a "duplicate key" error.
  3. Click next.

For cosigner 5 of 5:

  1. Choose "Enter cosigner key" and click next.
  2. Paste the "Recovery Device Key" for the appropriate account from your recovery data.
  3. Click next.
  4. On the password screen, leave both fields blank and click next.

Electrum will now initialize your wallet and display all of the transactions that have been received and sent by it. If you don't see your transactions show up after a minute or so, something went wrong during the process and Electrum derived the wrong set of addresses.

To send your assets to a new wallet, click on the "send" tab and fill in the "pay to" field with and address owned by your new wallet. Click the "max" button to sweep all of the value out of the wallet, and slide the "fee" bar to an appropriate fee depending upon your urgency.

Once you click "send" you will be prompted to confirm the amount and destination address on each hardware device.

Upon completing the third signature, the "broadcast" button will no longer be greyed out. Click "broadcast" and then copy the transaction id into a block explorer to check that the transaction has propagated across the network.

NOTE: Electrum can be finicky with hardware signing device support, especially on Linux. In order to prevent errors, ensure that you only have ONE electrum instance running and plug ALL of your hardware devices in simultaneously rather than plugging and unplugging the devices as you sign.

Casa Basic Multisig (with mobile key) recovery

How to recover funds from a 2-of-3 Casa bitcoin wallet without using Casa software or servers

First, gather your recovery data from the Casa app as described above.

  1. In the Casa app, tap the "Mobile Key" wallet
  2. Tap the mobile device
  3. Tap "View Public Keys"
  4. Tap "BTC Account"
  5. Write down the Derivation Path, which should look like: m/49/0/1
  6. Go back 2 screens to the Mobile Key view
  7. Tap "Export Private Key"
  8. Write down the seed phrase

Install the latest version of Electrum. Electrum 4.0.0 or later is required for Coldcard support.

Linux Only

Install the appropriate libraries for your hardware wallets:

  1. sudo apt install libusb-1.0-0-dev libudev-dev python3-pip
  2. pip3 install btchip-python
  3. pip3 install trezor
  4. pip3 install ckcc-protocol

Set the udev rules for each hardware wallet:

  1. wget https://raw.githubusercontent.com/spesmilo/electrum/master/contrib/udev/20-hw1.rules
  2. wget https://raw.githubusercontent.com/spesmilo/electrum/master/contrib/udev/51-trezor.rules
  3. wget https://raw.githubusercontent.com/spesmilo/electrum/master/contrib/udev/51-coinkite.rules
  4. sudo mv *.rules /etc/udev/rules.d/

Add your user to the plugdev group

  1. sudo groupadd plugdev
  2. sudo usermod -aG plugdev $(whoami)
  3. sudo udevadm control --reload-rules && sudo udevadm trigger

After this initial setup, restart your computer.

Step-By-Step Guide

  1. Run electrum. For testnet, run "electrum --testnet"
  2. Create a new wallet and give it a name
  3. Choose "multi-signature wallet"
  4. Select "From 3 cosigners"
  5. Select "Require 2 signatures"
  6. Click next.

For cosigner 1 of 3:

  1. Choose "hardware wallet"
  2. Plug in hardware device 1 if it isn't already
  3. Click next
  4. Select your hardware device and click next
  5. Select p2sh-segwit multisig
  6. The derivation path should change to something like m/48'/0'/0'/1' - replace it with the derivation path from your recovery data, which will look something like: m/49/0/0
  7. Click next, then next again on the master public key screen

For cosigner 2 of 3:

  1. Select "I already have a seed"
  2. Click next
  3. Type the seed phrase into the box
  4. Click "Options"
  5. Check "BIP39 seed"
  6. Click "OK"
  7. Click "Next"
  8. Select "p2sh-segwit (p2wpkh-p2sh)"
  9. The derivation path should change to something like m/48'/0'/0'/1' - replace it with the derivation path from your recovery data, which will look something like: m/49/0/0
  10. Click "Next"

For cosigner 3 of 3:

  1. Choose "Enter cosigner key" and click next.
  2. Paste the "Recovery Device Key" for the appropriate account from your recovery data.
  3. Click next.
  4. On the password screen, leave both fields blank and click next.

Electrum will now initialize your wallet and display all of the transactions that have been received and sent by it. If you don't see your transactions show up after a minute or so, something went wrong during the process and electrum derived the wrong set of addresses.

To send your assets to a new wallet, click on the "send" tab and fill in the "pay to" field with and address owned by your new wallet. Click the "max" button to sweep all of the value out of the wallet, and slide the "fee" bar to an appropriate fee depending upon your urgency.

Once you click "send" you will be prompted to confirm the amount and destination address on the hardware device.

Upon completing the second signature, the "broadcast" button will no longer be greyed out. Click "broadcast" and then copy the transaction id into a block explorer to check that the transaction has propagated across the network.

NOTE: Electrum can be finicky with hardware signing device support, especially on Linux. In order to prevent errors, ensure that you only have ONE electrum instance running and plug ALL of your hardware devices in simultaneously rather than plugging and unplugging the devices as you sign.

Casa Basic Multisig (with 2 hardware devices) recovery

How to recover funds from a 2-of-3 Casa bitcoin wallet without using Casa software or servers

First, gather your recovery data from the Casa app as described above.

Install the latest version of Electrum. Electrum 4.0.0 or later is required for Coldcard support.

Linux Only

Install the appropriate libraries for your hardware wallets:

  1. sudo apt install libusb-1.0-0-dev libudev-dev python3-pip
  2. pip3 install btchip-python
  3. pip3 install trezor
  4. pip3 install ckcc-protocol

Set the udev rules for each hardware wallet:

  1. wget https://raw.githubusercontent.com/spesmilo/electrum/master/contrib/udev/20-hw1.rules
  2. wget https://raw.githubusercontent.com/spesmilo/electrum/master/contrib/udev/51-trezor.rules
  3. wget https://raw.githubusercontent.com/spesmilo/electrum/master/contrib/udev/51-coinkite.rules
  4. sudo mv *.rules /etc/udev/rules.d/

Add your user to the plugdev group

  1. sudo groupadd plugdev
  2. sudo usermod -aG plugdev $(whoami)
  3. sudo udevadm control --reload-rules && sudo udevadm trigger

After this initial setup, restart your computer.

Step-By-Step Guide

  1. Run electrum. For testnet, run "electrum --testnet"
  2. Create a new wallet and give it a name
  3. Choose "multi-signature wallet"
  4. Select "From 3 cosigners"
  5. Select "Require 2 signatures"
  6. Click next.

For cosigner 1 of 3:

  1. Choose "hardware wallet"
  2. Plug in hardware device 1 if it isn't already
  3. Click next
  4. Select your hardware device and click next
  5. Select p2sh-segwit multisig
  6. The derivation path should change to something like m/48'/0'/0'/1' - replace it with the derivation path from your recovery data, which will look something like: m/49/0/0
  7. Click next, then next again on the master public key screen

For cosigner 2 of 3:

  1. Choose "hardware wallet"
  2. Plug in hardware device 2 if it isn't already
  3. Click next
  4. Select your hardware device and click next
  5. Select p2sh-segwit multisig
  6. The derivation path should change to something like m/48'/0'/0'/1' - replace it with the derivation path from your recovery data, which will look something like: m/49/0/0
  7. Click next, then next again on the master public key screen

For cosigner 3 of 3:

  1. Choose "Enter cosigner key" and click next.
  2. Paste the "Recovery Device Key" for the appropriate account from your recovery data.
  3. Click next.
  4. On the password screen, leave both fields blank and click next.

Electrum will now initialize your wallet and display all of the transactions that have been received and sent by it. If you don't see your transactions show up after a minute or so, something went wrong during the process and electrum derived the wrong set of addresses.

To send your assets to a new wallet, click on the "send" tab and fill in the "pay to" field with and address owned by your new wallet. Click the "max" button to sweep all of the value out of the wallet, and slide the "fee" bar to an appropriate fee depending upon your urgency.

Once you click "send" you will be prompted to confirm the amount and destination address on each hardware device.

Upon completing the second signature, the "broadcast" button will no longer be greyed out. Click "broadcast" and then copy the transaction id into a block explorer to check that the transaction has propagated across the network.

NOTE: Electrum can be finicky with hardware signing device support, especially on Linux. In order to prevent errors, ensure that you only have ONE electrum instance running and plug ALL of your hardware devices in simultaneously rather than plugging and unplugging the devices as you sign.

Casa Wallet Recovery

How to recover funds from a single signature mobile key Casa bitcoin wallet without using Casa software or servers.

  1. In the Casa app, tap the "Mobile Key" wallet
  2. Tap the mobile device
  3. Tap "View Public Keys"
  4. Tap "BTC Account"
  5. Write down the Derivation Path, which should look like: m/49/0/1
  6. Go back 2 screens to the Mobile Key view
  7. Tap "Export Private Key"
  8. Write down the seed phrase

Install the latest version of Electrum.

  1. Run electrum
  2. Create a new wallet and give it a name
  3. Choose "standard wallet"
  4. Click next
  5. Select "I already have a seed"
  6. Click next
  7. Type the seed phrase into the box
  8. Click "Options"
  9. Check "BIP39 seed"
  10. Click "OK"
  11. Click "Next"
  12. Select "p2sh-segwit (p2wpkh-p2sh)""
  13. Type the derivation path you wrote down earlier
  14. Click "Next"
  15. On the password screen, leave both fields blank and click "Next"

Electrum will now initialize your wallet and display all of the transactions that have been received and sent by it. If you don't see your transactions show up after a minute or so, something went wrong during the process and electrum derived the wrong set of addresses.

To send your assets to a new wallet, click on the "send" tab and fill in the "pay to" field with and address owned by your new wallet. Click the "max" button to sweep all of the value out of the wallet, and slide the "fee" bar to an appropriate fee depending upon your urgency.

Casa Multisig Wallet Recovery with Specter Desktop

How to recover funds from an m-of-n Casa bitcoin wallet without using Casa software or servers

  1. Install Bitcoin Core
  2. Generate rpcauth for your node with this script
  3. Recommended bitcoin.conf for Bitcoin Core: blockfilterindex=1 rpcauth=<YOUR_RPC_AUTH_STRING> server=1
  4. Install Specter Desktop and make sure it can talk to Bitcoin Core. We recommend this guide.

For each Hardware Device:

  1. Plug in device to your computer
  2. Click "Add new device"
  3. Select device type
  4. Enter a name for the device
  5. Click "Edit"
  6. Delete any pre-filled derivation paths
  7. Click "Add custom derivation"
  8. Use "Casa" for the purpose field and paste in the hardware wallet derivation path from your Sovereign Recovery email
  9. Click "Add"
  10. Click "Get via USB" - note that for Ledger devices you need to unlock the Ledger and open the Bitcoin app
  11. Click "Add Device"
  12. Click "Add another device" and repeat for other hardware devices

For signing with a mobile key:

  1. Click "Add Device"
  2. Select "Bitcoin Core (hot wallet)"
  3. Select "Import"
  4. In Casa App, tap Mobile Key -> "Import or Export Backup" -> Export Private Key
  5. Write down the seed phrase onto paper; you will not be able to export it again
  6. Type the seed phrase into Specter's import text box
  7. Click "Next"
  8. Enter a name for the device
  9. Click "Edit"
  10. Delete any pre-filled derivation paths
  11. Click "Add custom derivation"
  12. Use "Casa" for the purpose field and paste in the hardware wallet derivation path from your Sovereign Recovery email
  13. Click "Add"
  14. Click "Add Device"

For a Casa Recovery Key or a Mobile Key that won't be signing:

  1. Click "Add Device"
  2. Select "Other Device"
  3. Enter a name for the device.
  4. Click "Edit"
  5. Delete any pre-filled derivation paths.
  6. Click "Paste xpub"
  7. Paste in the Casa extended public key from your Sovereign Recovery Email
  8. Derivation path should be "m/"
  9. Click "Add Device"

Once all devices are created:

  1. Click "Add new wallet"
  2. Click "Create multisignature wallet"
  3. Select all of the devices
  4. Click "continue"
  5. Name the wallet
  6. Highlight "Nested Segwit"
  7. Ensure that the number after "Using" matches the number of signatures required to transact
  8. Check "scan for existing funds"
  9. Ensure that "use this key" is selected for the appropriate Casa derivation path on each signer
  10. Click "create wallet"

If everything went well, you'll see a new wallet with a "rescanning blockchain" progress percentage. If the blockchain scanning completes and does not find your funds, then you likely entered the wrong public key or derivation path somewhere during the process.

Casa Single Signature Wallet Recovery with Specter Desktop

How to recover funds from a single signature Casa bitcoin wallet without using Casa software or servers.

  1. Install Bitcoin Core

  2. Generate rpcauth for your node with this script

  3. Recommended bitcoin.conf for Bitcoin Core: blockfilterindex=1 rpcauth=<YOUR_RPC_AUTH_STRING> server=1

  4. Install Specter Desktop and make sure it can talk to Bitcoin Core. We recommend this guide.

  5. In the Casa app, tap the "Mobile Key" wallet

  6. Tap the mobile device

  7. Tap "View Public Keys"

  8. Tap "BTC Account"

  9. Write down the Derivation Path, which should look like: m/49/0/1

  10. Go back 2 screens to the Mobile Key view

  11. Tap "Import or Export Backup"

  12. Tap "Export Private Key"

  13. Write down the seed phrase onto paper; you will not be able to export it again

  14. In Specter click "Add new device"

  15. Select "Bitcoin Core (hot wallet)"

  16. Select "Import"

  17. Type the seed phrase into Specter's import text box

  18. Click "Next"

  19. Enter a name for the device

  20. Click "Edit"

  21. Delete any pre-filled derivation paths

  22. Click "Add custom derivation"

  23. Use "Casa" for the purpose field and paste in the derivation path from the Casa app

  24. Click "Add"

  25. Click "Add Device"

  26. Click "Create Single Key Wallet"

  27. Name the wallet

  28. Highlight "Nested Segwit"

  29. Check "Scan for existing funds"

  30. Ensure that "use this key" is selected for the appropriate Casa derivation path on each signer

  31. Click "create wallet"

If everything went well, you'll see a new wallet with a "rescanning blockchain" progress percentage. If the blockchain scanning completes and does not find your funds, then you likely entered the wrong public key or derivation path somewhere during the process.