Open Source Secure Paper Wallet Generator
It uses random data from your mouse mixed with entropy from your OS to generate paper wallets.
The paper wallets provide a private key, a receiving address, and wallet words.
Wallet words are a mnemonic that represents the private key and can always be used to recover the private key.
Wallet words follow the BIP39 standard, and where available BIP44 BIP32 derivation paths are used to arrive at the private key, so they work in common wallets such as Electrum as well.
- BIP32 (https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)
- BIP39 (https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki)
- BIP44 (https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki)
These paper wallets can then be printed off, or written down on paper for safe keeping.
GeneratePaperWallet.com should also work locally through 'Save Page'. Note that the code here may be in the process of development, so it is best to stick to the site.
- BigInteger (some keys, http://peterolson.github.io/BigInteger.js/)
- bip32 (derivation paths, https://github.com/bitcoinjs/bip32)
- bip39 (mnemonic words, https://github.com/bitcoinjs/bip39)
- bitcoinjs-lib (Bitcoin addresses, https://github.com/bitcoinjs/bitcoinjs-lib)
- clipboard (clipboard, https://clipboardjs.com/)
- entropy-collector (mouse entropy, https://github.com/vibornoff/entropy-collector.js)
- eosjc-ecc (EOS addresses, https://github.com/EOSIO/eosjs-ecc)
- ethereumjs-util (Ethereum https://github.com/ethereumjs/ethereumjs-util)
- fast-sha256 (bitcoin cash addresses, https://github.com/cashaddress/cashaddress.github.io)
- iota.lib.js (addresses, https://github.com/iotaledger/iota.lib.js)
- jquery (general, notifications, https://jquery.com/)
- notifyjs (user notifications, https://github.com/jpillora/notifyjs)
- qrious (QR codes, https://github.com/neocotic/qrious)
- seedrandom (seeding with mouse entropy, https://github.com/davidbau/seedrandom)
- wif (Bitcoin wallet import format, https://github.com/bitcoinjs/wif)
Install libraries mentioned above with
npm install -library-name-
Then concat worker and worker-coin specific js files.
Then run browserify, npx babel and npx uglify.
- Browserify (for 'require' used by many libs, http://browserify.org/)
- NPX (NPM package runner, https://www.npmjs.com/package/npx)
- Babel (browser compatibility, req by bitcoinjs, https://babeljs.io/)
- Uglify (for minifying JS, https://github.com/mishoo/UglifyJS2)
Copyright 2018 GeneratePaperWallet.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.