By using this site, you agree to our use of cookies, which we use to analyse our traffic in accordance with our Privacy Policy. We also share information about your use of our site with our analytics partners.


How MetaMask Flask Enables Developers To Build The Latest Technical Innovations In Web3

Flask's "code laboratory" is poised to accelerate the rate of innovation not just in Ethereum, but in the entire Web3 ecosystem.
by ConsenSysJanuary 18, 2022
Developers  Igniting the future of web3

MetaMask Flask is the experimental proving ground for our most cutting-edge and innovative features. A canary distribution of production MetaMask, Flask is where you—our developers—and experimental features ignite to create the future of Web3.

When building an application that manages and transfers real value, secure UX and stable features are essential to safeguard the user’s assets. By rolling out experimental features in Flask, we can remove some of our usual guard rails, and rapidly iterate on them before deploying them to the broader public.

Naturally, Flask does not offer the same API or UX stability guarantees as the main MetaMask applications do, so beware that it is intended for developers only, and participation is at your own risk. This laboratory is unsupervised.

Snapping Into Innovation with MetaMask Snaps

Snaps is the first feature to be released through Flask.

Snaps allows developers to expand the functionality of MetaMask at runtime, without our involvement. Just build a snap, tell your users about it, and make MetaMask work the way you want it!

Being the first wallet to offer extensibility to users, Snaps is poised to accelerate the rate of innovation not just in Ethereum, but the entire Web3 ecosystem. While the initial version of Snaps can only modify the MetaMask UI in limited ways, it will already enable one of the most powerful capabilities of all: for a Snap to manage the user’s keys for different protocols. If your favorite protocol has a SLIP-44 ID, JavaScript signing libraries, and publicly available node endpoints, you can add support for it to MetaMask.

To demonstrate this functionality, our collaborators at Protocol Labs and Chainsafe have created a Snap that adds Filecoin support to MetaMask. You can check it out here, and watch a demo here.

What you can build with Snaps is only limited by the Snaps API itself, which the MetaMask team will continue to iterate on to meet developer demands.

At a high level, MetaMask Snaps consists of two things: 

  1. A way for MetaMask to securely execute third-party JavaScript code.
  2. APIs for websites and MetaMask to communicate with individual Snaps.

Communication occurs via JSON-RPC requests and responses. In this way, Snaps can expand MetaMask’s JSON-RPC API and change the behavior of the MetaMask application at runtime. Over time, MetaMask will use this to support different blockchains and other decentralized protocols, novel kinds of cryptography, novel kinds of crypto assets, UI customization, and a countless number of other features. To learn more about how to use Snaps, read our technical documentation here.

In Summary

Flask is the environment where we work to ensure features and APIs are stable, maintainable, and safe for all users. Hence, the purple fox is only suitable for developers to participate in.

Snaps is a way to give you, the Web3 developer, the opportunity to do more with our products, and create completely new kinds of dapps. Any developer can create a Snap, and in the future, users will get to decide which Snaps they want to use and integrate into their wallet. 

Help create the future of Web3 today by getting started with Snaps. If you’re interested in working directly on the most innovative wallet in the business, we’re hiring both for Snaps and many other roles. Happy BUIDLing!