Skip to content

Instantly share code, notes, and snippets.

@matiu
Last active August 29, 2015 14:05
Show Gist options
  • Save matiu/0d5201b89c2f9ed8e23e to your computer and use it in GitHub Desktop.
Save matiu/0d5201b89c2f9ed8e23e to your computer and use it in GitHub Desktop.
Copay Recovery Process

This procedure is for reseting a Copay Wallet status, reseting its transactions proposals, addresses and peer metainfo. It should be used as a last resource to recover wallet's funds, in case there is an error on the wallet or a corrupted backup.

A. Gathering the information

  1. You need to have access of the ALL peers of the wallet (*)
  2. If you will run the procedure on the same computer, BE SURE not to use the same browser, since localStorage is shared. You can use: 1 Chrome window, and 1 Chrome incognito window, 1 Firefox window, 1 Firefox incognito window.
  3. Start by creating backups of all the peers.
  4. Go to 'More' in the peers wallet, and add the &advanced=1 at the end of the URL. This should show some advanced options
  5. Take note of the Master Private Key of ALL the peers.
  6. Close all the wallet.

B. Recovering the wallet

  1. Go to Import Wallet.
  2. add ?skip=publicKeyRing,txProposals to the URL. A banner should appear: https://www.evernote.com/shard/s49/sh/ee2282a5-b712-42c7-ae2b-196d5d94c345/6c72c7e59af341d76884dfe0ce08d43a
  3. Import on of the backups from one peer (we will call this peer 'the creator').
  4. Copay should show the 'intermediate screen' in which other peers are been waiting to join

C. Adding peers

  1. Go to Join Wallet In Creation
  2. add &advanced=1 to the URL. The Private Key field should appear
  3. Enter the peer information (it is not need to be the same as it was on the original wallet).
  4. Enter the private key you exported before (in A.5).
  5. Repeat 1-4 for all the peers. You need to join with all the peers, using theirs the private keys you exported in A.5, BUT not from one corresponding to the creator.
  6. Click on 'SCAN' at the More tab. (using the &advanced=1 feature). That should make your funds appear in the new wallet. Repeat in each peer if it is not updated automatically.

Once you have the funds available, you can send a new transaction proposal and sign it.

(*) Having access to only a quorum number of peers of the wallet could be used to recover a wallet funds, but not using this procedure. In that case the public keys of all the peers are needed anyways but those are stored on all backups. That procedure has not been tested yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment