MetaMask’s Vision for Multiple Network Support

MetaMask believes in open-source development, transparency, and control for its users. This is why the MetaMask team welcomes contributions and input from the broader community.

Recently, we have received a number of suggestions from the community regarding support for new blockchains. Currently, MetaMask users are able to access the Ethereum mainnet, Ropsten, Kovan, and Rinkeby test networks through an easy network drop-down UI. While users are able to connect to other networks by specifying an RPC URL, it does require manual input and doesn’t persist if a user connects to a different custom RPC.

Because MetaMask is able to support some custom networks, various teams working on Ethereum RPC compatible chains have requested that MetaMask add menu options to gain easy and automatic access to their own networks in the network selection drop-down. This would be an easy UI implementation, but the politics of maintaining a comprehensive list of blockchains would quickly distract us from iterating on the core product for our users. Rather than maintaining a list of networks, we are more interested in pursuing a generalized solution that allows users to opt into the networks that they prefer, without involving the MetaMask team! Fortunately, the path for this generalized solution is already being paved:

In the pursuit of improved privacy and security, the MetaMask team has suggested EIP 1102 as a way to make web3 browser users undetectable while browsing the web, until a user deliberately reveals themselves. This initial sign-in API lays the groundwork for other sign-in options, including different accounts on different sites, and eventually even specific networks per application.

Once these features are implemented, MetaMask will be able to work on maintaining simultaneous network connections, a feature that must exist if MetaMask is to enable cross-chain applications. Right now, a site that requests access to one network through MetaMask changes the network for all other sites, but we are already planning to change this behavior. Ideally, MetaMask should allow different sites to connect to their own sets of networks simultaneously.

In the meanwhile, any contributor could quickly add support for more networks via our “Custom RPC” option by adding support for EIP 155, as documented in this issue (#1820). This feature should be straightforward to add without adding new providers to our menu, making it a simple and uncontroversial change to make.

As we move forward into a multiple-network world, our team will continue iterating on these features. We want to facilitate the growth of the ecosystem, but we want to do it in a general way that keeps MetaMask useful for any user, without having to become arbiters of what networks receive a listing. Because our current vision is reliant on this ongoing series of features, it is difficult to estimate a concrete timeline, but as always, the best way to push the conversation forward is to collaborate with us on our github by commenting and proposing your ideas on the various issues that were linked throughout the article.

Thanks to Dan Finlay, Bobby Dresser, and Jenny Pollack.