Resources
View the following Snaps resources in addition to this documentation site.
Primary resources
- Snaps homepage
- Snaps directory - A directory of allowlisted Snaps you can try in the MetaMask extension.
- SIPs - Suggest new Snaps APIs with Snaps Improvement Proposals.
- Builder Engagement Program - Connect with the Snaps builder engagement team and get support while building your Snap.
Example Snaps
- Example Snaps - A directory of Snaps maintained by MetaMask.
- Linea Voyager - View Linea XP balance, PoH status, and current Linea Voyage activations from within MetaMask.
- Starknet - Adds Starknet account and transaction functionality to MetaMask.
- Simple Keyring Snap - An example account management Snap using the Keyring API.
- Mystery Fox - Provides random answers to questions and showcases interactive UI and images.
- Farcaster Insights - Shows if the recipient in a transaction request has a Farcaster account and their stats.
- Smart Account Template - Template for integrating the Biconomy Smart Account with the Keyring API.
- Text Transformer - Transforms strings into Unicode bold, italic, and strikethrough characters for use on social media. Demonstrates interactive JSX UI in a home page.
- Social Names - Adds Farcaster and Lens handles to the send flow and petnames using custom name resolution.
Developer tools
- Template Snap - A rich template that includes TypeScript/React and vanilla JavaScript options, a CLI for building, packaging, and deploying your Snap, and a companion dapp UI you can build on.
- Test Snaps - A collection of test Snaps and a dapp for evaluating them.
snaps-jest
- A Jest preset for end-to-end testing MetaMask Snaps, including a Jest environment, and a set of Jest matchers. See how to test a Snap usingsnaps-jest
.- Snaps Simulator - A tool for simulating Snaps in the browser, streamlining the development process. It doesn't support all Snaps features but can be useful for testing certain features.
- MetaMask Testing Tools - A collection of tools for
testing MetaMask, MetaMask Flask, and MetaMask Snaps with Playwright,
delivered as an npm package that provides a
createFixture
function that returns atest
andexpect
function that can be used to write tests.
Blog posts
- Making the Wallet Personal by Christian Montoya
- Permissionless Innovation and You by Erik Marks
- Snaps in MetaMask Stable and Where We Go From Here by Dan Finlay
- MetaMask Snaps Launch with Hardened JavaScript Under the Hood by Agoric
- Navigating the Security Landscape of MetaMask Snaps by Martin Ortner & Valentin Quelquejay
- Going Beyond The Secret Recovery Phrase In MetaMask With Account Management Snaps by Alex Jupiter
Videos
- MetaMask Snaps Public Launch (12 min)
- What is MetaMask Snaps? Main Functions and Features Explained (53 mins)
- Deep Dive into MetaMask Snaps (57 min)
- Building a Universal Web3 Interface (16 min) (Slides)
- It's Our Wallet, Let's Build It Together (19 min) (Slides)
- Building the Future with MetaMask Snaps (22 min) (Slides)
- MetaMask Snaps YouTube playlist
- How to Build Your Own Polkadot MetaMask Snap (32 min)
- How to Build and Customize a MetaMask Snap (47 min)
Community
- Snaps GitHub discussions - Browse discussions and ask questions about Snaps.
- Consensys Discord - Ask questions about Snaps on the mm-snaps-dev channel.
- Snaps GitHub issues - If you encounter any issues with Snaps, open a GitHub issue.
Snaps for developers
Many Snaps are designed to be used by developers.
- CubeSigner - Enables dapp developers to manage keys for Ethereum, Bitcoin, Solana, and more using secure remote hardware.
- Galactica ZK Vault - Integrates the Galactica Network for dapps to leverage ZK-proofs for compliant privacy.
- Hedera Wallet - Build Hedera dapps with the methods provided by Hedera Wallet.
- Leap Wallet - Connect Cosmos dapps to MetaMask with Leap Wallet.
- MinaPortal - Build ZkApps on Mina Network with the dapp methods provided by MinaPortal.