With Metamask recently releasing its canary distribution called Metamask Flask, they have opened up various ways to extend Metamask functionality by means of snaps (something like plugins but for Metamask). Mina snap is one of those plugins that enables Metamask (Flask) users to interact with Mina protocol. More specifically, Metamask users can do actions like any other Mina wallet including signing messages, sending transactions and verifying signatures. Even though snap currently has limited UI possibilities, in the near future, we should be able to display various chain and wallet data inside Metamask itself.

MinaSnap showcase

How it's made

This project is organized in a monorepo repository by using Lerna and written fully in Typescript. It consists of a snap package itself that utilizes a mina-signer library and a demo app written in React. Hack also includes a modified version of Metamask and various scripts to run all components.