Previously I setup an Armory online/offline/cold/paper bitcoin storage system. Recently I decided to migrate my bitcoin from Armory wallet cold storage to the BIP39 and related standards. I hadn't switched on the offline PC in a long time, and neither had I updated the blockchain on the online PC. Thus, I started considering my recovery options should something have broken or gone missing. Below are some of the ways I found to recover and move bitcoin in such failure scenarios.
The single-sheet Armory paper backup directly displays the Root Key
, e.g.:
Root Key: nidh jtfj ejue whkj dngt dftt hsss idgh ssss
wwad dojw aeja idfg went ukkk sajj uuwj kwjt
The Root Key
is all you need to send bitcoin from that wallet without using Armory, see Armory Root Key -> Addresses and Private Keys
The only way I know about at present is to install and run Armory on an OFFLINE PC and use the Armory wallet recovery. See Offline PC setup below. I will update if I find another way.
Same as above.
[ OFFLINE PC ]
- In Armory select the wallet from list. Click
Wallet Properties
button. - Click
Backup This Wallet
link. (ClickSee Other Backup Options
button.) - Choose
Export Key Lists
radio. ClickExport Key Lists
button. - Tick
Include Paper Backup Root
.
- You can also tick
Adresses String
andPrivate Key (Plain Base58)
to immediately get a list of the addresses that Armory knows that you have used, but it is possible to get them later without using Armory. Keep private keys secret, do not use on an online PC.
-
The window at the bottom will show the
Root Key
and other wallet attributes, e.g.:Created: 2017-Apr-14 07:24pm Wallet ID: 23gXywZJw Wallet Name: Demo -------------------------------------------------------------------------------- The following is the same information contained on your paper backup. All NON-imported addresses in your wallet are backed up by this data. Root Key: nidh jtfj ejue whkj dngt dftt hsss idgh ssss wwad dojw aeja idfg went ukkk sajj uuwj kwjt --------------------------------------------------------------------------------
CAUTION: keep the root key secret and do not use on an online PC.
-
The
Root Key
is all you need to access the bitcoin in all addresses of the wallet, except any imported addresses. Be sure that you have a paper copy of theRoot Key
- KEEP IT SAFE!.
The Armory wallet Root Key
is the one stored on your paper backup
[ OFFLINE PC ]
-
Open the
.html
file that you saved from from https://brainwalletx.github.io with a web browser. See Offline PC setup below. -
Select
Chains
. SelectGeneration Method
asArmory
. -
Type or paste your
Root Key
into thePaper Backup
field. You should see the other fields update. -
Select
Wallet Format
asCSV
. -
Below in
Chain
you will see the first 10 addresses and private keys for the wallet, e.g:| Address | Private Key 1, "19M4vKEB53xbLhrgbnR9kFaAHQQ2325Gzm", "5Jim41weU9weqrZZnbF5bvn1Xx585uK2biFN4eq8oMD6UkopVBi" 2, "1DkaYhLHygTt29vqxdhvdh9gifsqoENae2", "5Hu8rGTy3mW5JMSCL6QTA5KAW6kD5PsXUQYn3RkkdpTTCdsrhq8" 3, "1E1XbVwMcgdjuyDMQh1o98F9YgHy1hPYMU", "5JJCfCWzqc2gYDkKwYggc8m6NJWbo7MgXetKp1WMybpN3wnZ1Mv" 4, "1C2ZgrkSTguf2awWZRf3NvC4a46V7sckeZ", "5Kj6Wi22PEufWGuR9LZAK9MoUWZcrcFbavhGorsurg77eK5gBey" 5, "1JiNkgnkmrqAJ2YrrBa11KsBMEfjGNtpEG", "5JoFWoE4aTtaXW2d3XikevQaBruzWUs81SJga3wXoqHVqpTMTUs" 6, "1s7hP3RyE6MatNxxaj5xN7fMyrQeDqk2m", "5Jxm27EWCpa5JzDwXGscSJXiVSPFWLc7ibZcALwsmYsZSL78hWr" 7, "1KzQkypw24QNgFf9t3q4HZLZtioR4Uf9T7", "5KkCunRN6KLxM5Li8rYQmcBcJZQdCQjC7AevZbEDg6yPWuXSoPP" 8, "1CcpLdrsdfkD2gQcZyHJomT8vnwXjKDyoJ", "5J6omKWRChFCGYUyL3DYcEXc31mKipncDzgDRgTCUCsEzqwNKbD" 9, "1HNKftQEkSDMyYVYv48NbEiUZkd34prFut", "5KSuArCYhfnCijQ6X5uy7ms1K8Up1XXwcxQuiX229pmTeaDTYBF" 10, "18zdaDMQEP42ea6vN3ojQZafD4BSJQ2rGK", "5KipHvcSEwix3uZAw3Fm9roAwcJJ7uPR6MvNP8FnXtsHH1jEccy"
CAUTION: keep the private keys secret and do not use on an online PC.
-
If you want to lookup the value an address copy it to your online PC and search for it on https://blockchain.info/. Do not expose your private keys to the online PC.
-
To see more addresses increase the value in
Primary Addresses
.
Unfortunately, if you previously used the wallet a lot and generated a large number of addresses then this method, although it will work, is going to be very time consuming. At present I'm not aware of an easy way to do this other than setting up a full Armory online/offline system.
In the unusual situation that you don't happen to have the address for a private key it is easy to derive it from the private key.
[ OFFLINE PC ]
- Open the
.html
file that you saved from from https://brainwalletx.github.io with a web browser.See Offline PC setup below. - Select
Generator
. SelectGet Address From
asPrivate Key
. - Paste the private key into
Private Key
textbox. You may have to clickToggle Key
to make it visible. - Now
Address
should show the wallet address.
[ online PC ]
-
On an online PC open: https://brainwalletx.github.io in your browser.
-
Select
Transactions
. SelectBuild Transaction From
asPrivate Key
. -
Paste the address into
Source Address
(e.g.:19M4vKEB53xbLhrgbnR9kFaAHQQ2325Gzm
). Then clickOK
on the popup asking to download the transaction history. TheBTC
should show the bitcoins currently in that address. If get a popup sayingNo free outputs to spend
, there are no bitcoin in that address to send. -
Click
Edit History
. SelectUse History From
asBlockChain Info
. -
If the address contains bitcoin,
Transaction History
should show JSON, e.g.:{ "unspent_outputs": [ { "tx_hash": "684462171be1baf98c968458aa2ada2603fee1424ebd89487b058a3e5fa915e9", "tx_hash_big_endian": "e915a95f3e8a04bb4889bd4e42e1f313267a2aaa5894968cf9bae11b17624568", "tx_index": 237208244, "tx_output_n": 1, "script": "76a91441c46612a4c71b6c4463e7df1dc19175c9ab95f087ac", "value": 2173722, "value_hex": "212b1a", "confirmations": 51 } ] }
-
Copy the
Transaction History
and the destination address to your offline PC.
[ OFFLINE PC ]
- Open the
.html
file that you saved from from https://brainwalletx.github.io with a web browser, see Offline PC setup. - Select
Transactions
. SelectBuild Transaction From
asPrivate Key
. - Click
Edit History
. SelectUse History From
asBlockChain Info
. - Paste the
Transaction History
JSON into the textbox. - Paste the
Private Key
for the address into the text box above (e.g.:5Jim41weU9weqrZZnbF5bvn1Xx585uK2biFN4eq8oMD6UkopVBi
). - The
Source Address
should show the address you used to lookup the transaction history, andBTC
should show the available balance. - Paste the
Destination Address
into the text box, and enter the amount of bitcoin you wish to send inBTC
. JSON Transaction
andRAW Transaction
below should now be populated.- Scroll down and enter the miner
Fee
.
- If it is too small, the miners may take a long time, or forever, before they process the transaction. Thus, you need to determine an appropriate fee for the transaction. The fees vary from time to time. There are some online services that can help you determine the correct fee, e.g.: https://bitcoinfees.21.co/.
JSON Transaction
shows the transaction"size": ???
.
- Review and double check that everything is as it should be.
- Copy
Raw Transaction
to your online PC.
[ online PC ]
If you first want to verify that you have copied the transaction correctly:
- On an online PC open: https://blockchain.info/decode-tx in your browser.
- Paste the
Raw Transaction
into the textbox and clickSubmit Transaction
. - Verify that the JSON output is the same as
JSON Transaction
on your OFFLINE PC.
Now, to send the transaction to the network:
- On an online PC open: https://blockchain.info/pushtx in your browser.
- Paste the
Raw Transaction
into the textbox and clickSubmit Transaction
. - Then lookup the address on https://blockchain.info/ to watch the status of the transaction.
To ensure that no malicious software can steal the secret parts of your wallets and addresses it is important to perform some operations on a PC that does not have any connection to the outside world, and never will.
This includes moving any storage medium from an offline PC to an online PC. There could be some malicious software on your offline PC writing your private keys to the inserted removable media. Other techniques to copy data to and from your online PC can be used, including QR Codes. However, in this exercise I just used a USB stick and trusted that my offline PC would not write any secret information to the stick.
There are various ways to achieve an offline PC, do your research. This guide may require you to have the following installed on your offline PC:
- Brainwallet tool:
- On an online PC open: https://brainwalletx.github.io in your browser.
- Save the page to a USB disk with
File
->Save Page As ...
, and copy it onto your OFFLINE PC, be sure to copy both the.html
file the simlarly named folder.
- Armory:
To decode Armory
.wallet
files,SecurePrint
or fragmented paper backups, the easiest method I've foud so far is just to use the application.
- On an online PC download Armory.
- Copy it onto your OFLINE PC and install it there.