Why should I bother reading this?
If you’re interested in the Ethereum ecosystem, you need an application like MetaMask. Far more than a simple wallet, it allows you to interact with websites that integrate Ethereum.
MetaMask will let you connect to decentralized applications from inside your browser (or through a mobile app). You can make trades without intermediaries and play games with fully-transparent code (so you know you aren’t being cheated).
Check out the guide below to get started!
Introduction
With Ethereum came the promise of a distributed Internet – the long-awaited Web 3.0. A level playing field characterized by a lack of central points of failure, true ownership of data, and decentralized applications (or DApps).
Such an infrastructure is steadily coming together with an industry-wide focus on Decentralized Finance (DeFi) and interoperability protocols that aim to bridge the various blockchains. It’s now possible to trustlessly exchange tokens and cryptocurrencies, take out crypto-backed loans, and even use Bitcoin on Ethereum.
For many Ethereum enthusiasts, MetaMask is the go-to wallet. Unlike your regular smartphone or desktop software, it comes packaged as a browser extension, allowing users to directly interact with supporting webpages. In this article, we’ll explain how MetaMask works and walk you through getting started with it yourself.
What is MetaMask?
MetaMask is an open-source Ethereum wallet that supports all kinds of Ethereum-based tokens (such as those following the ERC-20 standard, or non-fungible tokens). On top of that, you can receive them from others, or purchase/swap them with the built-in Coinbase and ShapeShift integrations.
What makes MetaMask so interesting is that it can interface with websites. With other wallets, you’d need to copy-paste payment addresses or scan a QR code on a separate device. With the MetaMask extension, the website simply pings your wallet, and you’re prompted to accept or reject the transaction.
MetaMask can serve as a regular crypto wallet, but its real strength is in seamlessly interfacing with smart contracts and decentralized applications. Let’s now look at how to set it up.
Install MetaMask
The MetaMask wallet can be installed on Google Chrome, Firefox, or the Brave Browser. It’s also available on iOS and Android, but we won’t cover that in too much depth. We’re going to use Firefox throughout this tutorial, but your steps will be more or less identical, irrespective of the platform you’re using.
Head over to the official download page on metamask.io. Select your browser, which will take you to the Chrome web store or the Firefox add-ons site. Click on the button to add the extension to your platform. You may need to grant it some permissions before it’s up and running. Make sure you’re happy with the level of access it has to your browser – if you are, we’re good to go.
Initialize the wallet
You should now see a welcome message.
If you’re anything like us, you’ll probably spend a good bit of time trying to make this guy dizzy with your cursor.
Once you’re done pestering the fox on the welcome page, click on Get Started. This is where you’ll be prompted to either import a seed phrase or create a new one. Click on Create a Wallet. The next page asks whether you want to submit anonymized data to help the devs improve the app. Pick whichever option you prefer.
Now we need to create a password. If you’re one of those legendary creatures that actually reads the user agreement for your software, you can view it by clicking on Terms of Use. Otherwise, come up with a strong password, tick the box, and hit Create.
Back up your seed words!
The following point is enough to warrant its own subheading. MetaMask is a non-custodial service, meaning that no one else can access your funds – not even the MetaMask developers. Your tokens exist in a sort of encrypted vault within your browser, protected by your password. That means that if your computer is lost, stolen, or destroyed, nobody can help you recover the wallet. Your private keys will be forever lost in the void of cyberspace.
So, it’s crucial that you write down your backup phrase. This is the only way you can restore your account should something unfortunate happen. As suggested, we recommend that you write the words down and store them in two or three different locations. You don’t need to bury them in a fireproof safe deep in the forest, but hey, it can’t hurt.
Click on the grey box to reveal the phrase.
When you get to the next page, the program anticipates that you may have been lazy with the previous step, because it asks you to confirm the phrase. If you didn’t the first time, click Back and write it down!
Confirm the phrase, then proceed to the next step. Hit All Done, and you’ll see the wallet interface.
The boring part’s over, let’s get rich on (testnet) ether next.
Fund the wallet
In this tutorial, we’re going to be using the Ropsten testnet. It’s a network that functions almost exactly like the real Ethereum network, but its units have no value. These come in handy when you’re developing contracts and want to make sure that they don’t have vulnerabilities that allow attackers to drain $50m in value. Every step we perform on this network today will be replicable on the real thing (except for the part where they gift us free ether, unfortunately).
To tune into the Ropsten testnet, click on Main Ethereum Network in the top right corner and select Ropsten Test Network.
There are lots of different testnets on Ethereum. If you’re wondering about the differences, check out this comparison.
We’re going to use a faucet to get some fake money to play with. Click on RopstenETH for receiving (in the image below):
Then click Buy:
Get Ether in front of the Test Faucet:
You will be taken to this page. Click request 1 ether from fauset and wait for 1 ether to arrive at your address.
Usually, Ethereum transactions are confirmed fairly quickly, but it may take some time before 1 ETH reaches your wallet. You can check the receipt of assets by clicking on RopstenETH in the list of Ropsten network tokens.
As soon as the funds are transferred, we can start working with DApps.
How to add another network to Metamask
All networks are added according to one algorithm:
- expand the wallet (this is for convenience, you can skip it);
- click on the drop-down list of networks and select add network;
- enter the network parameters and save it.
To add a network, you need the following information:
- “Network name” – how the network will be called in your wallet;
- “New RPC URL” – blockchain address, some blockchains may have more than one.
- “Chain ID” – numbers that are different for all blockchains;
- "Currency symbol" - designation of the main token of the network;
- "Block explorer URL" - site address for browsing transactions and wallets on the network.
After filling and saving, the added network will appear in the drop-down list.
Binance Smart Chain или BSC
- «Имя сети» – Binance Smart Chain или BSC
- «Новый URL RPC» – https://bsc-dataseed.binance.org/
- «Идентификатор цепочки» – 56
- «Символ валюты» – BNB
- «URL-адрес проводника блока» - https://explorer.binance.org/smart/
Polygon Mainnet
- "Network name" - Polygon Mainnet
- "New RPC URL" - https://rpc-mainnet.maticvigil.com/
- "Chain ID" - 137
- "Currency symbol" - MATIC
- "Block Explorer URL" - https://polygonscan.com/
Buy MATIC here.
Avalanche Mainnet
- "Network name" - Avalanche Mainnet
- "New RPC URL" - https://api.avax.network/ext/bc/C/rpc
- "Chain ID" - 43114
- "Currency symbol" - AVAX
- "Block Explorer URL" - https://cchain.explorer.avax.network/
Buy AVAX here.
Optimistic Ethereum
- “Network name” – Optimistic Ethereum
- “New RPC URL” – https://mainnet.optimism.io/
- "Chain ID" - 10
- "Currency symbol" - OETH
- "Block Explorer URL" - https://optimism.io
Arbitrum One
- "Network name" - Arbitrum One
- “New RPC URL” – https://arb1.arbitrum.io/rpc
- "Chain ID" - 42161
- "Currency symbol" - AETH
- "Block Explorer URL" - https://arbiscan.io
Buy ETH on the Arbitrum network here.
Aurora Network
- "Network name" - Aurora Network
- "New RPC URL" - https://mainnet.aurora.dev
- "Chain ID" - 1313161554
- “Currency Symbol” – ETH
- "Block Explorer URL" - https://aurorascan.dev/
Source - official project website.
BitTorrent Chain Mainnet
- "Network name" - BitTorrent Chain Mainnet
- “New RPC URL” – https://rpc.bt.io/
- "Chain ID" - 199
- "Currency symbol" - BTT
- "Block Explorer URL" - https://scan.bt.io/
Check source here.
Cronos
- "Network name" - Cronos
- "New RPC URL" - https://evm.cronos.org
- "Chain ID" - 25
- "Currency symbol" - CRO
- "Block explorer URL" - https://cronoscan.com
Cronos testnet network address here.
Harmony Mainnet
- "Network name" - Harmony Mainnet
- “New RPC URL” – https://api.harmony.one
- "Chain ID" - 1666600000
- "Currency symbol" - ONE
- "Block Explorer URL" - https://explorer.harmony.one/
Alternative addresses – here, buy ONE here.
Fantom Opera
- "Network Name" - Fantom Opera
- "New RPC URL" - https://rpc.ftm.tools/
- "Chain ID" - 250
- "Currency symbol" - FTM
- "Block Explorer URL" - https://ftmscan.com/
Page on the official website of the project – здесь, buy FTM here.
Fantom testnet
- "Network name" - Fantom testnet
- "New RPC URL" - https://rpc.testnet.fantom.network/
- "Chain ID" - 0xfa2
- "Currency symbol" - FTM
Source - official project website.
Polis Mainnet
- "Network name" - Polis Mainnet
- “New RPC URL” – https://rpc.polis.tech
- "Chain ID" - 333999
- "Currency symbol" - POLIS
- "Block Explorer URL" - https://polis.tech
Aquachain
- "Network name" - Aquachain
- “New RPC URL” – https://c.onical.org
- "Chain ID" - 61717561
- "Currency symbol" - AQUA
- "Block Explorer URL" - https://aquachain.github.io
Celo Mainnet
- "Network name" - Celo Mainnet
- “New RPC URL” – https://forno.celo.org
- "Chain ID" - 42220
- "Currency symbol" - CELO
- "Block Explorer URL" - https://explorer.celo.org
Expanse Network
- "Network name" - Expanse Network
- “New RPC URL” – https://node.expanse.tech
- "Chain ID" - 2
- "Currency symbol" - EXP
- "Block Explorer URL" - https://expanse.tech
Metadium Mainnet
- "Network name" - Metadium Mainnet
- "New RPC URL" - https://api.metadium.com/prod
- "Chain ID" - 11
- "Currency symbol" - META
- "Block Explorer URL" - https://metadium.com
Aurora MainNet
- "Network name" - Aurora MainNet
- "New RPC URL" - https://mainnet.aurora.dev
- "Chain ID" - 1313161554
- “Currency Symbol” – aETH
- "Block Explorer URL" - https://aurora.dev
PrimusChain Мainnet
- “Network Name” – PrimusChain Mainnet
- “New RPC URL” – https://ethnode.primusmoney.com/mainnet
- "Chain ID" - 78
- "Currency symbol" - PETH
- "Block explorer URL" - https://primusmoney.com
TomoChain
- "Network name" - TomoChain
- "New RPC URL" - https://rpc.moonriver.moonbeam.network
- "Chain ID" - 1285
- "Currency Symbol" - MOVR
- "Block Explorer URL" - https://tomocoin.io
Moonriver
- "Network name" - Moonriver
- “New RPC URL” – https://rpc.tomochain.com
- "Chain ID" - 88
- "Currency symbol" - TOMO
- "Block Explorer URL" - https://blockscout.moonriver.moonbeam.network/
Theta Mainnet
- "Network Name" - Theta Mainnet
- "New RPC URL" - https://eth-rpc-api.thetatoken.org/rpc
- "Chain ID" - 361
- "Currency Symbol" - TFUEL
- "Block Explorer URL" - https://explorer.thetatoken.org
Buy TFUEL here.
Callisto Mainnet
- "Network name" - Callisto Mainnet
- "New RPC URL" - https://clo-geth.0xinfra.com
- "Chain ID" - 820
- "Currency symbol" - CLO
- "Block Explorer URL" - https://callisto.network
Wanchain
- "Network name" - Wanchain
- "New RPC URL" - https://gwan-ssl.wandevs.org:56891/
- "Chain ID" - 888
- "Currency symbol" - WAN
- "Block Explorer URL" - https://www.wanscan.org
Velas EVM Mainnet
- "Network Name" - Velas EVM Mainnet
- “New RPC URL” – https://evmexplorer.velas.com/rpc
- "Chain ID" - 106
- "Currency symbol" - VLX
- "Block explorer URL" - https://evmexplorer.velas.com
Evrice Network
- “Network name” – Evrice Network
- “New RPC URL” – https://meta.evrice.com
- "Chain ID" - 1010
- "Currency Symbol" - EVC
- "Block Explorer URL" - https://evrice.com
IoTeX Network Mainnet
- "Network name" - IoTeX Network Mainnet
- "New RPC URL" - https://babel-api.mainnet.iotex.io
- "Chain ID" - 4689
- "Currency symbol" - IOTX
- "Block Explorer URL" - https://iotexscan.io
RSK Mainnet
- "Network name" - RSK Mainnet
- "New RPC URL" – https://public-node.rsk.co:443
- "Chain ID" - 30
- "Currency symbol" - RBTC
- "Block Explorer URL" - https://rsk.co
Check relevance here.
GoodData Mainnet
- "Network Name" - GoodData Mainnet
- “New RPC URL” – https://rpc.goodata.io
- "Chain ID" - 33
- "Currency symbol" - GooD
- "Block Explorer URL" - https://www.goodata.org
Newton
- "Network Name" - Newton
- “New RPC URL” – https://global.rpc.mainnet.newtonproject.org
- "Chain ID" - 1012
- “Currency symbol” – NEW
- "Block Explorer URL" - https://www.newtonproject.org/
Lightstreams Mainnet
- "Network Name" - Lightstreams Mainnet
- “New RPC URL” – https://node.mainnet.lightstreams.io
- "Chain ID" - 163
- "Currency symbol" - PHT
- "Block Explorer URL" - https://explorer.lightstreams.io
Check relevance here.
EOS
- "Network name" - Mainnet
- “New RPC URL” – https://api.eosargentina.io
- "Chain ID" - 59
- "Currency symbol" - EOS
- "Block Explorer URL" - https://bloks.eosargentina.io
Buy EOS here.
xDAI Chain
- “Network name” – xDAI Chain
- “New RPC URL” – https://dai.poa.network
- "Chain ID" - 100
- “Currency Symbol” – xDAI
- "Block Explorer URL" - https://forum.poa.network/c/xdai-chain
XinFin Network Mainnet
- "Network name" - XinFin Network Mainnet
- “New RPC URL” – https://rpc.xinfin.network
- "Chain ID" - 50
- "Currency symbol" - XDC
- "Block Explorer URL" - https://xinfin.org
OKExChain Mainnet
- “Network name” – OKExChain Mainnet
- “New RPC URL” – https://exchainrpc.okex.org
- "Chain ID" - 66
- "Currency symbol" - OKT
- "Block Explorer URL" - https://www.oklink.com/okexchain
GoChain
- "Network name" - GoChain
- “New RPC URL” – https://rpc.gochain.io
- "Chain ID" - 60
- "Currency symbol" - GO
- “Block Explorer URL” - https://explorer.gochain.io
Meter Mainnet
- "Network name" - Meter Mainnet
- "New RPC URL" - https://rpc.meter.io
- "Chain ID" - 82
- "Currency symbol" - MTR
- "Block Explorer URL" - https://www.meter.io
ThunderCore Mainnet
- "Network Name" - ThunderCore Mainnet
- "New RPC URL" - https://mainnet-rpc.thundercore.com
- "Chain ID" - 108
- "Currency symbol" - TT
- "Block Explorer URL" - https://thundercore.com
Fuse Mainnet
- "Network name" - Fuse Mainnet
- “New RPC URL” – https://rpc.fuse.io
- "Chain ID" - 122
- "Currency symbol" - FUSE
- "Block Explorer URL" - https://fuse.io/
Huobi ECO Chain
- "Network Name" - Huobi ECO Chain
- “New RPC URL” – https://http-mainnet.hecochain.com
- "Chain ID" - 128
- "Currency symbol" - HT
- "Block Explorer URL" - https://hecoinfo.com
Energy Web Chain
- "Network name" - Energy Web Chain
- “New RPC URL” – https://rpc.energyweb.org
- "Chain ID" - 246
- "Currency symbol" - EWT
- "Block Explorer URL" - https://energyweb.org
Ethereum Testnets in Metamask
How to add the Rinkeby network, the Kovan network and other test networks to Metamask, only the Ethereum Mainnet network is displayed in the wallet by default - this is the main blockchain network, but there are several more besides it, namely:
- Ropsten Ethereum network;
- Rinkeby Ethereum network;
- Goerli Ethereum network;
- Kovan Ethereum network.
In order to use these networks, you just need to enable their display in the wallet settings.
To do this, go to the wallet settings, then go to the additional settings, scroll to the “Show test networks” item and turn the switch to the “on” position.
Networks that do not work in Metamask
Metamask was originally developed for the Ethereum network, but it also supports other "ether-like" blockchains compatible with the EVM (Ethereum Virtual Machine). Below is a list of networks that do not work in Metamask.
Tron Network (TRX) and TRC20 tokens in Metamask
Despite the fact that the Tron network is almost a complete copy of Ethereum, Tron does not support EVM, which means it cannot be added to Metamask. Accordingly, Metamask does not support TRX coins and all TRC20 standard tokens. But at the same time, you can add the TRX token issued on the BSC network to the metamask, the address of the smart contract is here.
Solana network (SOL) is not supported in Metamask
The SOL coin has its own native blockchain - Solana, it is not compatible with the EVM and is not supported by Metamask, but just like in the case of TRX, you can add SOL (Wrapped Solana) tokens issued in the Ethereum, BSC and Polygon networks to Metamask, addresses all smart contracts here.
Terra network (LUNA) cannot be added to Metamask
Terra is a separate blockchain with its own native coin LUNA, this network is not supported by Metamask. You can add LUNA tokens issued in other blockchains - Ethereum, BSC and Polygon, smart contract addresses here.
Access to decentralized network
Because we're on the testnet, we don't have as many apps to choose from to interact with.
We will use DApp Uniswap. Uniswap – это децентрализованная биржа (DEX), на которой можно размещать сделки, не полагаясь на посредников. Механизмы, лежащие в ее основе, довольно изящны.
You can access Uniswap here. In the top right-hand corner, you should see a prompt to Connect to a wallet. You’ll see this in some form on all MetaMask-compatible sites, as it doesn’t automatically connect for security reasons. Click on it, and you’ll be asked to select which wallet you’re using. In case you haven’t been following, that wallet will be MetaMask.
When a site first attempts to connect, a MetaMask dialog will appear, asking you to confirm the action. You’ll be able to select an account (we only have one, for now, so leave that as is) before verifying what permissions you’re about to grant. In this case, as in many others, the site is requesting information on the wallet address your account controls.
On MetaMask and privacy
It’s important to be mindful of what you’re permitting. If a website knows your address, they can see all of the ether and token transactions to and from it. What’s more, they can correlate it with your IP address.
Some prefer to segregate their addresses to prevent any overlap, while others aren’t concerned with these risks (after all, the blockchain is public). The level of privacy you want to achieve ultimately depends on you. As a general rule, don’t grant access to websites you don’t trust.
Swapping ether for DAI
Time to make our first swap. We’ll be doing it for DAI, an ERC-20 token that serves as a stablecoin. Just like our ether, though, this DAI has no real-world value. Hit Select a token, add the Uniswap Default List, and then click on DAI. Alternatively, you could also pick WETH (wrapped ether).
All that’s left to do is to input the amount of ETH we want to swap. As we do that, we’ll get an estimate of how much DAI we’ll receive. And we’re good to go! Hit Swap.
*Complete the swap with MetaMask.*You’re once again prompted to take action in MetaMask. In this case, you need to okay the transaction before it’s created. Make sure you’re happy with the fees when you’re doing this on the mainnet, as they can be significant.
After that, we just need to wait for the transaction to confirm!
Where are my tokens?
So, your ether is gone, but new tokens are not displayed in your account. Don't panic - you need to add them manually. In other words, in the Ropsten network (as in any blockchain network) you have one public address to which you transfer the actual ether itself, or tokens from this network. But in order to display the token in the Metamask wallet, you need to add the contract address of this token.
For more popular tokens, you can select Add Token in your wallet and search for the name or ticker. For the less popular ones (or those on the testnet), we need to add the contract address – an identifier that tells MetaMask where to look for our balance.
- Open your wallet by clicking on the extension.
- Click on the three dots in the top bar.
- Select View on Etherscan.
- Under Overview, click on the Token dropdown and select DAI.
- Under Profile Summary, you should see a contract address. Hover over it and copy the address.
- Return to MetaMask and click on Add Token.
- Click on the Custom Token tab.
- Paste what you’ve just copied into the Token Contract Address form.
- The rest should autofill. Click on Next, followed by Add Tokens.
- Return to the main overview to see your full balance.
Congrats! You’ve just interacted with your first DApp by trustlessly swapping ether for DAI. Everything you’ve learned can now be done in the real world. When you’re ready to play with mainnet applications, remember to switch back from Ropsten to the main network.
What else should I know?
MetaMask has some other neat features that we haven’t covered today. You can also connect a hardware wallet (Trezor and Ledger are both supported), create a contact list, and, of course, receive and send funds as you would in a normal wallet. Check out the settings to customize the extension to suit your needs.
Other than that, the usual security principles apply: MetaMask is a hot wallet, meaning that it runs on an internet-connected device. This exposes you to more risk than a cold wallet, which is kept offline to reduce attack vectors.
Lastly, when using MetaMask, it stands to reason that you should be conscious of what websites you’re granting access to.
The MetaMask app
The MetaMask Android/iPhone app provides a neat solution for interfacing with Web3 apps on the go. Boasting much of the same functionality as the extension, it integrates a DApp browser so you can access various decentralized applications at the touch of a button.
The MetaMask app’s browser.
The workflow of the application is very similar to that of the browser extension. You can make direct transfers of ether or tokens from your wallet, or even interact with Uniswap as we saw above.
Connecting to PoolTogether via a prompt within the app.
Closing thoughts
MetaMask is a powerful tool for browsing the decentralized web. If you’ve followed along with the steps in this guide, then you’ve seen the wallet’s potential. Evidently, others have, too: it currently boasts over ten millions users.
As the Ethereum stack develops, applications like MetaMask will undoubtedly become integral components in the bridge between existing technologies and nascent cryptocurrency infrastructure.