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>&nbsp;&nbsp;&nbsp;&nbsp;cat /dev/urandom | tr -cd a-zA-Z0-9 | head -c 27 &gt; .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>