Is there a way to create paper wallet for EOS cold storage? And can these addresses also receive tokens.
2 Answers
I've integrated EOS key generation into my memory paper wallet generator project as seen below:
Live Demo: https://xcubicle.github.io/memorypaperwallet
Details: https://www.xcubicle.com/memory-paper-wallet-bitcoin-ethereum-monero-ardor-litecoin
Features:
- Key generation is time and memory intensive to prevent brute force guessing
- Printer friendly design
- Fold to conceal the private keys when giving as a gift.
- Background is user changeable for different occasions
- Ability to generate multi-party keys using Shamir Secret Sharing Scheme.
- Remember a user/pass combination to generate the same keys in case of loss when giving away as gifts.
Yes, you can generate a keypair using eosjs-ecc
, create an account that uses that keypair for owner key, and keep your private key safe.
Example process:
Install the library
$ npm install eosjs-ecc
Create a keypair
$ node > const ecc = require('eosjs-ecc') > ecc.randomKey().then(privateKey => { console.log('Private Key:\t', privateKey) // wif console.log('Public Key:\t', ecc.privateToPublic(privateKey)) // EOSkey... }) > Private Key: 5KCyCHxCRwV7EH5VWUt2AFeVo2vRu2HgBGFsAwoF5CokwTa4mEa Public Key: EOS8E8FjakRz1a5Tw4YJQb6QMFC6ah1SWf3LEBpHCffH48G7mYWMj
Import the private key in your wallet
$ cleos wallet import 5KCyCHxCRwV7EH5VWUt2AFeVo2vRu2HgBGFsAwoF5CokwTa4mEa
Create an account with that key
$ cleos system newaccount <parent-account> <new-account> <public-key> --stake-net 10.0000 EOS --stake-cpu 10.0000 EOS --buy-ram-kbytes 20
Write your private key somewhere safe offline
Note that this process can be made more secure using typical paper wallet practices such as using a newly installed operating system on an air-gapped machine, using multisig, creating a hierarchy of permissions, etc.