ArSnap Developer Preview: Arweave in MetaMask
We’re proud to release the first Developer Preview of ArSnap, the MetaMask extension bringing Arweave into the renowned wallet!
MetaMask is one of the most popular cryptocurrency wallets known for its ease of use, the ability to buy, send, and receive cryptocurrencies from within the wallet, and collect non-fungible tokens (NFTs) across two blockchains. More recently, MetaMask announced MetaMask Snaps, opening new possibilities for users to interact with more DApp.
What are MetaMask Snaps?
MetaMask Snaps is a system that allows expanding the wallet’s capabilities through extensions. Currently, they are available only on MetaMask Flask. A “snap” is a program that runs in an isolated environment that can customize the wallet experience. For example, a snap can add new APIs to MetaMask, add support for different blockchain protocols, or modify existing functionality using internal APIs. Snaps is a new way to create web3 end-user experiences, by modifying MetaMask in ways that were impossible before.
More info about MetaMask Snap: https://docs.metamask.io/guide/snaps.html#what-is-snaps
First and foremost: ArSnap itself, the MetaMask Snap. This is the bit that will get installed into MetaMask in order to extend its capabilities to support Arweave. Eventually, MetaMask should allow Snaps developers to also extend their own UI, allowing users to interact with said Snaps. However, it doesn’t allow it in its current state, so in the meantime, we’re making our own external UI presented as a simple web application, that you can access as simply as any other website.
Here comes… ArSnap Wallet. It allows users to actually interact with ArSnap, enabling them to configure it and also aiming at providing a full wallet experience: manage multiple Arweave wallets, send AR, view transactions… Everything that a user would need to do with their Arweave wallets.
With ArSnap, we’re also aiming at empowering dApps developers to create their very own integration. If you’re developing a dApp, you will need an API to bring ArSnap’s capabilities into it. This is where ArSnap Adapter comes into play. It defines ArSnap’s API and makes it accessible to dApps developers through an easy-to-use and clean API.
But what if you’ve already developed your dApp around ArConnect’s features and API? ArSnap Compatibility Layer to the rescue! We’re making sure that you won’t have to rebuild anything by providing a seamless bridge between ArSnap Adapter and ArConnect’s API. This bridge enables dApps developers that are currently using ArConnect’s API to allow their users to also be able to use ArSnap with almost no extra work!
Try it out
To get a grip on what’s already possible with ArSnap, you can see it in action right now by checking out ArSnap Wallet. It’s already deployed on the Permaweb! You can have a look here: https://arsnap.org.
If you already have MetaMask installed, you’ll want to disable it temporarily in order to install MetaMask Flask, its experimental branch which is only available on Chrome as of this writing. You can get it on its official website: https://metamask.io/flask/.
If you’re a dApp developer and want to build with ArSnap, head over to the Github repository, where we wrote documentation about each module that composes the ArSnap project: https://github.com/pianity/arsnap. You’ll also find an example demonstrating how to use ArSnap’s API using the Adapter.
Beware that we’re just getting started with the ArSnap project! The API might be subject to changes as we are figuring out the best way to expose its abilities to developers and the Wallet should be used for testing purposes only for now. We’ll keep you updated on our progress!