I have recently created a paper wallet using the tool at bitaddress.org.

Now I will soon be transferring a large sum of money to the paper wallet, however before I do so I would like to be sure that the private key that has been generated is in fact valid for my bitcoin address.

I have been told that once some money is transferred away from a paper wallet, the paper wallet is no longer true "cold storage" and thus transfers from paper wallets should be "all or nothing". This prevents me from doing a test transfer to ensure the private key is valid.

How else may I test the compatibility of my private key with the bitcoin address to ensure that I will be able to access my coins at a later point in time.


Checking the validity of a private key is a really compute-intensive task to do by yourself, but you can do this without actually using the private key to send coins (so no need to do it using pen and paper).

On the bitaddress.org website the Wallet Details tab lets you enter the private key and after clicking View details your bitcoin address should be showed in either Bitcoin Address Compressed or Bitcoin Address field.

But of course, you should not give away your private key, especially not online.

The site is actually an all-in-one HTML page, that is it can be downloaded as one file and it will work offline as it does every calculation in your browser window (no data you entered will be sent to the server). You can save to your computer (Ctrl-S in your browser) and open it in your browser without Internet connection.

I'd suggest to do the check at least in a private browsing window, or a live system (keep reading).

If you would like to do an independent check, use a Bitcoin Core client and create a new empty wallet (if you have it running, shut it down, move the wallet.dat somewhere else and start it again), go offline (disconnect your machine from the Internet, you will not need synchronization anyways) and try to import the key as it is described in this question. The client will check the private key, if that's invalid then an error will be reported (I changed a character, it reported Invalid private key encoding (code -5)). After this you can close the debug window and check your Bitcoin addresses in File >> Receiving addresses. After this, shut down your client and delete the wallet.dat. If you have moved the wallet.dat move it back now and keep using that.

Of course using this method writes your private key to the HDD/SSD of your machine, therefore even after deleting the wallet it is likely to be recovered using forensic/data recovery tools. If you'd like to avoid this you will need to use a disposable system, like a live OS that retains no data.

You can for example download Ubuntu and put it on a pendrive then boot from it, by default it will not save anything you do. You can also download the client from the Bitcoin Core download page (choose "Linux (tgz) 64 bit"), save it to the pendrive using your regular OS and then when you boot the Ubuntu you can simply extract it to the Desktop and run from there, all offline.

If you'd want to be even more careful then before booting the Ubuntu you should disconnect all other drives from your machine, leaving only the pendrive connected. Also, after using the Ubuntu and returning to your regular OS search for a method to securely wipe your pendrive and do that.

And another step would be a computer dedicated solely for this purpose, for example a Raspberry PI. Download a base image, put it on an SD card, copy the saved bitaddress webpage beside then connect a display, a mouse and a keyboard and power it on. The Bitcoin Core client has no official binary release for this platform but you can build it from source if you're adventurous enough.

  • When I download the bitaddress page and enter the private key, it doesn't generate anything under address. Does that method still work? (using firefox private browsing) – Bassie Dec 7 '17 at 11:41
  • @Bassie: just checked it and worsk for me. I opened the page, saved (ctrl-s), started a private window, opened the file, moved the cursor to generate some randomness, clicked "Wallet Details", entered a private key, clicked "View Details". Hope this helps. – Gábor Héja Dec 8 '17 at 14:19
  • 1
    I am doing the exact same thing, but the page is totally unresponsive when opening it from my pc. Also seeing these errors in the console ReferenceError: ninja is not defined and lots of SyntaxError: missing ; before statement all of the shop. It works totally fine when accessing bitaddress.org though... Does the same in chrome and FF... I don't get it – Bassie Dec 9 '17 at 10:49
  • That's really odd. Maybe saving the page in your browser alters the page in some way, try to download the ZIP version (link at the bottom of the webpage) and open the HTML from that. – Gábor Héja Dec 12 '17 at 12:32

Use bitcoinpaperwallet.com

  • Take proper security precautions, like downloading the page source, verifying it, using a computer disconnected from the internet, etc.
  • Using your offline copy of the Bitcoin Paper Wallet Generator page, when you go to generate a wallet to print it out, go to the "Validate or Decrypt" tab.
  • Enter a private key, and it will display the corresponding public wallet address and QR code. It accepts several different formats including WIF, BIP38, and brain wallet.

A better way nowadays, secure and faster one on windows computer is using the offline tool https://bitaddressoffline.org which is open source and more secure than browsers.

It simply generates your private and public key pair offline and does not store any data.

This is the best way to store your Bitcoins and generate a paper wallet today on windows computers.

  • 1
    I downvoted. I think this is terrible advice. People should be using well-reviewed wallet software, and if they want paper wallets, use wallet software that supports that. – Pieter Wuille Feb 25 at 18:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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