Welcome to MetaMask’s Developer Documentation. MetaMask is the trailblazing tool enabling user interactions and experience on Web3. It is currently available as a browser extension and as a mobile app on both Android and iOS devices. The purpose of this documentation is to illustrate how to build a dapp with MetaMask.
- You can find the latest version of MetaMask on our official website (opens new window).
- For help using MetaMask, visit our User Support Site (opens new window).
- For up to the minute news, follow our Twitter (opens new window) or Medium (opens new window) pages.
- To learn how to contribute to the MetaMask project itself, visit our Internal Docs (opens new window).
Recent Breaking Provider Changes
If you are an Ethereum application developer and are looking for information about our January 2021 provider API changes, please see our Migration Guide for more details.
# Why MetaMask
MetaMask was created to meet the needs of secure and usable Ethereum-based web sites. In particular, it handles account management and connecting the user to the blockchain.
# Account Management
MetaMask allows users to manage accounts and their keys in a variety of ways, including hardware wallets, while isolating them from the site context. This is a great security improvement over storing the user keys on a single central server, or even in local storage, which can allow for mass account thefts (opens new window).
This security feature also comes with developer convenience: For developers, you simply interact with the globally available
ethereum API that identifies the users of web3-compatible browsers (like MetaMask users), and whenever you request a transaction signature (like
eth_signTypedData, or others), MetaMask will prompt the user in as comprehensible a way as possible. This keeps users informed, and leaves attackers only the option of trying to phish individual users, rather than performing mass hacks (although DNS hacks can still be used for phishing en masse (opens new window)).
# Blockchain Connection
MetaMask comes pre-loaded with fast connections to the Ethereum blockchain and several test networks via our friends at Infura (opens new window). This allows you to get started without synchronizing a full node, while still providing the option to upgrade your security and use the blockchain provider of your choice.
Today, MetaMask is compatible with any blockchain that exposes an Ethereum-compatible JSON RPC API (opens new window), including custom and private blockchains. For development, we recommend running a test blockchain like Ganache (opens new window).
We are aware that there are constantly new private blockchains being created. If you are interested in integrating MetaMask with your own custom network, we have an API that has already enabled a number of networks to do the same. (opens new window).
# New Dapp Developers
- Learning Solidity (opens new window) by karl Floersch
- CryptoZombies (opens new window)
- Getting Started with Truffle (opens new window)
- Keeping up with Blockchain Development (from ConsenSys Academy) (opens new window)
- Launch into the Web3 space with ConsenSys Academy's Blockchain Developer Bootcamp (opens new window)
- Explore everything ConsenSys at the ConsenSys Developer Portal (opens new window)