General Use Guide for Ledger Nano with Firefly

To Download Firefly, Visit https://firefly.iota.org/

TL;DR:
This post serves as a guide for using your Ledger Nano with Firefly. It covers profile setup, sending and receiving tokens and some of the finer details for using a Ledger Nano with Firefly. The Ledger Token Migration Guide for Ledger users can be found here.

Firefly is available on Windows, Mac, and Linux and now supports Ledger Nano X and Ledger Nano S via USB connection. The Ledger Nano integration is straightforward and similar to using Firefly with a non-Ledger profile. This guide serves as an additional resource to help you understand how you can use your Ledger to secure your tokens with Firefly and what you need to be aware of when you perform certain actions while using the wallet.

What is a Ledger Nano?

Ledger Nano is a hardware device that connects to your computer via USB (other models are available with Bluetooth support but this is not currently supported in Firefly). When you set up your Ledger Nano, you are instructed to safely store a recovery phrase. This recovery phrase is used by the device to sign transactions and generate addresses. It is not possible to extract the recovery phrase (or private keys generated from it) from the Ledger device. So it is important to keep your recovery phrase stored safely. The hardware device creates a boundary between your computer and the private keys needed to access your funds. It provides a level of security that is simply not possible with software alone.

Before you start, make sure:

  1. You have initialized your Ledger device.
  2. The latest firmware is installed.
  3. Ledger Live is installed and ready to use.
  4. You have installed the latest version of Firefly

Install the IOTA app on your Ledger device

  1. Open the Manager tab in Ledger Live.
  2. Connect and unlock your Ledger device.
  3. Follow the onscreen instructions and Allow Ledger Manager.
  4. Find and install IOTA (MIOTA) in the app catalog.

How to set up a Ledger Nano with Firefly

Note: If you are an existing IOTA user and secured IOTA with a Ledger before the Chrysalis network upgrade on 28 April 2021, you will need to migrate your tokens over to the new network before you can begin using Firefly. There is a comprehensive written guide and a video guide to help you through the migration process.

Creating a new Ledger profile

Creating a new Ledger profile in Firefly is very quick and simple. Once you have downloaded Firefly, open the app and follow the setup instructions. You first need to review and accept the terms and conditions, set a theme (dark or light), and choose a profile name. Select "Create a new wallet".

Press "I want a hardware wallet" to begin the Ledger profile setup process.

On the next page, you will be asked to set a PIN code. This PIN is used to log in to your wallet and blocks other people from logging in and viewing your balance transaction history. Choose a PIN that only you know. Re-enter your PIN on the next page to confirm.

Now, Firefly will check that your Ledger Nano is connected. Make sure the IOTA app is open on your device and that Ledger Live is closed. If you have connection problems follow the "Tips if your Ledger isn't connecting" guide in Firefly.

Hit "Continue", and that's all there is to it. It really is that simple. You can now enter the dashboard and begin exploring Firefly.

Receiving tokens

If you would like to receive funds to your new Ledger profile you can press the "Receive" button on the dashboard.

On this page you can select "Generate address" and Firefly will prompt you to confirm the address matches the one displayed on your Ledger device.

Scroll through the address on your Ledger device. Confirm it matches by pressing both buttons when your Ledger reads "Ok".

Note: This is a security check to ensure that you are connected to the official, secure version of Firefly. It ensures that no malicious software can alter the address you receive to and that it matches the one generated by your Ledger.

You can now copy the address and share it with a friend or exchange from which you wish to receive tokens. Always make sure the address is the same as the one displayed on your Ledger device.

Sending tokens

Once you have received tokens to an address, your balance will update and you will be able to view the transaction in the transaction history. To send these tokens, press the "Send" button from the dashboard. Here you can fill in the address you want to send to, enter an amount, and hit "Send".

You will then need to confirm that the full transaction details match what is displayed on your Ledger device. In some cases, where you are not sending the total balance on your address, you will also need to approve a "Remainder address". Scroll through the transaction details on your Ledger. Confirm the details match by pressing both buttons when your Ledger reads "Accept". If they do not match press "Deny".

Note: As with generating addresses, this is a security check to ensure that you are connected to the official, secure version of Firefly. It ensures that no malicious software can alter the contents of your transaction and ensures you are sending the right amount to the correct address.

Creating wallets and sending internal transfers

Firefly makes it possible to organize your tokens into different wallets within your profile. These tokens are kept separate from one another. Technically speaking, they are stored on addresses generated on different sub-accounts on your Ledger. Press "Create" from the dashboard and choose a name to add another wallet.

With multiple wallets, you can then send between them and split your tokens up to organize them however you like. You can select "Internal Transfer" from the Send view and select which wallet you would like to send to.

Note: Your most recently created wallet must receive funds (i.e. not be empty) before you can create a new one. This ensures that your wallets can be more smoothly recovered if you need to restore your Ledger profile on a new device.

Restoring an existing Ledger profile

If you need to restore an existing Firefly profile with a new device, or you somehow lose access to Firefly, you can plug in your Ledger and restore an existing profile in a few simple steps. To do so, select "Migrate or restore a wallet" in setup and then "I have a Firefly Ledger backup".

Note: Backups of your transaction history for Ledger Nano users are not currently supported but will be added in a later version. Once a profile is restored, Firefly will sync your transaction history. It will always find your balance. In a future version, we will add support for retrieving your full transaction history from a node that stores the complete history of the IOTA Tangle.

Adding a second Ledger device to Firefly

It is possible to have more than one Ledger device with the same Firefly app. You can add another device by creating an additional profile from the login page. Firefly will always check that the right device is connected and you will receive an error message if you try to generate an address or send a transaction with the wrong device.


Follow the Firefly development

Firefly is open source and the development can be followed in real-time on our Github. You can also join the IOTA Discord and join the conversation in the #firefly-discussion channel or ask for help in the #help channel.

Read the Firefly Token Migration Guide for Ledger Users here.

Read the announcement of the Ledger Nano Support in Firefly here.