Web3 Mini Programs? An Analysis of MetaMask Snaps

BeginnerJul 29, 2024
MetaMask Snaps are described as the "mini programs" of the Web3 world, providing a platform for developers to create applications on MetaMask that interact with various blockchain technologies. Although Snaps has not gained much recognition since its launch, it offers features such as account management, cross-chain interoperability, communication, and security.
Web3 Mini Programs? An Analysis of MetaMask Snaps

MetaMask Snaps (https://metamask.io/snaps/) is an ambitious project. However, setting aside its “idealistic” façade, I prefer to call it the mini program of the Web3 world or give it a fancier name: dApplet.

As developers, especially those in China, the concept should not be unfamiliar. In recent years, we often hear terms like “ecosystem building” and “super apps” in the tech industry. Commercial giants always aim to make the internet more closed to transition from service providers to standard setters.

Now, this trend seems to be slowly drifting into the Web3 domain.

As of today (June 2024), Snaps has been around for nearly a year since its introduction and at least four years since the concept was proposed, but ordinary users know almost nothing about it. Some friends of mine who are very interested in the crypto market use MetaMask as naturally as eating or sleeping, yet they still don’t know what MetaMask Snaps is. However, after I explained it to them as “like mini programs,” they immediately showed an inexplicable smile (they are developers, mostly front-end developers).

This scenario reminds one of the early days of WeChat mini programs when usage was low due to the obscure entry point. It wasn’t until the entry was moved to a pull-down list on the homepage that usage significantly increased. If MetaMask wants to build an ecosystem, attracting users through the gateway will likely become an urgent problem to solve.

Mini programs have been controversial in the tech industry since their inception. Front-end engineers generally sneer at them, considering them merely commercial tools for internet giants to monopolize traffic and lock down ecosystems, contributing little to technological development. What contributions will Web3 Snaps make to the community? Browsing MetaMask’s documentation increasingly suggests that future Snap developers will experience the hardships of dancing in shackles.

It’s been almost a year since MetaMask launched the public beta of Snaps, yet the number of available Snaps listed on their official website is still not large. As of June 2024, there are only 68. It’s worth noting that before the official public beta, the concept of Snaps was proposed as early as 2020, giving Web3 companies and developers ample time to understand it thoroughly.

Some Snaps

I haven’t met any developers dedicated to creating Snaps, but I know many mini program developers in the Web2 world. The general opinion about mini program development is that the experience is quite poor. Although mini program development still uses the front-end ecosystem, it is a stripped-down version. Vendors impose various restrictions on what developers can actually do for various reasons. Additionally, the technical capabilities and the quality of the documentation provided by different vendors are inconsistent, causing developers to encounter numerous odd issues on various platforms before they are praised as “experienced.”

Returning to Web3, Snaps is likely to face similar challenges due to security considerations. It has to run in an isolated secure context, using “secure ECMAScript,” which imposes some limitations on the JavaScript API. For instance, it cannot access the DOM, Node.js, browser plugin APIs, and so on.

Due to understandable security concerns, the most basic Snaps cannot do much. Most of its functionalities require the appropriate permissions. Therefore, Snaps need to request relevant permissions from users during installation. The available permissions include lifecycle, transaction, signature, CRON, etc.:

https://docs.metamask.io/snaps/reference/permissions/#eth_accounts

Compared to the thriving Web3 ecosystem, the number of available Snaps is currently quite limited. MetaMask has categorized these few Snaps.

Snaps type

According to the classification of MetaMask official website, it can be roughly divided into 4 types:

Account management

01

This type of Snaps primarily enhances private key security through Multi-Party Computation (MPC) technology. (https://blog.usecapsule.com/what-is-mpc/).

Consider how we usually protect our private keys. Many people probably save their mnemonic phrases somewhere, likely on their computer or phone. Of course, if you are wealthy and have significant funds in your wallet, you might use more secure methods, such as hardware wallets. However, most people simply paste their mnemonic phrases somewhere convenient to avoid forgetting them entirely.

This method of saving mnemonic phrases can cause some problems:

  1. If you forget where you saved the mnemonic phrase, you are likely to lose access to your wallet’s assets.
  2. If the device where you saved the mnemonic phrase gets infected by malware, it is challenging to prevent hackers from stealing your mnemonic phrase. Some users might increase security by splitting their mnemonic phrases and storing them separately. This might enhance security but also increases management difficulty and the risk of forgetting.

MPC technology can automatically split your private key into multiple parts, stored in different locations. These parts are only recombined to generate the complete private key when a transaction signature is needed, without ever generating the full private key during the process, thereby maximizing protection against key leakage.

As of now (June 2024), there are only three account management Snaps: Capsule, Silent Shard, and Safeheron.

  • Capsule uses the device’s PassKey, recovery password, and 2FA to jointly maintain the same key. If one is lost, the key can still be recovered using the other two.
  • Silent Shard and Safeheron achieve this by installing their apps on multiple devices.

It is hard to say how many Web3 users these Snaps can attract. Judging by the data on the Snaps website, there are very few of these types of Snaps, and their installation numbers are not high.

Using these Snaps is not complicated, so there’s no need to elaborate further. After installation, a new address will appear in your MetaMask wallet:

interoperability

02

This type of Snaps primarily provides compatibility with non-EVM networks. We can see many familiar chains, including Solana, Cosmos, Near, Sui, and more. Currently, these Snaps are the most numerous, accounting for more than half of the entire Snaps ecosystem.

Rich multi-chain Snaps

Notifications and Chat Communication

03

I personally prefer this type of Snaps. However, given the many available chat applications, users willing to send messages through a blockchain are clearly in the minority. Unfortunately, we can only continue to “fight for the future.”

Security

04

The demand for this type of functionality seems quite significant, especially since MetaMask’s warnings for users encountering phishing transactions are often insufficient. Transactions, being the most common operations in the cryptocurrency and blockchain fields, are inherently high-risk and sensitive. By using the transaction insight features provided by Snaps, developers can present users with richer transaction information, offering analysis and insights to minimize asset loss.

A friend of mine once experienced having his account balance transferred by a phishing site, with MetaMask providing no warnings from wallet connection to successful transfer. Unfortunately, he had to switch to another wallet. At that time, I wasn’t familiar with Snaps and only recommended ZAN’s KYT service to protect his transactions:(https://zan.top/home/know-your-transaction?chInfo=ch_wxdyh). I hope these security-focused Snaps can address MetaMask’s shortcomings. In fact, according to data from the Snaps website, security Snaps are indeed in high demand, second only to multi-chain support, currently accounting for one-fifth of the total.

MetaMask Snaps provides the endowment:transaction-insight and endowment:signature-insight permissions to meet these needs. Once a Snap requests these permissions, it can read the raw payload of transactions or signatures when users initiate them. The Snap can then analyze this data and display more comprehensive security information to the user.

Idea

MetaMask aims to expand its domain to other blockchain platforms through Snaps, but it is uncertain how far this ambition will truly go. Looking at Web2 mini programs, although many apps offer mini program versions, these often provide services that are far inferior to the main app and are frequently behind in adopting new features. Many mini programs even redirect users back to their main apps. As mini programs surged, more apps also sought to join the trend, launching their own mini program platforms, strengthening their own “moats,” and making the Web world increasingly “centralized.”

The capital in the Web3 space is no more sophisticated than in Web2. If Snaps develops well, more wallets are likely to follow suit. If this happens, Web3 developers will need to create versions of “Snaps” for each wallet, which could become quite overwhelming. However, if every vendor builds their own “Snaps” ecosystem, it might end up with no unique ecosystems at all. Interestingly, this aligns with their “decentralized” labels🤭.

We might predict that in the future, various “Snaps-like” solutions will emerge, with significant platform differences. This could lead developers to focus on compatibility across platforms, eventually reaching an intolerable level. Thus, the Snaps Standard might be born amid the anticipation of many developers, along with various “SIPs” for community discussion, leading to a vibrant community.

Sorry if I seem somewhat skeptical about MetaMask Snaps. Nonetheless, it is a product built by passionate developers aiming to solve real problems, rather than a scam initiated by financial experts. For most MetaMask users, Snaps may not yet be a crucial feature, and MetaMask will likely need to do more work on effective promotion.

Disclaimer:

  1. This article is reproduced from [ZAN Team], the copyright belongs to the original author [gin-lsl], if you have any objections to the reprint, please contact the Gate Learn team, and the team will handle it as soon as possible according to relevant procedures.

  2. Disclaimer: The views and opinions expressed in this article represent only the author’s personal views and do not constitute any investment advice.

  3. Other language versions of the article are translated by the Gate Learn team and are not mentioned in Gate.io, the translated article may not be reproduced, distributed or plagiarized.

Web3 Mini Programs? An Analysis of MetaMask Snaps

BeginnerJul 29, 2024
MetaMask Snaps are described as the "mini programs" of the Web3 world, providing a platform for developers to create applications on MetaMask that interact with various blockchain technologies. Although Snaps has not gained much recognition since its launch, it offers features such as account management, cross-chain interoperability, communication, and security.
Web3 Mini Programs? An Analysis of MetaMask Snaps

MetaMask Snaps (https://metamask.io/snaps/) is an ambitious project. However, setting aside its “idealistic” façade, I prefer to call it the mini program of the Web3 world or give it a fancier name: dApplet.

As developers, especially those in China, the concept should not be unfamiliar. In recent years, we often hear terms like “ecosystem building” and “super apps” in the tech industry. Commercial giants always aim to make the internet more closed to transition from service providers to standard setters.

Now, this trend seems to be slowly drifting into the Web3 domain.

As of today (June 2024), Snaps has been around for nearly a year since its introduction and at least four years since the concept was proposed, but ordinary users know almost nothing about it. Some friends of mine who are very interested in the crypto market use MetaMask as naturally as eating or sleeping, yet they still don’t know what MetaMask Snaps is. However, after I explained it to them as “like mini programs,” they immediately showed an inexplicable smile (they are developers, mostly front-end developers).

This scenario reminds one of the early days of WeChat mini programs when usage was low due to the obscure entry point. It wasn’t until the entry was moved to a pull-down list on the homepage that usage significantly increased. If MetaMask wants to build an ecosystem, attracting users through the gateway will likely become an urgent problem to solve.

Mini programs have been controversial in the tech industry since their inception. Front-end engineers generally sneer at them, considering them merely commercial tools for internet giants to monopolize traffic and lock down ecosystems, contributing little to technological development. What contributions will Web3 Snaps make to the community? Browsing MetaMask’s documentation increasingly suggests that future Snap developers will experience the hardships of dancing in shackles.

It’s been almost a year since MetaMask launched the public beta of Snaps, yet the number of available Snaps listed on their official website is still not large. As of June 2024, there are only 68. It’s worth noting that before the official public beta, the concept of Snaps was proposed as early as 2020, giving Web3 companies and developers ample time to understand it thoroughly.

Some Snaps

I haven’t met any developers dedicated to creating Snaps, but I know many mini program developers in the Web2 world. The general opinion about mini program development is that the experience is quite poor. Although mini program development still uses the front-end ecosystem, it is a stripped-down version. Vendors impose various restrictions on what developers can actually do for various reasons. Additionally, the technical capabilities and the quality of the documentation provided by different vendors are inconsistent, causing developers to encounter numerous odd issues on various platforms before they are praised as “experienced.”

Returning to Web3, Snaps is likely to face similar challenges due to security considerations. It has to run in an isolated secure context, using “secure ECMAScript,” which imposes some limitations on the JavaScript API. For instance, it cannot access the DOM, Node.js, browser plugin APIs, and so on.

Due to understandable security concerns, the most basic Snaps cannot do much. Most of its functionalities require the appropriate permissions. Therefore, Snaps need to request relevant permissions from users during installation. The available permissions include lifecycle, transaction, signature, CRON, etc.:

https://docs.metamask.io/snaps/reference/permissions/#eth_accounts

Compared to the thriving Web3 ecosystem, the number of available Snaps is currently quite limited. MetaMask has categorized these few Snaps.

Snaps type

According to the classification of MetaMask official website, it can be roughly divided into 4 types:

Account management

01

This type of Snaps primarily enhances private key security through Multi-Party Computation (MPC) technology. (https://blog.usecapsule.com/what-is-mpc/).

Consider how we usually protect our private keys. Many people probably save their mnemonic phrases somewhere, likely on their computer or phone. Of course, if you are wealthy and have significant funds in your wallet, you might use more secure methods, such as hardware wallets. However, most people simply paste their mnemonic phrases somewhere convenient to avoid forgetting them entirely.

This method of saving mnemonic phrases can cause some problems:

  1. If you forget where you saved the mnemonic phrase, you are likely to lose access to your wallet’s assets.
  2. If the device where you saved the mnemonic phrase gets infected by malware, it is challenging to prevent hackers from stealing your mnemonic phrase. Some users might increase security by splitting their mnemonic phrases and storing them separately. This might enhance security but also increases management difficulty and the risk of forgetting.

MPC technology can automatically split your private key into multiple parts, stored in different locations. These parts are only recombined to generate the complete private key when a transaction signature is needed, without ever generating the full private key during the process, thereby maximizing protection against key leakage.

As of now (June 2024), there are only three account management Snaps: Capsule, Silent Shard, and Safeheron.

  • Capsule uses the device’s PassKey, recovery password, and 2FA to jointly maintain the same key. If one is lost, the key can still be recovered using the other two.
  • Silent Shard and Safeheron achieve this by installing their apps on multiple devices.

It is hard to say how many Web3 users these Snaps can attract. Judging by the data on the Snaps website, there are very few of these types of Snaps, and their installation numbers are not high.

Using these Snaps is not complicated, so there’s no need to elaborate further. After installation, a new address will appear in your MetaMask wallet:

interoperability

02

This type of Snaps primarily provides compatibility with non-EVM networks. We can see many familiar chains, including Solana, Cosmos, Near, Sui, and more. Currently, these Snaps are the most numerous, accounting for more than half of the entire Snaps ecosystem.

Rich multi-chain Snaps

Notifications and Chat Communication

03

I personally prefer this type of Snaps. However, given the many available chat applications, users willing to send messages through a blockchain are clearly in the minority. Unfortunately, we can only continue to “fight for the future.”

Security

04

The demand for this type of functionality seems quite significant, especially since MetaMask’s warnings for users encountering phishing transactions are often insufficient. Transactions, being the most common operations in the cryptocurrency and blockchain fields, are inherently high-risk and sensitive. By using the transaction insight features provided by Snaps, developers can present users with richer transaction information, offering analysis and insights to minimize asset loss.

A friend of mine once experienced having his account balance transferred by a phishing site, with MetaMask providing no warnings from wallet connection to successful transfer. Unfortunately, he had to switch to another wallet. At that time, I wasn’t familiar with Snaps and only recommended ZAN’s KYT service to protect his transactions:(https://zan.top/home/know-your-transaction?chInfo=ch_wxdyh). I hope these security-focused Snaps can address MetaMask’s shortcomings. In fact, according to data from the Snaps website, security Snaps are indeed in high demand, second only to multi-chain support, currently accounting for one-fifth of the total.

MetaMask Snaps provides the endowment:transaction-insight and endowment:signature-insight permissions to meet these needs. Once a Snap requests these permissions, it can read the raw payload of transactions or signatures when users initiate them. The Snap can then analyze this data and display more comprehensive security information to the user.

Idea

MetaMask aims to expand its domain to other blockchain platforms through Snaps, but it is uncertain how far this ambition will truly go. Looking at Web2 mini programs, although many apps offer mini program versions, these often provide services that are far inferior to the main app and are frequently behind in adopting new features. Many mini programs even redirect users back to their main apps. As mini programs surged, more apps also sought to join the trend, launching their own mini program platforms, strengthening their own “moats,” and making the Web world increasingly “centralized.”

The capital in the Web3 space is no more sophisticated than in Web2. If Snaps develops well, more wallets are likely to follow suit. If this happens, Web3 developers will need to create versions of “Snaps” for each wallet, which could become quite overwhelming. However, if every vendor builds their own “Snaps” ecosystem, it might end up with no unique ecosystems at all. Interestingly, this aligns with their “decentralized” labels🤭.

We might predict that in the future, various “Snaps-like” solutions will emerge, with significant platform differences. This could lead developers to focus on compatibility across platforms, eventually reaching an intolerable level. Thus, the Snaps Standard might be born amid the anticipation of many developers, along with various “SIPs” for community discussion, leading to a vibrant community.

Sorry if I seem somewhat skeptical about MetaMask Snaps. Nonetheless, it is a product built by passionate developers aiming to solve real problems, rather than a scam initiated by financial experts. For most MetaMask users, Snaps may not yet be a crucial feature, and MetaMask will likely need to do more work on effective promotion.

Disclaimer:

  1. This article is reproduced from [ZAN Team], the copyright belongs to the original author [gin-lsl], if you have any objections to the reprint, please contact the Gate Learn team, and the team will handle it as soon as possible according to relevant procedures.

  2. Disclaimer: The views and opinions expressed in this article represent only the author’s personal views and do not constitute any investment advice.

  3. Other language versions of the article are translated by the Gate Learn team and are not mentioned in Gate.io, the translated article may not be reproduced, distributed or plagiarized.

Start Now
Sign up and get a
$100
Voucher!