Snaps Permissionless Distribution

Snaps Permissionless Distribution

-

The context

Since the launch of the MetaMask platform allowing the creation and use of "plugins" on the wallet, these "Snaps" must be validated by Consensys. Indeed, it is necessary to verify that they respect the imposed security rules, but also the good development and marketing practices pushed by the platform.

This validation being totally centralized and relying only on a company, one can see an opposition to the thesis of decentralization and freedom advocated by the web3 ecosystem.

This is how the idea of experimenting with the decentralized distribution of these plugins was born.

The platform

Snaps Permissionless Distribution ("SPD" for short) is based on a respect for the ethos of decentralization and openness of web3. Any developer should be able to declare and present their snap on the platform, and anyone should be able to install it, but also give their opinion on the quality, security or UX provided by this tool.

It is the set of opinions, weighted by the quality of their issuer (an auditor having more weight than a brand new MetaMask user, etc.), which allows to determine a trust score to give to the snap, but also to its developer.

This project therefore consists in imagining and implementing a dApp that meets the needs of developers and end users, by displaying all the information around a snap. Part of the platform is based on the reputation score calculation algorithm, based on EigenTrust.

It is also necessary to store the large amount of data generated by the platform in a decentralized but off-chain manner, so as not to put the transaction costs on the end users.

The technical stack

Web3

Hardhdat, Solidity

Front-end

React, Gatsby, TypeScript

Back-end

NestJS, MongoDB

Storage

Ceramic