Skip to content
This repository has been archived by the owner on Feb 22, 2024. It is now read-only.
/ paperwallet-d Public archive

A cryptocurrency paper wallet generator written in D.

Notifications You must be signed in to change notification settings

IoTone/paperwallet-d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

Overview

paperwallet-d is a cryptocurrency paper wallet generator written in D. It is intended to easily support multiple currencies, as there currently are no multi-currency paper wallet generators out there. Also, a key goal is to make sure this code is secure and reviewed so that it can be trusted for the sensitive nature of creating a secure way to store crytpocurrency.

This project is blocked, pending work moving forward on https://github.com/IoTone/d-ethereum . We found that without a decent ethereum client written in D under reasonable license, we'd have to spend a huge amount of time first writing new bindings from scratch. We have switched efforts to writing a new blockchain in D. If you'd like to discuss this or anything else related to D and blockchain, please join the discussion: https://gitter.im/blockchain-d/Lobby

References

Design

We like the original design of the ethereum paper wallet. It is broken up into the following packages:

  • QRCode generator (relies on com.google.zxing)
  • File Utility (could be dropped or do something similar to Apache File utils)
  • HTML Utility (generates the wallet in HTML)
  • Paper Wallet Utility (constructs the Ethereum client pieces needed as input into the HTML Utility)
  • Passphrase Utility (Some passphrase specific handling)
  • Wallet Page Utility (Brings together all of the elements to generate the wallet)
  • Application (main entry point)

What we don't like:

  • generating HTML from Java. Programmers are great at code. Designers are not. It is a very challenging approach to use to not use a templating language to spit out HTML. It's much easier to use a templating engine to spit out HTML. This allows us to work with real desigers who don't "do" code.
  • the web3j library is used heavily. However, it does a huge lift in terms of effort to handle Ethereum transactions and protocol related items. We can't easily incorporate web3j as an ETH client library, however we can use ethereum-cpp as a starting point and wrap them for D.

TODO

General Notes

Conceptually we have a good grasp of the project. I already did some pull requests on the original paperwallet for Ethereum. What is difficult is there is no existing code base in D for Web4j (Ethereum client). This is a ton of work. I don't know anyone who wants to tackle this or who has time. The QR Code generator seems more reasonable, however, we still need to implement a rasterizer to generate the bytes, presumably this can be done through some bytes to PNG converter.

About

A cryptocurrency paper wallet generator written in D.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages