# Introduction

Welcome to MetaMask’s Developer Documentation. This documentation is for learning to develop applications for MetaMask.

# Why Metamask

MetaMask was created out of the needs of creating more 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.

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_sendTransaction, eth_signTypedData, or others), MetaMask will prompt the user in as comprehensible a way as possible, allowing them to be informed, you to have a simple API, and attackers left trying to phish individual users rather than performing mass hacks, although DNS hacks can still be used for phishing en masse.

# Blockchain Connection

MetaMask comes pre-loaded with nice and fast connections to the Ethereum blockchain and several test networks via our friends at Infura. This allows users to get started without synchronizing a full node, while still providing the option to upgrade their security the blockchain provider of their choice over time.

Today, MetaMask is compatible with any blockchain that exposes an Ethereum Compatible JSON RPC API, including custom and private blockchains. For development, we recommend running a test blockchain like Ganache.

We’re aware that there are constantly more and more private blockchains that people are interested in connecting MetaMask to, and we are continuously building towards easier and easier integration with these many options.

# Blockchain Applications

MetaMask makes it easy to write user interfaces to blockchain-based smart contract systems. You can accept payments without knowing how to write smart contracts, but you’ll be able to do much more interesting things if you do.

# New Dapp Developers