I would like to save some of my bitcoins on a piece of paper with QR code printed on it. What would be the easiest way to do it without using Mt Gox. or similar. Just bitcoins (I'm not afraid of some programming if it's needed).


8 Answers 8


Currently the most popular method is to use something like pywallet to export your public/private keys and simply generate a text QR code for them. Typically separate QR codes are generated for the public key and private key so that one code may be used to receive payment without giving away the private key which allows spending from the account. There are some alternatives, however, depending on your paper wallet needs.

Casascius' Bitcoin Address Tool is an excellent way of saving bitcoins in an easy to recover format. Though it doesn't yet support QR codes it does have the ability to generate a paper wallet from any passphrase. Once generated you could store the public and private keys as QR codes using any of a number of applications or online generators. Additionally, you could store the passphrase in a QR code and use it to recover your addresses at any time.

I specifically suggest this as opposed to simply exporting keys with pywallet and QR-ing them because this method would let you store more than one wallet address using a single QR code since any passphrase can generate up to 999 addresses deterministically in such a manner. Of course having a simple public key in QR code form also lets you scan the address with a smartphone or computer to send coins, so ultimately the solution depends on your usage.

  • 2
    The short version of the underlying mechanism is this: You generate a random string of characters. You use the hash of those characters as the private key. You send the coins to the corresponding account address (hash of the corresponding private key). You print the string of characters on the paper. Commented Sep 15, 2011 at 21:52
  • 1
    Exactly. You could certainly print the string of characters on the paper in plaintext but I recommend also having a QR code - by doing BOTH you ensure that you have a computer-readable value for convenience but should the QR code become too degraded to scan, the text may still be readable by the human eye - especially if you use a passphrase instead of a bunch of random characters since even whole words obliterated may still be recoverable from a passphrase. Commented Sep 15, 2011 at 21:56
  • 2
    @KristofferNolgren for any given string of characters x, there is a hash sha256(x) which almost certainly represents a valid private key, so yes you can select basically any string of characters, though you should treat that string like the world's most secure password since anyone guessing it gains access to your Bitcoin account. The functionality to generate a keypair in such a way is not built into the standard client but it can be done with the tools mentioned above, specifically Casascius' bitcoin Address Tool. Commented Jun 5, 2012 at 15:33
  • 1
    A cool but somewhat foolish idea is actually to use a poem etc as your key-string. If you use two of them, the password strength is probably strong enough. Also you don't have to keep any written records... Low tech security is often underlooked, specialy by us techy people... Commented Jun 5, 2012 at 15:41
  • 2
    I've decided to write my key on a enchanted staff and hide it in various parts throughout the northern wildlands... Commented Jun 5, 2012 at 19:15

Use bitaddress.org. It is a single HTML file so you can save it and generate addresses offline for extra security.


For a PDF wallet give StrongCoin.com a try. The PDF wallet will have your private keys encrypted (AES 256bit) with a pass-phrase you supply.

The encryption is done with JavaScript on the client side so your private keys are not exposed to the servers.


My favorite method:

  • grab out a old/unused pc/mac
  • install a linux over usb (maybe Talis) (make sure your USB stick is clean!)
  • download a recent version of bitcoin-core (check hash, verify gitian signatures)
  • copy bitcoin-core over usb to your offline machine
  • start ./bitcoind
  • ./bitcoin-cli getnewaddress (gives you a new public key)
  • ./bitcoin-cli dumpprivatekey (gives you the corresponding private key)
  • print or write down both strings (address can be recreated from private key, but print it anyhow)
  • verify the printed or written down strings
  • try to delete printers cache (power off, reset)

Now you could delete/format the pc/mac. But maybe it's worth keeping your new offline computer to generate new addresses or sign transaction in a "cold space/wallet".

  • I have tried to print a paper wallet before, but after print came out. No QR code is printed on it. QR code boxes of both public and private keys are blank. Commented Jun 21, 2015 at 11:13
  • Better use WIF private keys instead of a QR Code. Commented Jun 21, 2015 at 14:15
  • Can you do the 12 words type key back up using this?
    – dibs
    Commented Sep 8, 2016 at 22:19
  • I think this is highly inadvisable. Unless you really know what you're doing, this will cause you to lose money through change addresses not being part of your paper wallet. Commented Nov 11, 2020 at 20:43

An alternative is to buy BitBills or something similar. That is much safer (because the key is not visible unless you break the bill) and can also be used as "cash" (you can give it to someone).


You don't want to "save" an existing address as a paper wallet, and instead you want to create (securely) an address (e.g., using BitAddress) and then make a payment that spends your coins to that address.


I read all of your answers, and I couldn't help wondering... whats wrong with writing down the actual private keys on a piece of paper?

What I did was following: I ran listunspent in the console first, to obtain the list of addresses worth safeguarding. Then I ran dumpprivkey for each and every address. I printed out what I got... did I do anything wrong?

To optimize the whole process, I could do a payment to myself to a fresh address of mine, to transfer everything I got to that address. After necessary confirmations, listunspent would retrieve only one address, wouldn't it?

Call it a poor man paper wallet, but this is pretty simple and straightforward, isn't it?

  • What's wrong is that if you make a mistake you won't be able to spend your coins. What's even worse is that you won't learn you made a mistake until you go to spend your coins i.e. in the distant future. So in the meantime you'll be living your life and spending money with this mistaken belief that you have this stash of coins saved up that you can use should you ever need to.
    – Abdussamad
    Commented Dec 4, 2013 at 13:16
  • What possible mistake I can do? Commented Dec 4, 2013 at 13:35
  • If you copy a character or two incorrectly for example. There are like 50+ characters in a privkey and if you make a mistake and get one or two wrong it is basically useless.
    – Abdussamad
    Commented Dec 4, 2013 at 18:10

Bitcoin Armoury is the best thing out there for this.

enter image description here

  • What you want to do is create a new wallet with armoury, create a receiving address and send your BTC there.
  • The best thing is you do not need to even be connected to the network, synchronized or anything. Armoury can run offline in the dungeons far underneath the earth (like your cellar :) )
  • You then create a paper backup and print it out 2 or three times. Go and store it in your bank, in your important documents and at your mums house.
  • Delete armoury. (Yes, but make sure you have your paper backups stored safely!)

Your coins will hang in limbo (on the network) without any transaction history or block chain tracking. COmpletely anonymous and unclaimed.

Now- You might feel like you just threw your coins into thin air and have this uneasy feeling of you will never get your coins back! I know I did. So this is what I did.

I followed the whole process I mentioned above. Created a test wallet. Went to another computer somewhere else and did the same, except I imported the wallet from the paper backup. SYnchronised to the bitcoin network. Viola - The coins appeared in the transaction blocks and in my wallet ready to spend

  • It is also good for managing many online wallets at the same time. One for savings, possibly donations from your websites or blogs, and a personal one, and even offline unsynchronized for the long term anonymous storing of coins.

As long as the bitcoin network will be running you will never lose offline transactions. Just make sure to keep your paper backup in atleast 3 secure seperate place- and no. Do not store it on picasa albums or gdrive.. keep it offline in a bank, locker and at your nans house under the bed, laminate it, put it in a box and bury it in your back yard next to the tree house.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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