Extend the functionality of MetaMask using Snaps
Snaps is an open source system that allows anyone to safely extend the functionality of MetaMask, creating new web3 end user experiences. Get started building your own Snaps by installing MetaMask Flask.
What can you do with a Snap?
A Snap can add new API methods to MetaMask, add support for different blockchain protocols, or modify existing functionalities using the Snaps API. Learn more in this video:
The following Snaps features are available in the stable version of MetaMask:
Cron jobs
Schedule periodic actions for your users.
Custom EVM accounts
Connect to custom EVM accounts in MetaMask.
Custom UI
Display custom UI in MetaMask using a set of pre-defined components.
Data storage
Store encrypted and unencrypted data within a Snap.
Dialogs
Display custom alert, confirmation, or prompt screens in MetaMask.
Home pages
Display a dedicated UI page in MetaMask for your Snap.
Interactive UI
Display interactive UI in MetaMask that can be updated dynamically.
Lifecycle hooks
Call an action when your Snap is installed or updated.
Localization
Translate your Snap UI based on the user's locale.
Network access
Access the internet using the fetch
function.
Non-EVM networks
Manage non-EVM accounts and assets in MetaMask.
Notifications
Notify users directly in MetaMask, or natively in their OS.
Static files
Lazy-load static files such as Wasm modules or ZK circuits.
Transaction insights
Provide transaction insights in MetaMask's transaction confirmation window.
The following Snaps features are only available in MetaMask Flask, the canary distribution of MetaMask:
Account abstraction
Connect to ERC-4337 accounts in MetaMask.
Name resolution
Resolve names to addresses and vice versa.
Signature insights
Provide signature insights before a user signs a message.
New to Snaps?
If you're new to Snaps, get started learning with the following topics:
About Snaps
See a high-level, technical overview of the Snaps system.
About the Snaps APIs
Learn about how Snaps, dapps, and MetaMask communicate with each other.
Gas estimation Snap tutorial
Follow an end-to-end tutorial to create a Snap that estimates gas fees.
Snaps resources
Learn and explore MetaMask Snaps with supplemental resources, tools, examples, and guides.
Questions?
If you have questions about using MetaMask Snaps or want to propose a new feature, you can interact with the MetaMask Snaps team and community on GitHub discussions and the mm-snaps-dev channel on Consensys Discord.
See the full list of Snaps resources for more information.