Skip to content

Latest commit

 

History

History
166 lines (149 loc) · 5.39 KB

File metadata and controls

166 lines (149 loc) · 5.39 KB
sidebar_label Introduction
title Snaps introduction
description Introduction page for the MetaMask Snaps documentation.

import CardList from '@site/src/components/CardList' import YoutubeEmbed from '@site/src/components/YoutubeEmbed'

Create a custom mini app using Snaps

Snaps is an open source system that allows anyone to safely create a mini app that runs inside the MetaMask extension, enabling 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:

<CardList items={[ { href: 'features/cron-jobs', title: 'Cron jobs', description: 'Schedule periodic actions for your users.', }, { href: 'features/custom-evm-accounts', title: 'Custom EVM accounts', description: 'Connect to custom EVM accounts in MetaMask.', }, { href: 'features/custom-name-resolution', title: 'Custom name resolution', description: 'Resolve names to addresses and vice versa.', }, { href: 'features/custom-ui', title: 'Custom UI', description: 'Display custom UI in MetaMask using a set of pre-defined components.', }, { href: 'features/data-storage', title: 'Data storage', description: 'Store encrypted and unencrypted data within a Snap.', }, { href: 'features/custom-ui/dialogs', title: 'Dialogs', description: 'Display custom alert, confirmation, or prompt screens in MetaMask.', }, { href: 'features/custom-ui/home-pages', title: 'Home pages', description: 'Display a dedicated UI page in MetaMask for your Snap.', }, { href: 'features/custom-ui/interactive-ui', title: 'Interactive UI', description: 'Display interactive UI in MetaMask that can be updated dynamically.', }, { href: 'features/lifecycle-hooks', title: 'Lifecycle hooks', description: 'Call an action when your Snap is installed or updated.', }, { href: 'features/localization', title: 'Localization', description: "Translate your Snap UI based on the user's locale.", }, { href: 'features/network-access', title: 'Network access', description: ( <> Access the internet using the fetch function. </> ), }, { href: 'features/non-evm-networks', title: 'Non-EVM networks', description: 'Manage non-EVM accounts and assets in MetaMask.', }, { href: 'features/notifications', title: 'Notifications', description: 'Notify users directly in MetaMask, or natively in their OS.', }, { icon: require('./assets/features/signature-insights.png').default, href: 'features/signature-insights', title: 'Signature insights', description: 'Provide signature insights before a user signs a message.', }, { icon: require('./assets/features/getfile.png').default, href: 'features/static-files', title: 'Static files', description: 'Lazy-load static files such as Wasm modules or ZK circuits.', }, { href: 'features/transaction-insights', title: 'Transaction insights', description: "Provide transaction insights in MetaMask's transaction confirmation window.", }, ]} />

The following Snaps features are only available in MetaMask Flask, the canary distribution of MetaMask:

<CardList items={[ { href: 'features/custom-evm-accounts#account-abstraction-erc-4337', title: 'Account abstraction', description: 'Connect to ERC-4337 accounts in MetaMask.', flaskOnly: true, }, ]} />

New to Snaps?

If you're new to Snaps, get started learning with the following topics:

<CardList items={[ { href: 'learn/about-snaps', title: 'About Snaps', description: 'See a high-level, technical overview of the Snaps system.', }, { href: 'learn/about-snaps/apis', title: 'About the Snaps APIs', description: 'Learn about how Snaps, dapps, and MetaMask communicate with each other.', }, { href: 'learn/tutorials/gas-estimation', title: 'Gas estimation Snap tutorial', description: 'Follow an end-to-end tutorial to create a Snap that estimates gas fees.', }, { href: 'learn/resources', title: 'Snaps resources', description: '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.

:::info MetaMask user support If you need MetaMask user support, visit the MetaMask Help Center. :::