Using The Monero App With Ledger

Please use the original articles listed below for more thorough instructions, as well as Linux options. This is only a reference copy made for myself for a Macintosh personal computing device.

There a several steps and some technical experience needed in order to buy or trade Monero while using a Ledger cold wallet:

  1. Validate Monero GUI binary integrity
  2. Setting up Monero GUI with Ledger
  3. Choose an exchange that lists Monero

Crypto in general, and particularly Monero, has a bit of a wild-west feeling to it. Regulations and a focus on user experience is slowly lowering the barrier to entry, yet Monero, a true privacy coin, (delisted from some exchanges) still has a high barrier to entry.

This means the ability to obtain and trade is a bit more complex, leaving the door open for bad actors to deceive people with phishing, malicious binaries and other means of attack. For Monero, the onramp process still remains a vulnerable point for the less experienced

I suggest leaving yourself at least an hour for installation and time to read, research and understand all system messages and troubleshooting.

Validating The Binaries

  1. First download the Monero GUIDO NOT OPEN THE DOWNLOADED BINARIES!
  2. You are strongly advised to verify the hashes of the archive you downloaded. This will confirm that the files you downloaded perfectly match the files uploaded by the Monero development workgroup. Please don’t underestimate this step, a corrupted archive could result in lost funds. Always verify your downloads!
    1. On Mac, go to the Gpgtools download page and follow the instructions for installation.
    2. On Windows or Mac, go to binaryFate’s GPG key, which he uses to sign the Monero binaries, and save the page as binaryfate.asc to your home directory.
    3. Verify Signing Key – On all operating systems, check the fingerprint of binaryfate.asc by issuing the following command in a terminal:
    4. gpg --keyid-format long --with-fingerprint binaryfate.asc
    5. Verify the fingerprint matches:
pub   rsa4096/F0AF4D462A0BDF92 2019-12-12 [SCEA]
      Key fingerprint = 81AC 591F E9C4 B65C 5806  AFC3 F0AF 4D46 2A0B DF92
uid                           binaryFate <binaryfate@getmonero.org>

If the fingerprint DOES match, then you may proceed.

If the fingerprint DOES NOT match, DO NOT CONTINUE. Instead delete the file binaryfate.asc and start again.

  • Import Signing Key
  • From a terminal, import the signing key:
gpg --import binaryfate.asc

If this is the first time you have imported the key, the output will look like this:

gpg: key F0AF4D462A0BDF92: 2 signatures not checked due to missing keys
gpg: key F0AF4D462A0BDF92: public key "binaryFate <binaryfate@getmonero.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: marginals needed: 3  completes needed: 1  trust model: pgp

If you have imported the key previously, the output will look like this:

gpg: key F0AF4D462A0BDF92: "binaryFate <binaryfate@getmonero.org>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

Verify Hash File

The hash file is signed with key 81AC 591F E9C4 B65C 5806 AFC3 F0AF 4D46 2A0B DF92, as reflected in the output below.

On all operating systems, verify the signature of the hash file by issuing the following command in a terminal:

gpg --verify hashes.txt

If the file is authentic, the output will look like this:

gpg:                using RSA key 81AC591FE9C4B65C5806AFC3F0AF4D462A0BDF92
gpg: Good signature from "binaryFate <binaryfate@getmonero.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 81AC 591F E9C4 B65C 5806  AFC3 F0AF 4D46 2A0B DF92

If your output shows Good signature, as in the example, then you may proceed.

If you see BAD signature in the output, DO NOT CONTINUE. Instead delete the file hashes.txt and start again.

Setup XMR With Ledger

View and follow the official docs here, the following is just for my own reference!

Install Monero App On Ledger

  1. Open the Manager in Ledger Live.
  2. Connect and unlock your Ledger device.
  3. If asked, allow Manager on your device.
  4. Find Monero in the app catalog.
  5. Click the Install button of the app.
    • An installation window appears.
    • Your device will display Processing…
    • The app installation is confirmed.

Make sure you close Ledger Live once the app is successfully installed on your device.

Download And Install Monero Wallet (This is the entire process detailed above including the validation of binaries)

  1. Download the Monero wallet for your platform.
  2. Extract the package you’ve just downloaded.
  3. Open the monero-gui-v0.xx folder.
  4. (optional) Move the monero-wallet-gui file to your applications folder.
  5. Launch the Monero wallet by opening monero-wallet-gui.
       On Windows: Click Allow access so the firewall does not block the Monero wallet.
  6. Choose your language.

Setup Monero GUI To Access Ledger Device

  1. Unlock your Ledger device and open the Monero app.
  2. Select a mode:
    • Simple mode: The GUI wallet will automatically connect to a remote node and have a simple interface. This mode excludes the need for the blockchain sync so you can immediately use the wallet. However, it weakens your privacy as the remote node will be able to see your IP address and associate your transactions with your IP address. Using a remote node does not contribute to the strength and decentralization of the network.
    • Simple mode (bootstrap): The wallet automatically connects to a remote node whilst syncing your own local node in the background. The wallet will switch to your own node once it is fully synced. This allows you to immediately use the wallet while still eventually using your own node.  (which is optimal for privacy and contributes to the strength and decentralization of the network). Additionally, this mode has a simple interface as well. This mode is the default and is thus recommended by the developers for new users.
    • Advanced mode: Download and validate the full blockchain. This offers the optimal level of privacy and contributes to the strength of the Monero network. This requires at least 90 GB of disk space, and initial synchronization may take several days. You won’t be able to properly use your wallet until the initial blockchain sync has been completed. 
  3. Click Create a new wallet from hardware in the Monero wallet.
  4. Enter a wallet name, make sure Create a new wallet from device is selected and choose Ledger in the Choose your hardware device dropdown 
  5. Note from Peter: Ensure Ledger is unlocked and the Monero app is open. I found if it was not, Monero GUI would skip over and the only option was to create a new wallet (which confused me)
  6. On your Ledger device, choose whether to export the private view key to your computer:
    • Approving view key export enables your computer to identify your transactions. However, if your computer is compromised, your transaction privacy might be at risk.
    • Rejecting view key export optimizes privacy protection since the view key remains secure on your Ledger device. However, identifying your transactions will be slower.  You may have to press the device button twice, then wait for your addresses to be generated.
  7. Enter and confirm an optional password. This password is not needed to recover the Ledger Monero wallet. Continue to the next page.
  8. If you’ve selected Advanced mode, you can now configure your (remote) node settings. On the last page, you can review your configuration summary before you open your wallet.

Send Monero Coin

Unlock your Ledger device and open the Monero app before starting the Monero wallet.

  1. Open the Send tab.
  2. Enter the amount to send and choose a transaction priority. A higher priority costs a higher network fee.
  3. Enter the address to send to. The optional payment ID may be required if sending to an exchange.
  4. Enter an optional description, only visible to you.
  5. Click Send. Wait while the transaction is created and sent to your Ledger device for confirmation.
  6. Verify all transaction details shown on your device:
    • Approve the fee displayed on your device by validating Accept fee. 
    • Verify the Amount and Destination address by pressing the right button multiple times. If everything is correct, confirm the transaction by validating Accept TX. Validate Reject TX to cancel.
  7. Finally, review the transaction summary on the Monero wallet and click OK to send it.

Your Monero wallet is now protected by your Ledger seed.