Author

Topic: Self-Made Offline Paper Wallets Using LaTeX (Read 6886 times)

sr. member
Activity: 345
Merit: 250
December 29, 2013, 07:46:12 AM
#13
***UPDATE***
Now with BIP 38 support for BTC addresses
sr. member
Activity: 345
Merit: 250
Added a rudimentary version for XPM.

Note so many bill styles are available as of yet. If you have some idea or layout I would be glad to add it.

BTC:   git clone https://github.com/xeroc/LaTeX-PaperWallet.git -b btc
XPM:  git clone https://github.com/xeroc/LaTeX-PaperWallet.git -b xpm
full member
Activity: 168
Merit: 100
Oh this is cool! I will definitely check this out!
sr. member
Activity: 345
Merit: 250
Hey there ... I'd like to include some LTC paper-wallets ... anyone with some sources to (CC) paper wallet layouts ic can include?
sr. member
Activity: 345
Merit: 250
2 threads below this one:
https://bitcointalksearch.org/topic/bounty-closed-open-source-cc-paper-wallet-kit-for-safe-offline-coin-storage-155847

https://github.com/openpaperwallet/openpaperwallet

You might get in contact with them, they have nice designs but I have yet to see an easy to use application that generates their printing layouts. Vanitymining might be the cherry on top!
did it. Any more good ideas are very welcome :-)
sr. member
Activity: 345
Merit: 250
The file is gone...

That was because pdf file should be deleted after printing (of course)
The old example is still there:
https://github.com/xeroc/LaTeX-PaperWallet/raw/e0728cb5cd314c2c1051bf0d26bb50a1bdfa5c2c/paperWallet.pdf
sr. member
Activity: 252
Merit: 250
legendary
Activity: 2618
Merit: 1007
2 threads below this one:
https://bitcointalksearch.org/topic/bounty-closed-open-source-cc-paper-wallet-kit-for-safe-offline-coin-storage-155847

https://github.com/openpaperwallet/openpaperwallet

You might get in contact with them, they have nice designs but I have yet to see an easy to use application that generates their printing layouts. Vanitymining might be the cherry on top!
sr. member
Activity: 345
Merit: 250
Actually extracting existing keys from bitcoind is an interesting idea, I'd recommend to rather go the vanity trail though.
Yep .. Think so too.

But, i have a script to load generate new addresses .. fill them with 1btc each and then extract them to print on a paperwallet. That was my intention.

There are some open templates for paper wallets (with single keys), maybe you can use some of these as well?
You have a link?
It'l be very easy to install multiple different layouts and let the user select
legendary
Activity: 2618
Merit: 1007
Actually extracting existing keys from bitcoind is an interesting idea, I'd recommend to rather go the vanity trail though.

There are some open templates for paper wallets (with single keys), maybe you can use some of these as well?
sr. member
Activity: 345
Merit: 250
Kind of niche but I like the ethos and simplicity ... very small dependency basis to get done what needs doing ... and all Open Source if I'm not mistaken?
yep .. all open source.
I may be able to enhance some steps to further reduce dependencies.

python libs requests and json are need to fetch the current balance from blockchain.info .. I could do that using bitcoin-rpc aswell.
legendary
Activity: 3920
Merit: 2349
Eadem mutata resurgo
Kind of niche but I like the ethos and simplicity ... very small dependency basis to get done what needs doing ... and all Open Source if I'm not mistaken?
sr. member
Activity: 345
Merit: 250
Hey there,

i recently started a small project to secure some of my coins in offline paper wallets.
I'd appreciate any comments.
Requirements:
  • LaTeX distribution such as TexLive or MikTex
  • LaTeX Packages
    • tikz
    • pst-barcode
    • auto-pst-pdf
    • csvtools
    • coolstr
  • 1_createEmptyPaperWallets:
    • vanitygen
  • 1_createNewWalletsAndMoveCoins **and** 1_importExistingWallets:
    • Python libraries:
      • bitcoinrpc
      • json
      • subprocess
      • pprint

Code:
https://github.com/xeroc/LaTeX-PaperWallet

Resulting PDFs:
https://github.com/xeroc/LaTeX-PaperWallet/tree/master/examples


Thanks
to the great guys from openpaperwallet (https://github.com/openpaperwallet/openpaperwallet) who designed the notes under CC


This tool lets your generate PDF paperwallet for arbitrary altcoins
using QR-Codes for fast access to the address and the private key.




Howto Create PaperWallet
  • Store address and privkey in csv file
       You may select one of three options to generate you wallet.csv file with
       private keys in it. Read the header of the files to adjust the settings to
       your needs.
    • 1_createEmptyPaperWallets**:
              to create new empty wallets using vanitygen
              press ***Ctrl+C*** when You have enough
    • 1_createNewWalletsAndMoveCoins**:
              to create new wallets using the bitcoin daemons and move coins accoring to the settings in that file
         
    • 1_importExistingWallets**:
              load existing wallets from deamons using 'listaddressgroupings'
         
  • Uncomment _ONE_ note layout input line in 'paperWallet.tex' (line 41-48)
  • Generate the PDF
       
Code:
$ ./2_generatePDF.sh
  • Print
  • Cleanup:
Code:
$./3_shredAndCleanup.sh
  • Donate to xeroc, vanitygen, charity ...

Donations are welcome
Thank you for every donation.

Code:
BTC: 1XeRocJ6PRUX419QQo9crW5nbsjetJLUn
XPM: AXeRocF9m3VX3P5TAfGiDq6hSSqWG5r6nd
LTC: LXeRoc6FVG3eswpuA4CJxjqMWc7Aq5sNnp
PPC: PXeRocjAG8W2bBPxZPRPBn5yErg3mRx8Gx 
PTS: PkXeRocDnRSkHzuTbQdqYWRQ8QqmjwrdyY
NMC: MxerocLbhWEKELr2DAjXzUwAWRop2nsSZJ


Example python-config for Protoshares
Code:
altcoins = [ 
          {
           'name'            : 'Protoshares',    # Name of the coin
           'unit'            : 'PTS'             # Unit name of that coin
           'rpcuser'         : 'protosharesrpc', # connections settings -- daemon must be running
           'rpcpassword'     : 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxg',
           'rpchost'         : 'localhost',      # local daemon running
           'rpcport'         : 3838,             # local port                                                                           
           'daemonName'      : 'protoshared',    # daemon name to dump privkeys
           'passphrase'      : '',               # optional passphrase
           'numberAddresses' : 1,                # number of adresses to generate (are stored in deamon)
           'coinsPerAddress' : 1,                # coins to transfer to each new address
           'fromWallet'      : '',               # send from wallet X
           'walletName'      : 'PaperWallet',    # create new addreses in a new wallet
          },
]

Example wallet.dat for Protoshares
Code:
Coin;Unit;Address;PrivKey;Balance;
Protoshares;PTS;PkXeRocDnRSkHzuTbQdqYWRQ8QqmjwrdyY;52dh54uzsdg4zfhsasdg5use4fhdfhsdsdgsdgh446HDFhfdRveL2KnCiYtNkF;1.000000

Jump to: