Interacting with Moonbeam Using MetaMask¶
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: Moonbeam, Moonriver, the Moonbase Alpha TestNet, and a Moonbeam development node.
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. The guide can also be adapted for the other Moonbeam-based networks.
The information presented herein is for informational purposes only and has been provided by third parties. Moonbeam does not endorse any project listed and described on the Moonbeam docs website (https://docs.moonbeam.network/).
Install the MetaMask Extension¶
First, you'll 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.
When prompted, you are given the option to import a wallet using a recovery seed phrase. For this exercise, set up a new wallet.
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.
The details for the development accounts that comes pre-funded for this development node are as follows:
-
Alith:
- Public Address:
0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac
- Private Key:
0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133
- Public Address:
-
Baltathar:
- Public Address:
0x3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0
- Private Key:
0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b
- Public Address:
-
Charleth:
- Public Address:
0x798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc
- Private Key:
0x0b6e18cafb6ed99687ec547bd28139cafdd2bffe70e6b688025de6b445aa5c5b
- Public Address:
-
Dorothy:
- Public Address:
0x773539d4Ac0e786233D90A233654ccEE26a613D9
- Private Key:
0x39539ab1876910bbf3a223d84a29e28f1cb4e2e456503e7e91ed39b2e7223d68
- Public Address:
-
Ethan:
- Public Address:
0xFf64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB
- Private Key:
0x7dce9bc8babb68fec1409be38c8e1a52650206a7ed90ff956ae8a6d15eeaaef4
- Public Address:
-
Faith:
- Public Address:
0xC0F0f4ab324C46e55D02D0033343B4Be8A55532d
- Private Key:
0xb9d2ea9a615f3165812e8d44de0d24da9bbd164b65c4f0573e1ce2c8dbd9c8df
- Public Address:
-
Goliath:
- Public Address:
0x7BF369283338E12C90514468aa3868A551AB2929
- Private Key:
0x96b8a38e12e1a31dee1eab2fffdf9d9990045f5b37e44d8cc27766ef294acf18
- Public Address:
-
Heath:
- Public Address:
0x931f3600a299fd9B24cEfB3BfF79388D19804BeA
- Private Key:
0x0d6dcaaef49272a5411896be8ad16c01c35d6f8c18873387b71fbc734759b0ab
- Public Address:
-
Ida:
- Public Address:
0xC41C5F1123ECCd5ce233578B2e7ebd5693869d73
- Private Key:
0x4c42532034540267bf568198ccec4cb822a025da542861fcb146a5fab6433ff8
- Public Address:
-
Judith:
- Public Address:
0x2898FE7a42Be376C8BC7AF536A940F7Fd5aDd423
- Private Key:
0x94c49300a58d576011096bcb006aa06f5a91b34b4383891e8029c21dc39fbb8b
- Public Address:
-
Gerald:
- Public Address:
0x6Be02d1d3665660d22FF9624b7BE0551ee1Ac91b
- Private Key:
0x99b3c12287537e38c90a9219d4cb074a89a16e9cdb20bf85728ebd97c343e342
- Public Address:
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:
You should end up with an imported Account 2 that looks like this:
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 network dropdown and selecting Add Network.
Here you can configure MetaMask for the following networks:
Variable | Value |
---|---|
Network Name | Moonbeam |
RPC URL | https://rpc.api.moonbeam.network |
ChainID | 1284 (hex: 0x504 ) |
Symbol (Optional) | GLMR |
Block Explorer (Optional) | https://moonscan.io |
Variable | Value |
---|---|
Network Name | Moonriver |
RPC URL | https://rpc.api.moonriver.moonbeam.network |
ChainID | 1285 (hex: 0x505 ) |
Symbol (Optional) | MOVR |
Block Explorer (Optional) | https://moonriver.moonscan.io/ |
Variable | Value |
---|---|
Network Name | Moonbase Alpha |
RPC URL | https://rpc.api.moonbase.moonbeam.network |
ChainID | 1287 (hex: 0x507 ) |
Symbol (Optional) | DEV |
Block Explorer (Optional) | https://moonbase.moonscan.io/ |
Variable | Value |
---|---|
Network Name | Moonbeam Dev |
RPC URL | http://127.0.0.1:9944 |
ChainID | 1281 (hex: 0x501 ) |
Symbol (Optional) | DEV |
Block Explorer (Optional) | https://moonbeam-explorer.netlify.app/ |
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:
Once you have submitted the transaction, you will see it pending until it is confirmed, as shown in the following image:
Note that the Account 2 balance has been decreased by the sent amount + gas fees. Flipping over to Account 1, you can see the 100 sent tokens have arrived:
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:
Note
If you end up resetting your development node using the Substrate purge-chain command, you will need to reset your MetaMask genesis account. To do so click on the colored circle in the top right corner and from the menu click on Settings. Then click on Advanced, and 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!
| Created: June 29, 2020