Difference between revisions of "Paper wallet"

From Bitcoin Wiki
Jump to: navigation, search
(Producing safe paper wallets: Browsers don't guarantee true random, do they?)
(Redeeming Keys: Clean up a lot of redundancy)
Line 19: Line 19:
 
==Redeeming Keys==
 
==Redeeming Keys==
  
There are various methods for copying the private key data from a paper wallet to other wallets. [[BlockChain.info]] and [[Armory]] can import them directly into wallets. [[MtGox|Mt. Gox]] provides the ability to Add Funds using a private key.  The exchange will then create a "sweep" transaction that spends any amount for that paper wallet address so that the amount is added to your account with them.  They will also sweep to your account any bitcoins received to that address in the future as well.
+
There are various methods for copying the private key data from a paper wallet to other wallets.
 
+
bitcoind supports an "importprivkey" RPC method for this purpose.
Those running the Bitcoin.org ("Satoshi") client can import paper wallet addresses using the [[Pywallet]] utility.  Other [[:Category:Clients|clients]] may allow this as well, including the Javascript-based wallet called My Wallet from [[BlockChain.info]] which can import Bitcoin private keys as well.
+
Bitcoin-Qt's debug console can also be used in a similar way (see also [[how to import private keys v7+]]).
 
+
[[BlockChain.info]] and [[Armory]] can also import them directly into wallets.
Since 0.6.0, key import/export are available in the client itself, you can use is via RPC. The commands are ''dumpprivkey'' and ''importprivkey''. For encrypted wallet, you need to use ''walletpassphrase'' to decrypt temporarily in memory before importing or exporting. Note that bitcoind will rescan the block data when importing each key now, this process takes about one minute or two, depending on your CPU performance. See [[How to import private keys]] for more info.
+
[[MtGox|Mt. Gox]] provides the ability to Add Funds using a private key:
 +
the exchange will then create a "sweep" transaction that spends any amount for that paper wallet address so that the amount is added to your account with them; it will also sweep to your account any bitcoins received to that address in the future as well.
  
 
==See Also==
 
==See Also==

Revision as of 10:22, 2 January 2013

A paper wallet is a way to store Bitcoins that involves printing the Bitcoin addresses and private keys directly on a piece of paper. When done properly, paper wallets are one of the safest ways possible to store Bitcoins.

A Bitcoin private key can be represented in several formats, but is typically a string of numbers and letters no more than about 51 characters in length. This is easy to print on paper, and if kept secret, can securely hold an unlimited quantity of Bitcoins.

Producing safe paper wallets

Several tools exist for producing paper wallets, including vanitygen, LinuxCoin, and Bitcoin Address Utility. Paper wallets must be produced securely in order to be safe, because any leak of the private key constitutes the ability for an attacker to steal any present and future balance of the address. Consider the following:

  • Paper wallets should be produced on a computer not connected to the Internet.
  • Be aware that malware often allows a remote third party to view your screen and see your keystrokes, and these can compromise the integrity of your paper wallet. Also consider that antivirus software cannot completely rule out the possibility of malware. However, using bootable CD's prevents the vast majority of malware from being able to run. If you can generate a paper wallet with a bootable CD such as LinuxCoin, the likelihood of malware being able to compromise your keys is very low.
  • The private keys of paper wallets should never be saved to a computer hard drive. You should also never scan your paper wallet into your computer or type the private keys or save them in e-mail, except at the moment you are redeeming the balance.
  • A web-based paper wallet generator should be written so that all of the generation happens on your computer, not the web server. After you load the paper wallet generating website in your web browser, you should disconnect from the internet, and observe that the paper wallet generator continues to function. Afterward, you should close your browser before reconnecting to the internet.
  • A paper wallet generator should use an appropriate source of random numbers (entropy). This means that the generated addresses aren't predictable. If the addresses come from a predictable or partially-predictable pattern, someone else who can predict the pattern addresses can steal the balance. Generally, this rules out any "web-based" generator unless you know the technical capabilities of the browser it's running in and audit the code.

Printer Security

Some printers will store the output using storage in which the data can be recovered from the printer's memory or from a hard drive (if the printer has one) and stores its print jobs there. Most larger commercial printers have hard drives but whether or not documents are stored on them will vary based on manufacturer and model.

Redeeming Keys

There are various methods for copying the private key data from a paper wallet to other wallets. bitcoind supports an "importprivkey" RPC method for this purpose. Bitcoin-Qt's debug console can also be used in a similar way (see also how to import private keys v7+). BlockChain.info and Armory can also import them directly into wallets. Mt. Gox provides the ability to Add Funds using a private key: the exchange will then create a "sweep" transaction that spends any amount for that paper wallet address so that the amount is added to your account with them; it will also sweep to your account any bitcoins received to that address in the future as well.

See Also