Skip to content

Interacting with Moonbeam Using MetaMask

Intro banner

Introduction

Developers can leverage Moonbeam's Ethereum compatibility features to integrate tools, such as MetaMask, into their DApps. By doing so, they can use the injected library MetaMask provides to interact with the blockchain.

Currently, MetaMask can be configured to connect to a few networks: a Moonbeam development node, the Moonbase Alpha TestNet, and Moonriver.

If you already have MetaMask installed, you can easily connect MetaMask to the network of your choice:

Note

MetaMask will popup asking for permission to add a a custom network. Once you approve permissions, MetaMask will switch your current network.

Learn how to integrate a Connect MetaMask button into your dapp, so that users can connect to Moonbase Alpha with a simple click of a button.

Video Tutorials

In this video, we'll show you how to use MetaMask to interact with Moonbeam


In this video, we'll show you how to connect your MetaMask wallet to the Moonriver network

Install the MetaMask Extension

First, we start with a fresh and default MetaMask installation from the Chrome store. After downloading, installing, and initializing the extension, follow the "Get Started" guide. In there, you need to create a wallet, set a password, and store your secret backup phrase (this gives direct access to your funds, so make sure to store these in a secure place).

Create a Wallet

After installing MetaMask, the setup will automatically open a new task with a welcome screen. Click "Get Started" to begin the setup process.

MetaMask1

When prompted, you are given the option to import a wallet using a recovery seed phrase. For this exercise, set up a new wallet.

MetaMask2

Import Accounts

Instead of creating an account, you also have the option of importing any account into MetaMask you hold the private keys to. For this example, you'll import a development account.

Import dev account into MetaMask

The details for the development accounts that comes pre-funded for this development node are as follows:

  • Alith:

    • Public Address: 0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac
    • Private Key: 0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133
  • Baltathar:

    • Public Address: 0x3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0
    • Private Key: 0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b
  • Charleth:

    • Public Address: 0x798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc
    • Private Key: 0x0b6e18cafb6ed99687ec547bd28139cafdd2bffe70e6b688025de6b445aa5c5b
  • Dorothy:

    • Public Address: 0x773539d4Ac0e786233D90A233654ccEE26a613D9
    • Private Key: 0x39539ab1876910bbf3a223d84a29e28f1cb4e2e456503e7e91ed39b2e7223d68
  • Ethan:

    • Public Address: 0xFf64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB
    • Private Key: 0x7dce9bc8babb68fec1409be38c8e1a52650206a7ed90ff956ae8a6d15eeaaef4
  • Faith:

    • Public Address: 0xC0F0f4ab324C46e55D02D0033343B4Be8A55532d
    • Private Key: 0xb9d2ea9a615f3165812e8d44de0d24da9bbd164b65c4f0573e1ce2c8dbd9c8df
  • Goliath:

    • Public Address: 0x7BF369283338E12C90514468aa3868A551AB2929
    • Private Key: 0x96b8a38e12e1a31dee1eab2fffdf9d9990045f5b37e44d8cc27766ef294acf18
  • Heath:

    • Public Address: 0x931f3600a299fd9B24cEfB3BfF79388D19804BeA
    • Private Key: 0x0d6dcaaef49272a5411896be8ad16c01c35d6f8c18873387b71fbc734759b0ab
  • Ida:

    • Public Address: 0xC41C5F1123ECCd5ce233578B2e7ebd5693869d73
    • Private Key: 0x4c42532034540267bf568198ccec4cb822a025da542861fcb146a5fab6433ff8
  • Judith:

    • Public Address: 0x2898FE7a42Be376C8BC7AF536A940F7Fd5aDd423
    • Private Key: 0x94c49300a58d576011096bcb006aa06f5a91b34b4383891e8029c21dc39fbb8b
  • Gerald:

    • Public Address: 0x6Be02d1d3665660d22FF9624b7BE0551ee1Ac91b
    • Private Key: 0x99b3c12287537e38c90a9219d4cb074a89a16e9cdb20bf85728ebd97c343e342

On the import screen, select “Private Key” and paste in one of the keys listed above. For this example we'll use Gerald's key:

Paste your account key into MetaMask

You should end up with an imported “Account 2” that looks like this:

MetaMask displaying your new Account 2

Connect MetaMask to Moonbeam

Once you have MetaMask installed and have created or imported an account, you can connect it to Moonbeam by clicking on the top right logo and opening the settings.

MetaMask3

Next, navigate to the Networks tab and click on the "Add Network" button.

MetaMask4

Here you can configure MetaMask for the following networks:

  • Network Name: Moonbeam Dev
  • RPC URL: http://127.0.0.1:9933
  • ChainID: 1281
  • Symbol (Optional): DEV
  • Block Explorer (Optional): https://moonbeam-explorer.netlify.app/
  • Network Name: Moonbase Alpha
  • RPC URL: https://rpc.testnet.moonbeam.network
  • ChainID: 1287
  • Symbol (Optional): DEV
  • Block Explorer (Optional): https://moonbase-blockscout.testnet.moonbeam.network/
  • Network Name: Moonriver
  • RPC URL: https://rpc.moonriver.moonbeam.network
  • ChainID: 1285
  • Symbol (Optional): MOVR
  • Block Explorer (Optional): https://blockscout.moonriver.moonbeam.network/

MetaMask5

Initiate a Transfer

You can also try sending some tokens with MetaMask. You will need two accounts for this example, so if you need to create another one you can do so now. Once you have two accounts, click "Send" to initiate the transfer. Select the “Transfer between my accounts” option, transfer 100 tokens, and leave all other settings as they are:

Initiating a token transfer

Once you have submitted the transaction, you will see it “pending” until it is confirmed, as shown in the following image:

Transaction confirmation

Note that the Account 2 balance has been decreased by the sent amount + gas fees. Flipping over to Account 1, we see the 100 sent tokens have arrived:

New balance in Account 1

If you head back over to your terminal where you have your Moonbeam node running, you will begin to see blocks being authored as transactions arrive:

Moonbeam Development Node

Note

If you end up resetting your development node using the Substrate purge-chain command, you will need to reset your MetaMask genesis account using Settings -> Advanced -> Reset Account. This will clear the transaction history from your accounts and reset the nonce. Make sure you don’t erase anything that you want to keep!