Note: this is a very old open source project I did when I discovered bitcoin
original readme:
Bitcoin Paper Key - using a thermal USB printer and a basic linux box (like a Rrasp. PI)
Paper Keys can be Paper Keychains (wallet HD) or are called also Paper Wallets
They can be used as Cold (safer) storage for bitcoins.
Multiple copies of a password protected key (BIP38) can be very a very useful to store funds safely offline.
Install dependencies:
-
Imagemagick (Ubuntu/Debian):
apt-get install imagemagick libmagickcore-dev libmagickwand-dev
-
Imagemagick (Mac OS):
brew install imagemagick
Install:
bundle
Run:
bunle exec rake
This section has been moved to:
This is a much standard install, It works on Debian and should work on ubuntu (some apt package names may change)
For users: Coming soon.
For "hackers" that want it now:
Open "OSX CUPS webpage":http://localhost:631, add your usb thermal printer as Generic printer, then go into the code and change all the lines where the output is piped directly to usb (as it's possible in linux) [/dev/usb/ldX] to cups commands (you need to write contents to a file and then issue the print command passing that file as argument)
Check the new cool project:
Using your smartphone and a pocket photo printer to print paper wallets!!!
using bip38 from bitcoin ruby gem to generate bip38 password protected paper wallets (private key starts with digit 6)
This repo contains all you need to run your bitcoin PaperBank! PaperBank is another way to say: cold storage paper wallet printer
- A Raspberry PI or similar mini and cheap linux box
- An USB Thermal Printer
- HDMI monitor, usb cable, usb power adapter (cellphone usb wall charger), sd card,
It's a DIY solution, you have to follow the installation procedures to install PaperBank on your Raspberry PI
Affordable: All for under ~ 60 USD
- Cold storage: because it remains offline
- Prints Paper wallets
and:
- Cheap! You can get everything (Rasp PI + Thermal printer + sd card + cables) for 60 bucks or so
- DIY
- Secure
You can then print wallets for yourself, or paper wallets where you deposit small amounts (ex: a buck or two) for friends that want to try bitcoin!
note: It doesn't provide a real banking "feature", just the generations of accounts (address/private key pairs), you have to apply phisical security measure to those wallets!
I will provide other generators support in the near future such as
- vanitygen
- HDW address generation
- another non bitcoin-ruby address generation lbrary
- a thermal printer that works with linux
the thermal printer I got (40USD or less)
rasp pi links:
- rasp pi
- cubieboard on aliexpress (should work the same, has better specs)
- olinuxino
put something inside the the LAN hole so no-one can accidentally connect an ethernet cable, a piece of sponge will do in most cases, a chewing gum is a bit extreme and not recommended if you want to use that ethernet port again :)
check also VANITY branch for vanity address implementations
- feature: Vanity address patch - add support for vanitygen [done by @makevoid - vanitgen branch - needs integration]
- feature: integration of other currencies [by @makevoid - Litecoin is in lite branch, Dogecoin is in doge branch + explanation on how to create a fork compatible with every currency]
- feature: BIP38 password protection - password protected private key
- bundle: docker image
- feature: add hardware button to rasp pi via GPIO
- feature: autolaunch everything, so you don't need an hdmi screen
- dependencies: try to remove imagemagick & rmagick requirements
- dependencies: remove bitcoin-ruby requirement by extracting code from it
- speed: printing speedup (manage memory more efficiently)
- speed: lower language optimizations
- why Paper Wallets?
They are very useful as cold storage, and there are many undiscovered usages of having btc in "banknotes" form.
You can print small banknotes (2mBTC - 20mBTC ~ 1 - 10 euro) and give it to your friends to let them try bitcoin.
You can have paper wallets with your funds
- why a thermal printer?
The ability to create fast and cheap paper wallets it's key. The thing is
- why Rasp - pi?
It's very cheap and widespread, you can use any linux box if you like, just remember to not connect it to the internet anymore
- why Mycelium is used in the video?
You can use whichever wallet you prefer, blockchain, coinbase [insert your favourite wallet here] I found mycelium to be pretty straightforward in terms of cold storage, for maximum security you should always sign transactions offline :)
- why Ruby?
It was very fast to implement and to tinker with, you can go and rewrite it in your own favourite language.