Using monero-wallet-cli
, I want to safely create a cold storage wallet and make a watch-only counterpart which I later want to use on my Windows PC to monitor the balance. How can I do this?
1 Answer
Monero Cold Storage, Monitoring, and Spending Guide (MS Windows) - Part 1: Creating The Wallet
Create a bootable USB drive. Follow instructions here.
Get the latest Monero Core binaries. If you followed step 1. to the letter, you will need Windows 64-bit binaries. Extract from .zip and copy them to your bootable drive.
Reboot into your USB drive. When it boots, you will be presented with a console. Initially, you should see:
X:\windows\system32>wpeinit X:\windows\system32>
- Change drive to your USB drive by commanding
d:
. Note that it could be some other letter depending on your system configuration. After commandingd:
, commanddir
and you will see a list of files & folders on the drive which can tell you where you are and ifd:
is the correct drive. To help with this, you could also start notepad by commandingnotepad
and then selectFile->Open
which will let you browse your computer using the standard folder picker, and help you understand which is the correct drive. Close notepad and type the correct drive letter:
X:\Windows\System32>d: D:\>
- Change working folder to wherever you copied monero binaries to. For example, type
cd d:\_tools\monero.win.x64.v0-10-1-0\
. Note: you can use TAB to auto-complete folder names, just type in the first few letters and push TAB to cycle through suggestions.
D:\>cd _tools\monero.win.x64.v0-10-1-0 D:\_tools\monero.win.x64.v0-10-1-0>
- Type
monero-wallet-cli.exe
. Again, TAB works to auto-complete, so just typemon
and hit TAB a few times untilmonero-wallet-cli.exe
appears.
D:\_tools\monero.win.x64.v0-10-1-0>monero-wallet-cli.exe Monero 'Wolfram Warptangent' (v0.10.1.0-release) Logging at log level 0 to D:\_tools\monero.win.x64.v0-10-1-0\monero-wallet-cli.log Specify wallet file name (e.g., MyWallet). If the wallet doesn't exist, it will be created. Wallet file name (or Ctrl-C to quit):
- Type in your wallet file name and press Enter.
Wallet file name (or Ctrl-C to quit): myWallet No wallet found with that name. Confirm creation of new wallet named: myWallet (Y/Yes/N/No):
- Type
Y
and press Enter to continue.
(Y/Yes/N/No): Y Generating new wallet... Enter a password for your new wallet:
- Type in your password. I advise to type some long gibberish here as you don't really want to save it anyway but it will get saved automatically (to your USB drive). If you type a lot of random characters, it will be impossible to crack open even if saved. Note: you could decide to save it and use this USB as your cold storage instead of paper. If that is the case, set some strong password you will remember and make sure to NEVER PLUG THIS USB INTO A RUNNING SYSTEM if you want to keep it cold.
Enter a password for your new wallet: **** Confirm Password: ****
- Pick a language for the mnemonic.
List of available languages for your wallet's seed: 0 : English 1 : Spanish 2 : German 3 : Italian 4 : Portuguese 5 : Russian 6 : Japanese Enter the number corresponding to the language of your choice: 0
- Your wallet will have been created. Below is the console output.
Generated new wallet: 48LQ1ohLKvvfNv2Kesy1gEe4jm2TfUexM2yS2hGjqLanHt9xbAKZ Bsj8cyvRiHFmUPFpQwCP9jFm3BXsVAEHBEAQFT6u2cT View key: 42f04a74bdb49c157fc40b36ea79b1766c2a6c1951b9fe8fa6e9a0fb57ee4809 ********************************************************************** Your wallet has been generated! To start synchronizing with the daemon, use "refresh" command. Use "help" command to see the list of available commands. Always use "exit" command when closing monero-wallet-cli to save your current session's state. Otherwise, you might need to synchronize your wallet again (your wallet keys are NOT at risk in any case). PLEASE NOTE: the following 25 words can be used to recover access to your wallet . Please write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control. fictional aplomb ripped habitat onion zesty foggy tell dilute nearby ditch autumn ornament muppet sneeze spout sawmill zinger firm puddle sickness pliers offend oxidant ditch ********************************************************************** Error: wallet failed to connect to daemon: http://localhost:18081. Daemon either is not started or wrong port was passed. Please make sure daemon is running or restart the wallet with the correct daemon address. Error: wallet failed to connect to daemon: http://localhost:18081. Daemon either is not started or wrong port was passed. Please make sure daemon is running or restart the wallet with the correct daemon address. Background refresh thread started [wallet 48LQ1o]:
You will be presented with your mnemonic seed written below the green text. In our example it's
fictional aplomb ripped habitat onion zesty foggy tell dilute nearby ditch autumn ornament muppet sneeze spout sawmill zinger firm puddle sickness pliers offend oxidant ditch
. Write yours down and store safely. Make backups. Unless you choose to save the wallet file, THIS IS THE ONLY THING THAT WILL LET YOU ACCESS YOUR FUNDS. IF YOU LOSE IT - YOUR FUNDS WILL BE GONE FOREVER. It goes without saying that if someone finds it, he could steal your funds and probably get away with it, too.When in wallet, run the command
save_watch_only
. You will be prompted for a password. Use a good, strong password. Even if the watch-only wallet can't be used for spending, it will still contain some data which is better kept private.
[wallet 48LQ1o]: save_watch_only Password for the new watch-only wallet: **** Enter new password again: **** [wallet 48LQ1o]:
- Type
exit
to exit the wallet. You will be returned to the command prompt.
[wallet 48LQ1o]: exit D:\_tools\monero.win.x64.v0-10-1-0>
- Result: you will have created 4 files. To see them, command
dir
.
D:\_tools\monero.win.x64.v0-10-1-0>dir Volume in drive D is WINPE Volume Serial Number is DEB2-6BBC Directory of D:\_tools\monero.win.x64.v0-10-1-0 12/20/2016 06:52 PM . 12/20/2016 06:52 PM .. 12/13/2016 06:36 PM 13,497,944 monero-blockchain-export.exe 12/13/2016 06:36 PM 13,561,678 monero-blockchain-import.exe 12/13/2016 06:36 PM 6,785,009 monero-utils-deserialize.exe 12/13/2016 06:37 PM 15,977,627 monero-wallet-cli.exe 12/20/2016 08:29 PM 17,043 monero-wallet-cli.log 12/13/2016 06:37 PM 16,757,062 monero-wallet-rpc.exe 12/13/2016 06:38 PM 57,430,407 monerod.exe 12/20/2016 08:23 PM 702 myWallet.keys 12/20/2016 08:23 PM 95 myWallet.address.txt 12/20/2016 08:28 PM 841 myWallet.keys-watchonly 12/20/2016 08:29 PM 353 myWallet 11 File(s) 124,028,761 bytes 2 Dir(s) 31,252,447,232 bytes free D:\_tools\monero.win.x64.v0-10-1-0>
- Delete all the wallet files except the
myWallet.keys-watchonly
file. The command isdel
followed by a list of filenames to delete.
D:\_tools\monero.win.x64.v0-10-1-0>del myWallet myWallet.address.txt myWallet.keys D:\_tools\monero.win.x64.v0-10-1-0>
- Command
dir
to check that they're gone.
D:\_tools\monero.win.x64.v0-10-1-0>dir Volume in drive D is WINPE Volume Serial Number is DEB2-6BBC Directory of D:\_tools\monero.win.x64.v0-10-1-0 12/20/2016 06:52 PM . 12/20/2016 06:52 PM .. 12/13/2016 06:36 PM 13,497,944 monero-blockchain-export.exe 12/13/2016 06:36 PM 13,561,678 monero-blockchain-import.exe 12/13/2016 06:36 PM 6,785,009 monero-utils-deserialize.exe 12/13/2016 06:37 PM 15,977,627 monero-wallet-cli.exe 12/20/2016 08:29 PM 17,043 monero-wallet-cli.log 12/13/2016 06:37 PM 16,757,062 monero-wallet-rpc.exe 12/13/2016 06:38 PM 57,430,407 monerod.exe 12/20/2016 08:28 PM 841 myWallet.keys-watchonly 8 File(s) 124,027,611 bytes 2 Dir(s) 31,252,496,384 bytes free D:\_tools\monero.win.x64.v0-10-1-0>
- Command
rename
to rename the generated watch-only keys file to a standard .keys filename.
D:\_tools\monero.win.x64.v0-10-1-0>rename myWallet.keys-watchonly myWallet-watchonly.keys D:\_tools\monero.win.x64.v0-10-1-0>
- Open the watch-only wallet to check that all is ok.
D:\_tools\monero.win.x64.v0-10-1-0>monero-wallet-cli --wallet-file myWallet-watchonly Monero 'Wolfram Warptangent' (v0.10.1.0-release) Logging at log level 0 to D:\_tools\monero.win.x64.v0-10-1-0\monero-wallet-cli.log Password: **** Opened watch-only wallet: 48LQ1ohLKvvfNv2Kesy1gEe4jm2TfUexM2yS2hGjqLanHt9xbAKZ Bsj8cyvRiHFmUPFpQwCP9jFm3BXsVAEHBEAQFT6u2cT ********************************************************************** Use "help" command to see the list of available commands. ********************************************************************** Error: wallet failed to connect to daemon: http://localhost:18081. Daemon either is not started or wrong port was passed. Please make sure daemon is running or restart the wallet with the correct daemon address. Error: wallet failed to connect to daemon: http://localhost:18081. Daemon either is not started or wrong port was passed. Please make sure daemon is running or restart the wallet with the correct daemon address. Background refresh thread started [wallet 48LQ1o]:
Voila, you should now have:
- The watch-only .keys file
- The watch-only cache file
- Paper back-up of your seed mnemonic. THIS IS THE ONLY THING THAT WILL LET YOU ACCESS YOUR FUNDS, IF YOU LOSE IT - YOUR FUNDS WILL BE GONE FOREVER.
Time to test. This is important. I trust you've written down the mnemonic correctly, but better be sure you didn't make some error. We will test that the restored address will match your watch-only wallet's address. Start the wallet with the command
monero-wallet-cli.exe --restore-deterministic-wallet
. You will be prompted for a filename, confirmation, seed mnemonic, height and password (again, use some long random gibberish).
D:\_tools\monero.win.x64.v0-10-1-0>monero-wallet-cli.exe --restore-deterministic-wallet Monero 'Wolfram Warptangent' (v0.10.1.0-release) Logging at log level 0 to D:\_tools\monero.win.x64.v0-10-1-0\monero-wallet-cli.log Specify a new wallet file name for your restored wallet (e.g., MyWallet). Wallet file name (or Ctrl-C to quit): test Confirm wallet name: test (Y/Yes/N/No): Y Generating new wallet... Specify Electrum seed: fictional aplomb ripped habitat onion zesty foggy tell di lute nearby ditch autumn ornament muppet sneeze spout sawmill zinger firm puddle sickness pliers offend oxidant ditch Restore from specific blockchain height (optional, default 0): 0 Enter a password for your new wallet: **** Confirm Password: **** Generated new wallet: 48LQ1ohLKvvfNv2Kesy1gEe4jm2TfUexM2yS2hGjqLanHt9xbAKZBsj8cy vRiHFmUPFpQwCP9jFm3BXsVAEHBEAQFT6u2cT View key: 42f04a74bdb49c157fc40b36ea79b1766c2a6c1951b9fe8fa6e9a0fb57ee4809 ********************************************************************** Your wallet has been generated! ...
- Check that the address is the same, exit the wallet and again delete the generated files.
... D:\_tools\monero.win.x64.v0-10-1-0>del test test.address.txt test.keys D:\_tools\monero.win.x64.v0-10-1-0>dir Volume in drive D is WINPE Volume Serial Number is DEB2-6BBC Directory of D:\_tools\monero.win.x64.v0-10-1-0 12/20/2016 06:52 PM . 12/20/2016 06:52 PM .. 12/13/2016 06:36 PM 13,497,944 monero-blockchain-export.exe 12/13/2016 06:36 PM 13,561,678 monero-blockchain-import.exe 12/13/2016 06:36 PM 6,785,009 monero-utils-deserialize.exe 12/13/2016 06:37 PM 15,977,627 monero-wallet-cli.exe 12/20/2016 09:01 PM 21,006 monero-wallet-cli.log 12/13/2016 06:37 PM 16,757,062 monero-wallet-rpc.exe 12/13/2016 06:38 PM 57,430,407 monerod.exe 12/20/2016 08:47 PM 868 myWallet-watchonly.keys 12/20/2016 08:49 PM 353 myWallet-watchonly 9 File(s) 124,031,954 bytes 2 Dir(s) 31,252,480,000 bytes free D:\_tools\monero.win.x64.v0-10-1-0>
- You can copy the resulting
myWallet-watchonly.keys
file to your online PC. If you opted to use the USB drive as cold storage, you will need another one to avoid plugging the drive with your full wallet into your online PC.
This concludes the 1st part of the guide. Second part will cover transferring first funds to your wallet and monitoring your balance.
-
1