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:
Dialogs
Display custom alert, confirmation, or prompt screens in MetaMask.
Notifications
Notify users directly in MetaMask, or in their OS.
Encrypted storage
Securely store and manage data on the user's device.
Unencrypted storage
Store non-sensitive data and access it while MetaMask is locked.
Non-EVM networks
Manage non-EVM accounts and assets in MetaMask.
Transaction insights
Provide transaction insights in MetaMask's pre-transaction window.
Cron jobs
Schedule periodic actions for your users.
Custom UI
Display custom UI in MetaMask using a set of pre-defined components.
Network access
Make API calls using fetch()
.
Localization
Translate your Snap UI based on the user's locale.
Lifecycle hooks
Call an action when your Snap is installed or updated.
Static files
Lazy-load static files such as Wasm modules or ZK circuits.
Custom EVM accounts
Connect to custom EVM accounts in MetaMask.
Home pages
Present a dedicated UI page in MetaMask for your Snap.
The following Snaps features are only available in MetaMask Flask, the canary distribution of MetaMask:
Transaction severity
Add extra friction to the transaction flow if a transaction looks risky.
Account abstraction
Connect to ERC-4337 accounts in MetaMask.
Name resolution
Resolve names to addresses and vice versa.
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.
Snaps files
Learn about the Snaps manifest, configuration, and bundle files.
Gas estimation Snap tutorial
Follow an end-to-end tutorial to create a Snap that estimates gas fees.
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.