Interacting with Moonbeam Using Ledger and the Ethereum App¶
Hardware wallets provide a safer way to store crypto funds because the private key (used for signing transactions) is stored offline. Ledger offers two hardware wallet solutions at the time of writing: Ledger Nano S and Ledger Nano X.
For Moonbeam, Moonriver, and the Moonbase Alpha TestNet, you can use the Ethereum app on Ledger Live by setting the chain ID. For Moonbeam, the chain ID is 1284, for Moonriver it's 1285, and for Moonbase Alpha it's 1287.
For Moonbeam and Moonriver you also have the option of using the dedicated Moonbeam app or Moonriver app on Ledger Live, this way you do not have to worry about setting the chain ID and you know you are connected to the right network. Please note that you can only use the Moonbeam app to connect to the Moonbeam network, and the Moonriver app can only be used to connect to the Moonriver network. These dedicated apps will not work for other Moonbeam-based networks.
In this tutorial, you will learn how to get started with your Ledger hardware wallet on Moonbeam using the Ethereum app. This guide only illustrates the steps for a Ledger Nano X device, but you can follow along with a Ledger Nano S as well.
Before you get started, update Ledger Live to the latest version available. Also, make sure you've your Ledger hardware wallet device running the latest firmware. The Ledger support website offers tutorials on how to update the firmware of both Ledger Nano S and Ledger Nano X devices.
At the time of writing, the following versions were used:
In addition, you'll need MetaMask as an intermediary between your Ledger device and Moonbeam. Make sure that your MetaMask is connected to Moonbeam.
As of MetaMask version 10.5.0, connecting your Ledger device with MetaMask on Chrome is easy again. You just need to have the latest version of MetaMask installed.
Install the Ledger Live App¶
If you want to connect to Moonbeam, Moonriver, or the Moonbase Alpha TestNet you can do so by installing the Ethereum app, and later on you'll need to specify a chain ID.
To get started, open up Ledger Live and:
- Select Manager from the menu
- Connect and unlock your device (this must be done before installation)
- In the App catalog search for Ethereum (ETH) and click Install. Your Ledger device will show Processing and once the installation is complete, the app will appear on your Ledger device
In the Ledger Live app, depending on which app(s) you installed you should see them listed under the Apps installed tab on the Manager page. After the app(s) have been successfully installed, you can close out of Ledger Live.
Import your Ledger Account to MetaMask¶
Now that you've installed the app(s) on Ledger Live, you can connect your Ledger to the computer and unlock it, and open the Ethereum app.
Then import your Ledger account to MetaMask using the following steps:
- Click on the top-right logo to expand the menu
- Select Connect Hardware Wallet
In the next screen, you are prompted to select which hardware wallet you'll like to use in MetaMask. At the moment of writing, only Ledger and Trezor hardware wallets are supported. Here, take the following steps:
- Select the Ledger logo
- Click on Continue
If you're using Chrome or a Chrome-based browser like Brave, you'll be prompted to select your Ledger device to connect via WebHID:
- Select your Ledger device from the pop-up
- Click Connect
If a pop-up doesn't appear, you may need to change your MetaMask settings to enable a WebHID connection. You can check and update your MetaMask settings by following these steps:
- Expand the top-right menu and go to Settings
- Navigate to Advanced
- Scroll down to Preferred Ledger Connection Type and select WebHID from the dropdown
The Preferred Ledger Connection Type setting is only available on Chrome and Chrome-based browsers. This setting doesn't exist on other browsers such as Firefox.
If MetaMask was able to connect successfully to your Ledger device, you should see a list of five Moonbeam/Ethereum-styled accounts. If not, double-check that Ledger Live is closed, you've connected your Ledger device to the computer, and unlocked it, and make sure the Ethereum app is open.
Import Accounts and View Balances¶
From the list of accounts, take the following steps:
- Select the accounts you would like to import from your Ledger device
- Click on Unlock
If you've imported your Ledger account successfully, you should see your account and balance displayed in the main MetaMask screen like shown in the following image:
You can switch accounts in MetaMask at any time to view the balance of your other imported Ledger accounts.
You've now successfully imported a Moonbeam compatible account from your Ledger device and are now ready to start interacting with your Ledger device.
To get started interacting with your Ledger device, you will need to send some funds to it. Copy your address from MetaMask by clicking on your account name and address in MetaMask.
Next, you will need to obtain some GLMR, MOVR, or DEV tokens and using the address you just copied, send the tokens to your account. After the transaction has successfully gone through, you will see your balance update.
If you need DEV tokens for the Moonbase Alpha TestNet, you can head to the faucet to Get Tokens.
Next up is sending and signing transactions on Moonbeam using your Ledger device. To get started sending a transaction, click on the Send button:
As you would in a standard transaction, set the recipient address, enter the number of tokens to send, review transaction details and confirm it. This will initiate the transaction signature wizard in your Ledger device. Here, take the following steps:
- Click the button to proceed to the next screen. Your Ledger device is only warning you to review the transaction
- Check the number of tokens being sent then proceed to the next screen
- Check the recipient's address and proceed to the next screen
- Check the chain ID of the network. This information confirms which network MetaMask is connected to. For Moonbeam the chain ID is 1284 (hex: 0x504), Moonriver is 1285 (hex: 0x505), and Moonbase Alpha is 1287 (hex: 0x507). When ready, proceed to the next screen
- Check the max fees applicable to this transaction. This is the gas price multiplied by the gas limit you've set on MetaMask. When ready, proceed to the next screen
- If you agree with all the transaction details, approve it. This will sign the transaction and will trigger MetaMask to send it. If you don't agree with all the transaction details, reject it. This will cancel the transaction, and MetaMask will mark it as failed
Right after you've approved the transaction, MetaMask sends it to the network. Once the transaction is confirmed, it will be displayed as Send on the Activity tab in MetaMask.
And that is it! You've signed a transaction and sent some tokens on Moonbeam using your Ledger hardware wallet!
Interact with Contracts Using your Ledger¶
By default, Ledger devices don't admit a
data field in the transaction object. Consequently, users can't deploy or interact with smart contracts.
However, if you want to use your Ledger hardware wallet for transactions related to smart contracts, you need to change a configuration parameter inside the app on your device. To do so, take the following steps:
- On your Ledger, open the Moonriver or Ethereum app
- Navigate to Settings
- Find the Blind signing page. It should state NOT Enabled at the bottom
- Select/validate the option to change its value to Enabled
This option is necessary to use your Ledger device to interact with ERC-20 token contracts that might live inside the Moonbeam ecosystem.