B.A.G. Bitcoin Advocacy Group

BTC Dice

Video | How to Roll dice 256 times

Video on how to roll dice 256 times and create a private key without a computer nor the Internet.

Blockchain.info Paper Wallet Tutorial

Practical Paper Wallets Tutorial using bitaddress.org and the blockchain android app.

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.
bitcoin wiki

Paper Wallet Advantages

Protection from malware and keyloggers.
Maintain 100% ownership of your private keys. You own the coins not a 3rd party service.
No dependence on the security of any website.
Keeping a piece of paper safe is easier than keeping your computer secure.

Paper Wallet Disadvantages
The paper contains everything needed to spend the coins and must be kept physically secure.

In this tutorial we are going to use bitaddress.org and the blockchain.info android app to emphasize the fact your are not dependant on any website. However if you would prefer to use the My Wallet web interface please use this tutorial instead.

BitAddress.org Cold Wallet Generator


Open Source JavaScript Client-Side Bitcoin Wallet Generator.

Single Wallet
Paper Wallet
Bulk Wallet
Brain Wallet
Vanity Wallet
Split Wallet
Wallet Details

A Bitcoin wallet is as simple as a single pairing of a Bitcoin address with its corresponding Bitcoin private key. Such a wallet has been generated for you in your web browser and is displayed above.

To safeguard this wallet you must print or otherwise record the Bitcoin address and private key. It is important to make a backup copy of the private key and store it in a safe location. This site does not have knowledge of your private key. If you are familiar with PGP you can download this all-in-one HTML page and check that you have an authentic version from the author of this site by matching the SHA256 hash of this HTML with the SHA256 hash available in the signed version history document linked on the footer of this site. If you leave/refresh the site or press the "Generate New Address" button then a new private key will be generated and the previously displayed private key will not be retrievable. Your Bitcoin private key should be kept a secret. Whomever you share the private key with has access to spend all the bitcoins associated with that address. If you print your wallet then store it in a zip lock bag to keep it safe from water. Treat a paper wallet like cash.

Add funds to this wallet by instructing others to send bitcoins to your Bitcoin address.

Check your balance by going to blockchain.info or blockexplorer.com and entering your Bitcoin address.

Spend your bitcoins by going to blockchain.info and sweep the full balance of your private key into your account at their website. You can also spend your funds by downloading one of the popular bitcoin p2p clients and importing your private key to the p2p client wallet. Keep in mind when you import your single key to a bitcoin p2p client and spend funds your key will be bundled with other private keys in the p2p client wallet. When you perform a transaction your change will be sent to another bitcoin address within the p2p client wallet. You must then backup the p2p client wallet and keep it safe as your remaining bitcoins will be stored there. Satoshi advised that one should never delete a wallet.
Hide Art? Addresses to generate:
BIP38 Encrypt? Passphrase: Addresses per page:
Start index: Rows to generate: Compressed addresses?
Comma Separated Values: Index,Address,Private Key (WIF)
Why should I use a Bulk Wallet to accept bitcoins on my website?
The traditional approach to accepting bitcoins on your website requires that you install the official bitcoin client daemon ("bitcoind"). Many website hosting packages don't support installing the bitcoin daemon. Also, running the bitcoin daemon on your web server means your private keys are hosted on the server and could get stolen if your web server is hacked. When using a Bulk Wallet you can upload only the bitcoin addresses and not the private keys to your web server. Then you don't have to worry about your bitcoin wallet being stolen if your web server is hacked.
How do I use a Bulk Wallet to accept bitcoins on my website?

Use the Bulk Wallet tab to pre-generate a large number of bitcoin addresses (10,000+). Copy and paste the generated comma separated values (CSV) list to a secure text file on your computer. Backup the file you just created to a secure location.
Import the bitcoin addresses into a database table on your web server. (Don't put the wallet/private keys on your web server, otherwise you risk hackers stealing your coins. Just the bitcoin addresses as they will be shown to customers.)
Provide an option on your website's shopping cart for your customer to pay in Bitcoin. When the customer chooses to pay in Bitcoin you will then display one of the addresses from your database to the customer as his "payment address" and save it with his shopping cart order.
You now need to be notified when the payment arrives. Google "bitcoin payment notification" and subscribe to at least one bitcoin payment notification service. There are various services that will notify you via Web Services, API, SMS, Email, etc. Once you receive this notification, which could be programmatically automated, you can process the customer's order. To manually check if a payment has arrived you can use Block Explorer. Replace THEADDRESSGOESHERE with the bitcoin address you are checking. It could take between 10 minutes to one hour for the transaction to be confirmed.


Unconfirmed transactions can be viewed at: https://blockchain.info/
You should see the transaction there within 30 seconds.
Bitcoins will safely pile up on the block chain. Use the original wallet file you generated in step 1 to spend them.

Enter Passphrase: Show?
Confirm Passphrase: Algorithm: SHA256(passphrase)
Bitcoin Address:
Private Key (Wallet Import Format):
Step 1 - Generate your "Step1 Key Pair"
Step 1 Public Key:

Copy and paste the above into the Your-Part-Public-Key field in the Vanity Pool Website.
Step 1 Private Key:
Copy and paste the above Private Key field into a text file. Ideally save to an encrypted drive. You will need this to retrieve the Bitcoin Private Key once the Pool has found your prefix.
Step 2 - Calculate your Vanity Wallet
Enter Your Part Private Key (generated in Step 1 above and previously saved):
[NOTE: this input box can accept a public key or private key]
Enter Pool Part Private Key (from Vanity Pool):
[NOTE: this input box can accept a public key or private key]
Add Multiply
Vanity Bitcoin Address:
The above is your new address that should include your required prefix.
Vanity Public Key (HEX):
The above is the Public Key in hexadecimal format.
Vanity Private Key (WIF):
The above is the Private Key to load into your wallet.
Minimum share threshold needed to combine
Number of shares
Enter Available Shares (whitespace separated)

Combined Private Key
Enter Private Key
Key Formats: WIF, WIFC, HEX, B64, B6, MINI, BIP38
Enter BIP38 Passphrase
Your Bitcoin Private Key is a unique secret number that only you know. It can be encoded in a number of different formats. Below we show the Bitcoin Address and Public Key that corresponds to your Private Key as well as your Private Key in the most popular encoding formats (WIF, WIFC, HEX, B64).

Bitcoin v0.6+ stores public keys in compressed format. The client now also supports import and export of private keys with importprivkey/dumpprivkey. The format of the exported private key is determined by whether the address was generated in an old or new wallet.
Bitcoin Address
Bitcoin Address Compressed

Public Key (130 characters [0-9A-F]):
Public Key (compressed, 66 characters [0-9A-F]):
Private Key WIF
51 characters base58, starts with a '5'
Private Key WIF Compressed
52 characters base58, starts with a 'K' or 'L'

Private Key Hexadecimal Format (64 characters [0-9A-F]):
Private Key Base64 (44 characters):
How do I make a wallet using dice? What is B6?
An important part of creating a Bitcoin wallet is ensuring the random numbers used to create the wallet are truly random. Physical randomness is better than computer generated pseudo-randomness. The easiest way to generate physical randomness is with dice. To create a Bitcoin private key you only need one six sided die which you roll 99 times. Stopping each time to record the value of the die. When recording the values follow these rules: 1=1, 2=2, 3=3, 4=4, 5=5, 6=0. By doing this you are recording the big random number, your private key, in B6 or base 6 format. You can then enter the 99 character base 6 private key into the text field above and click View Details. You will then see the Bitcoin address associated with your private key. You should also make note of your private key in WIF format since it is more widely used.

✔ Good! Your browser can generate cryptographically random keys using window.crypto.getRandomValues
× Oh no! Your browser does NOT support window.crypto.getRandomValues. You should use a more modern browser with this generator to increase the security of the keys generated.
✔ Good! All synchronous unit tests passed.
× Oh no! Some synchronous unit tests DID NOT pass. You should find another browser to use with this generator.
✔ Good! You are running this generator from your local computer.

Tip: Double check you are offline by trying www.google.com

⚠ Think twice! You appear to be running this generator online from a live website. For valuable wallets it is recommended to download the zip file from GitHub and run this generator offline as a local html file.

... ... ... Donations: 1NiNja1bUmhSoTXozBRBEtR8LeF9TGbZBN GitHub Repository (zip)

Version History (2.9.11)

527B 5C82 B1F6 B2DB 72A0 ECBF 8749 7B91 6397 4F5A (PGP) (sig)

Copyright bitaddress.org. JavaScript copyrights are included in the source. No warranty.

Show your support!

Donate a few Bitz!


Spread the gospel!


Email*: First Name*:

Last Name*: