Snaps is a system that allows anyone to expand the capabilities of MetaMask safely
Leading blockchain and Web3 wallet MetaMask is opening up its future development to the community this week with the arrival of Snaps. Snaps is a system that allows anyone to expand the capabilities of MetaMask in a test environment. Notably, users need to install MetaMask Flask: an experimental playground for developers, where new or proposed features can be rolled out and tested before deploying them to the broader public.
A snap is a program run in an isolated environment to customize the wallet experience. For example, a snap can add new APIs to MetaMask, support different blockchains, or modify existing functionality using internal APIs. MetaMask hopes Snaps becomes a new way to create web3 end-user experiences by changing MetaMask in ways that were impossible before.
Snaps is the first feature to be rolled out in the Flask environment to make MetaMask more extensible for developers, allowing them to build specifically what they need for their dapp. Moreover, MetaMask is the first wallet to provide this type of flexibility to developers.
How do Snaps work?
Snaps are run in an isolated environment with access to a limited set of capabilities, determined by the permissions granted by the user during installation. As with MetaMask’s Ethereum Provider RPC API, snaps communicate with MetaMask using the JSON-RPC. New RPC methods have been added to the Ethereum Provider JSON-RPC API, which is documented as part of the Snaps RPC API. These new methods are what allow snaps to modify the functionality of MetaMask. In addition, they also allow websites to install and communicate with individual snaps. See the Snaps RPC API documentation for more details.
Over time, MetaMask will expose more internal functionality as RPC methods, granting more capabilities to snaps. Right now, snaps cannot modify the MetaMask UI directly. If a snap needs a UI, that UI must exist entirely on a website to communicate with the snap.
Installing MetaMask Flask
MetaMask Flask is a separate developer extension that provides access to additional unstable APIs. The goal of Flask is to maximize developer control so that MetaMask can learn the full extent of what developers want to do with MetaMask and incorporate those lessons.
- First, in a Firefox or Chrome browser, create a new browser profile or disable any existing installed versions of MetaMask.
- Running multiple instances of MetaMask in the same browser profile will break dapp interactions.
- Next, download Flask
- and add it to your chosen browser.
To continue exploring Snaps and Flask, head here for complete instructions.
Blockchain & Crypto Wallets
A blockchain wallet will facilitate sending, receiving, and storing digital assets, and it will keep your crypto and, in some instances, NFT assets safe. However, not all wallets are created equal, and some stand out in their quality, security, and offered features.
Competition in the wallet space has been heating up lately as more people gravitate towards crypto and web3. Arguably MetaMask could be accused of becoming fat and lazy these last few years as it enjoyed its dominant position atop the pile of crypto and blockchain wallets. Many quickly point out a lack of development or user features being considered by MetaMask – such as the now-standard dark mode, which MetaMask still does not have.
The news of MetaMask opening up its development to the community to enhance operations should be well received in the industry. Moreover, it will be interesting to see what features developers build to make using their dapps easier.
The above does not constitute investment advice. The information given here is purely for informational purposes only. Please exercise due diligence and do your research. The writer holds positions in various cryptocurrencies including BTC, ETH, and RADAR.