DEPRECATED — Multisig Vault recovery tool
You can use this open source tool to send all the coins from your Coinbase Multisig Vault to any bitcoin address you choose.
In order to do this you will need the data from your vault backup that you either printed out or saved somewhere.
https://coinbase.github.io/multisig-tool
To complete this recovery process, you will need the following information:
Internet connection is only required in Step 1, where you input the public keys, so that we can fetch the unspent outputs from your vault addresses.
Before inputting your keys in Step 2 and signing the transaction you can safely go offline.
In Step 3 you will get a signed transaction in raw hex form.
You can then copy this transaction and verify it with Bitcoin Core and
decoderawtransactionor using an online tool like Coinb.in.
After verifying you then broadcast it using Bitcoin Core and
sendrawtransactionor any other API or client that supports broadcasting transactions into the Bitcoin network.
You can download this tool and run it locally or use our hosted version at https://coinbase.github.io/multisig-tool.
If you wish to run the tool locally, you need to do it through a local web server. The easiest way to do that is by running:
make run
This is because we use Web Workers for decrypting your BIP38 encrypted shared key seed, and Web Workers are not permitted to run through the
file:///protocol.
Another alternative is to run Chrome with the
--allow-access-from-filesparameter.
This tool was designed to have a minimal code foot print so it could be easily auditable.
All the domain specific crypto is done in the various files in
lib/multisig.
These files are compiled using Browserify into
multisig.jswith:
make compile
Everything else is either UI code or dependency libraries.
We use the BitcoinJS library to handle HD wallets, Bitcoin keys, addresses and transactions.
We use the BIP38 library to decrypt the encrypted shared key seeds.
multisig/bip38.jswe used:
Install packages with
npm:
npm install bip38 crypto-browserify --save
Use
browserifyto resolve dependencies:
browserify -r bip38 -s Bip38 > lib/multisig/bip38.js
Then we amend the
lib/multisig/bip38.jsto support progress callbacks and Web Worker messages handling.
We need this as a separate file, because we're using it with web workers.
There is currently no error checking whatsoever. That means the tool won't let you know if something is wrong with your input or with anything else. It will just silently stop working.
There is also currently no support for group vaults.
We plan to tackle those issues soon, but we do accept community contributions as well. So if you have a solution for some of these, please submit a pull request!