MetaMask Flask & Snaps

MetaMask Flask

MetaMask Flask is an experimental development environment that allows developers to create and test custom MetaMask APIs and other features. MetaMask Flask operates almost identically to vanilla MetaMask, but with the option to integrate custom Snaps.


Snaps are unique JavaScript programs that allow code to run inside a secure execution environment within the MetaMask Flask browser extension. Snaps bring MetaMask functionality to blockchain networks that have yet to be integrated into the official MetaMask browser extension. The official Snaps development guide with full documentation can be found here. Snaps are currently distributed as npm packages.


As mentioned above, Snaps allow developing chains to integrate into the MetaMask ecosystem. Quai-Snap is a package that offers Quai Network users a streamlined and familiar experience when using Quai based dApps and managing their funds. Utilization of Quai-Snap requires users to disable the traditional MetaMask browser extension temporarily.
It is important to note that Quai-Snap and its integration with Flask is currently experimental and intended for testnet use only. During testnet, users should never move funds from non-testnet networks into their MetaMask Flask wallet.
The QuaiSnap wallet will go live with the launch of the Iron Age Testnet. It is not currently live.

Wallet Installation

MetaMask Flask is a publicly available browser extension very similar to traditional MetaMask and can be downloaded on the MetaMask site.
Once you've installed the browser extension, we recommend temporarily disabling MetaMask while using Flask. This helps dApps you'll be connecting to not overload your browser with requests and windows. Disabling the extension can be done by navigating to the extension manager page in your browser and toggling the switch like so:
Disabling the MetaMask Extension via Brave
Toggle process may look different depending on the browser you are using.
Don't worry, you can easily disable MetaMask Flask and re-enable MetaMask or any other browser wallet you have by toggling the switches. All your wallets, data, and tokens are saved regardless of whether the wallet extension is enabled.
You can now setup your MetaMask Flask wallet. Upon first time setup, you should always create a new wallet and seed phrase. Do not import an existing wallet or seed phrase from any other chain.
Choose the create a wallet option
The seed phrase you generate in this step will be used to derive all 13 of your Quai Network addresses. Make sure that you store this phrase offline, in a secure manner as it will provide access to all of your funds, testnet and later mainnet on Quai. If you lose it, the funds will not be able to be recovered.
Next, we'll be heading over to the Quai dashboard wallet page to take our newly made MetaMask Flask wallet and use it to generate all 13 of our Quai Network addresses.
To generate your Quai Network wallet addresses, all you'll need to do is press the button that says "Connect with MetaMask Flask". Connecting your wallet to this page will interact with Quai-Snap to generate a wallet address for each chain in Quai Network. After pressing the button, Flask should prompt you with two messages. The first will look like:
The above prompt from MetaMask Flask might look familiar if you've used MetaMask before. It's the general prompt show when connecting to any dApp regardless of chain. Go ahead and press connect. You'll then see this prompt appear:
Snap Installation Request
Flask is now prompting you to install quai-snap into your flask extension. This will give the snap access to your generated public key, which will be used to derive your Quai Network public/private key pairs. This also gives permission for Flask to route Quai Network transaction and interaction requests to the snap, with your permission. Press the "Approve & install" button at the bottom of the page to continue.
You've now generated all 13 Quai Network accounts, one for each chain in the network. You can navigate over to the accounts tab in the top right to view them. Now, you can copy your addresses into your node/miner and earn testnet QUAI, send and receive tokens, hit the faucet, and explore decentralized applications.