github.com/piotrnar/gocoin@v0.0.0-20240512203912-faa0448c5e96/website/gocoin_manual_wallet.html (about) 1 <html> 2 <head> 3 <link rel="stylesheet" href="style.css" type="text/css"> 4 </head> 5 <body> 6 <h1>Setup wallet</h1> 7 Run <code>wallet -h</code> to see all available command line switches. 8 <br> 9 10 <h2>Setup your seed</h2> 11 Wallet is deterministic and the only thing you need to set it up is the seed password.<br> 12 As long as you remember the password, you do not need to backup the wallet ever.<br> 13 You can either enter this password each time when running the wallet, or you can store it in a file called <code>.secret </code>and never be asked to enter it again.<br> 14 <br> 15 16 You do not need to use a memorable password. Instead you can create a random secret seed, e.g. using a command like this:<br> 17 <code> cat /dev/urandom | tr -cd a-zA-Z0-9 | head -c 27 > .secret</code><br> 18 <i><b>Note:</b> using a password that you cannot memorize, make sure to have a backup of your <code>.secret</code> file. </i> 19 <i><br> 20 </i> 21 <h2>Export public addresses</h2> 22 After you setup your wallet in a secured environment, you should export its public addresses.<br> 23 <br> 24 In order to do this, just run <code>wallet -l</code> and your wallet's public addresses will be written to <code>wallet.txt</code>.<br> 25 <br> 26 27 28 <h2>Security precautions</h2> 29 Make sure that the disk with <code>.secret</code> file is encrypted.<br> 30 <br> 31 32 The seed password is the key to your entire wallet and the function used to calculate it is double SHA256<sup>*</sup>, which is pretty easy to compute.<br> 33 That is why it is very important for you to make sure that the password you're choosing will be resistant to brute force and dictionary attacks.<br> 34 <br> 35 If you choose to use a memorable seed-password (aka <i>brain wallet</i>), 36 make it <u>at least</u> 20 characters long, preferably more than 30. 37 Use both cases of letters, digits and sepcial characters. 38 Try to avoid using words that can be found in a dictionary and never use sentences that can be found in Google.<br> 39 <br> 40 If you decide to write down the password, because you are affraid of forgetting it, 41 try to describe it as a puzzle that only you can understad. Avoid writing down the password as is.<br> 42 <br> 43 44 <b>Are brain wallets less secure from those based on a random number generator?</b><br> 45 It is debatable.<br> 46 There are people claiming that brain wallets aren't secure because <i>brains cannot be a good source of entropy</i>.<br> 47 If you have such a brain, make sure to consider this risk (e.g. use a random generator to create the content of the <code>.secret</code> file).<br> 48 Otherwise coming out with a memorable though <u>uncrackable</u> seed, gives you quite a secure and convenient solution, 49 as you get rid of backups that are a week point of the wallet's security. On top of that you never have to carry the wallet file with you.<br> 50 <br> 51 <hr width="50" align="left"> 52 *) Wallets version 1.10.1 (or higher) support using an optional <b>scrypt</b> function to convert the password into private keys, 53 making your brain wallet far more resistant to bruteforce attacks. 54 See the <code>scrypt</code> config value (inside your <code>wallet.cfg</code> file) for more info.<br> 55 <br> 56 57 <h2>Importing other private keys</h2> 58 You can import keys from your existing bitcoin wallet, as well as keys generated by other tools (all kind of key/address generators).<br> 59 <br> 60 61 The key that you want to import must be in base58 encoded format, which looks somehow like <code>5KJvsngHeMpm884wtkJNzQGaCErckhHJBGFsvd3VyK5qMZXj3hS</code>. To export a private key from the official bitcoin wallet use <code>dumprivkey</code> RPC command. To import such a key into your Gocoin wallet, just store the base58 encoded value in a text file named <code>.others</code> (each key must be in a separate line). You can also place a key's label in each line, after a space.<br> 62 <br> 63 64 The imported keys will extend the key pool of the deterministic ones (that come from your password-seed). After Importing each new key, you should redo <code>wallet -l</code> to get an updated <code>wallet.txt</code> for your client. 65 66 <br> 67 68 <br> 69 70 <hr> 71 72 <h2>Optional: setup your node with the wallet file</h2> 73 Having <b>wallet.txt</b> file generated at the wallet machine, use <b>Wallet</b> page of WebUI and store the content of 74 this file as a wallet in your browser. You can choose any name you want and you can change labels for the addresses. 75 </body> 76 </html>