I want to create a offline paper wallet and I saw some guides on YouTube that guide you to myetherwallet.com to download the code locally (like : https://www.youtube.com/watch?v=Bv8OGNGVOhY). The problem is that those videos is very old, and the website change (I can't find this option..). Does anyone know a legitimate source code for the wallet generator ? I WANT THE ORIGINAL ONE ! because if not, someone can easily add a line pf code to create the same X address (and he has a copy or something)-This scares me the most! Why no official offline paper wallet on the website ? (mytherwallet.com or the actual "official" website). Thank in advance.
1 Answer
Offline paper wallets are technically just private keys or mnemonic seed phrases stored predominantly offline. As with all wallets, they can receive ETH without you having to connect to the internet. However, if you want to send ETH from your wallet (or connect to some other web3 dApp), you'll have to connect to the internet and type in your private key or mnemonic phrase at some point. Encrypting your usb would likely make it more inconvenient to hack your wallet if it's misplaced or stolen but since you have to type in your private key/mnemonic phrase, you still have to be careful of phishing attacks and other scams whenever you use it online.
The video only suggests storing the private key. However, I recommend storing the mnemonic seed phrase instead. You'll be able to generate more wallets with the phrase and it can be used across different blockchains.
If you still don't want to use MetaMask, Trust Wallet, CoinTool or some other online wallet generator, here are a few options:
- Buy a Trezor wallet. It stores the private keys away from the Internet and confirms the transactions in-device.
- Generate your own wallet offline in 5 lines of code
const ethers = require('ethers')
const wallet = ethers.Wallet.createRandom()
console.log('address:', wallet.address)
console.log('mnemonic:', wallet.mnemonic.phrase)
console.log('privateKey:', wallet.privateKey)
- Or generate and save it to a csv file in 8 lines:
const fs = require('fs');
const ethers = require('ethers');
const wallet = ethers.Wallet.createRandom();
fs.appendFile(
'myWallet.csv',
`address,mnemonic,privateKey\n${wallet.address},${wallet.mnemonic.phrase},${wallet.privateKey}\n`,
(err) => {if(err) console.error(err)}
);
- Use dice to generate your mnemonic phrase
- I think this is the same code as the one in your video.