MetaMask Snaps: Fostering Authentic and Extensible Wallet Innovation

EthPrague 2024 · 1 Jun 2024 · 27:53

At EthPrague 2024, Francesco Andreoli of the Consensys developer relations team presents MetaMask Snaps, wallet features built on top of the MetaMask extension, and argues that permissionless innovation is key to the future of wallets. He sets out principles for user-owned accounts, transparent and revocable permissions and a modular, extensible wallet, and explains why no single company can serve every user journey. He also points Snap builders to support such as the MetaMask grants DAO.

Speakers

Topics

From EthPrague 2024, hosted by ETHPrague.

Transcript

[Music] awesome are you guys excited yeah are you guys excited okay cool cool cool some people excited thanks for not leaving the room uh yeah let's let's get started um okay cool how many of you guys heard about mamas naaps just I want to find you in the speech here okay cool how many of you guys are devals in some Products Company okay okay because because we will speak a little bit about uh developer onboarding so uh and how many of you guys are developers full-time yeah okay sounds good awesome awesome so uh yeah my name is Franchesco for anybody that doesn't know me I'm part of the Deval

team at consensus working on bunch of things lately I've been dedicated on snaps we launched officially like snaps on uh permissionless last year this is a random picture from me uh from E Denver that was super cool and uh and yeah I've been uh been quite uh quite around for like different like developer activation around the ecosystem and I'm just very excited to build uh uh to make you know to help mentoring like developers around the world on on different TCH stack obviously consens is the mod uh uh the mod company I don't know how many of you guys like deployed on Linea Linea is also one Z KVM that we are having under the uh umbrella we killed the switch can you guys hear me no

I can I can shout oh yeah easy the can hear it oh the the screen can hear it okay awesome you guys hear me I just want to understand make understand why we are get this kind of like permission there is bunch of like narrative because why we need a better like web three but basically like I identify like three

main principle around uh permission list Innovation around why you want to build a better web 3 and there are three main things right use your own accounts obviously like we're speaking that a lot we want to give transparency to users to developers and have officially like you know uh instruments to revoke permission I don't know how many of you guys feel that you are really the product in web to uh and uh yeah that's uh that's one of the big part second accessible interface you want to make sure that not just users but also developer understand how you interacting with uh uh with the products so spe specifically to snaps you will see you have a very transparent uh uh interface you can revoke access I don't know how many of you guys revoke

access to your extension on Chrome uh or even if you know how to do it because like right now like you have open literally open uh channels and it's very difficult to understand what what data is actually transferred what uh the data is actually monetized and specific things so uh third big principle of consensual web it's all about kind of like having those requests make people understanding what data you are sharing and what data you actually revoking to Fourth main principle is basically about uh about permissions same concept basically as a user we want to be enabled to understand when we interact with something and understanding also when we are able to um uh to kind of like cut this this connection right and

the third most important one also you want to build a system that is fully modular that is not just extendable for uh from the community for the users but it's also like it's uh it's uh it's make people user uh as kind of like an experimental session right they want to be build on top they want to add new features all the time and it's all about also like trust uh having a user trust in your stack but also having user trust in the ecosystem that you are in so basically like four main things right we want to build for Community for extensibility and for interoperability around around different ecosystems we want to speak about you know trust and attestation um this is something that we're also working on for specific uh uh for specific uh um uh web three

attestation system for like a you know not just manually uh snaps um uh snaps part and then obviously extensibility right we want to have a fully modular system that people can enhance and can build on top of it right so uh I want to make people understand you know I'm not I mean I don't know how future of wallets will look like I can actually tell you what does it look like right PP H one one size fits all right important to understand is that there is no company uh that really know know the best there is no jne that uh satis will satisfy everyone we what we are seeing right now is that uh different uh different Journey for different type of persona right you will have always your

uh nft uh nft heav user you have always uh people more defi Focus you have people that want to have specific like setting in their wallet for uh uh for like you know developer Frameworks so every Journey need to be appearing uh differently and every Journey need to be kind of satisfied and also like the last part I really like this one because uh there is no really entity no no product owner no product Builder there are actually oh nice we're back uh that actually know how to build uh one things right there was one one time back in the back I think four three four years ago that we had something like 7,000 open PR on on the metam source codes that was actually quite quite crazy and basically

what is happening is that we could not satisfy the the speed of innovation and and the grow of uh of both integration and uh and feature requests so we need to start with five principle I kind of mentioned that already so user Centric uh narrative you want to also speak about uh trust uh trust for uh for for the users and for the developers you want to make sure that you're starting with decentralizing your products first I don't know how many of you guys obviously like if you're a developer used in fura deploying on different like uh networks but right now also we're working on something called din decentralized node infrastructure and basically it's kind of like a fully distributed version of infura and it's

quite super interesting to see how those product are getting more and more decentralized so it's I remind everybody this is a journey right so uh it's not about result so why we're building this is obviously to empower uh communities but not just empowering uh just getting feedback but also empowering with specific instrument so that people can actually start to build and extend functionality of uh uh cool so that's what we call permission list Innovation I'm advocating this since quite the early days but without actually providing a full permissioned uh Innovation environment for for developers and Builder around the ecosystem will be very difficult to actually build sustainable products

right that's where we're coming finally to snaps right so snaps uh is nothing else as uh wallet functionality built on top of the extension that you see today think about our adson right so you will see uh different ads on to days you will see uh stuff that is happening uh around non evm compatible snap you will see privacy snap there are different snap uh I I I put here like some of those categories here but basically like I'm super excited about obviously the nonm compatible snap I don't know if many you guys use the Solana snap or the BTC snap for specific uh things um I'm also quite excited about uh uh security snaps uh I'm interacting with there is a snap called blck fans and those guys for

example are uh build this snap that is interacting with uh understanding even before you're signing or accepting transaction uh if you're interacting with a malicious contract or not that's also quite uh quite interesting and then there are snaps around decentralized identity there are snaps around transaction inside that's also one of the early category that we'll be starting building with MPC and TFA for account recovery that's also like quite interesting so the most important things that you want to also like work out today is that today if you go on uh on snaps. mamas. you have like 50 plus uh uh snaps that are loud listed and there are different type of snaps so different depending on what you're doing you can install and deinstall revoke access uh to any snaps today right it's quite cool

because you know from one day to another you get uh you get EX like functionality fully extended uh depending on what you are doing we're also working on uh uh basically UI uh on specific UI component components on both extension and mobile and you will see quite quite cool things happening in in the future I want to have I have three slides just to understand you a bit because these are the question that are always popping up security Wise Snap is basically a fully siloed um uh package that basically like uh is interacting fully independently with the extension so every time that a snap is actually asking information or permissions you will see that and I have a screenshot uh on on the slide yeah so it's uh the cool thing is

that it's not just about is interacting with the extension but also like Snaps are fully um compatible with uh also external apis so basically what you can do is uh leverage your own technology think about I don't know you're building a push notification system you have your own text tack so what what basically is happening you can have the snap interacting with your text Tack and the snap afterwards is interacting directly with with the extension this is the wallet guard snap uh I just want like show you guys how revoke and permission uh looks like uh basically what you can see here is a is um uh is even like you know access to the internet is being uh is being pushed and it's quite interesting that you as a users you really have h a full

understanding of what the snap is asking and what the snap is uh getting uh permissions to right and the cool thing is that you know those will appear in your settings but also you can revoke access specifically to specific snap and uh it's quite it's quite extensible uh and apart that if you want to DD a littleit more those are nothing else as npm uh packages so you will see outter you will see uh the full uh the full code behind the snap and also like you will see right now we are working on this kind of allow list uh DD workflow that is giving basically like what has been due diligence and what else and we're also working on this attestation with Karma trapse I don't know if you heard about these guys but basically you can fully uh start even if are in the

community you can start to assessing and due diligence uh Community now being build uh on top and uh added to the wish list cool so just three things right so first Snaps are sell custodial you can uh you really understand like who they are uh um accessing and what you can interact with also like your own Tex API or also external um and also like obviously like uh whatever snaps you're installing yourself you can dis install and you have full ownership on what whatever you want to you want to do so this for everybody that want to install this is a quick QR code with some guides uh and you will see in the low list today there are four main categories

interrup security uh communication and account management I forgot to mention that the one on communication is actually quite interesting you have a snap that basically can interact with other uh wallets you can basically like we are two friends we are installing both the same snap and basically I can do a chatto chat encrypted chat to chat directly through wallets instead sending transaction is actually quite uh quite interesting for the developers out there they want to get started with SNAP apart like you know if I don't know if you guys are hacking on in in in e prag or in next hackaton we have different kind of like GitHub discussion uh repo some examples now you can fork and build on that and uh and also like some uh some guides there is also a cool wish list um

snap that we would like to see like being built in the in the future and is also like quite quite interesting to see okay now we spoke about snaps right we spoke about you know why this is important why extending the functionality of your wallet uh today is extremely necessary because you know Community is not just asking for different features but I also want to contribute more actively on those uh being feature but I also want to State something you know I think uh you know building to cool technology is not enough you want to also build Frameworks you want to activate uh uh your your your developer Community but most important is you want to align with other uh products around the ecosystem to build cool things and for doing that you need some Frameworks you need to

speak the same language and uh today like we are speaking on different languages around you know developer on boarding even like for the devl how tier like every time that we be debating different uh uh activation we have different metrics and different AI for different Target Persona so um in this last couple of minutes I just want to show you guys what I I've been working on for the past like year and those is basically called like uh Deval Frameworks just to speak about those developer activation a little bit more on a higher level right so that everybody can start um everybody can start kind of like saying okay this top activation are uh very similar to this so kind of like speaking the same

language I don't know if you remember this I don't know I studied that like maybe 10 years ago on uh back on my studies but this is the maslo hierarchy of needs and basically what I did is I recreated this one called Francesco Builder hierarchy of builder needs and basically like this is nothing else as a a pyramid of build low hanging fruit builder needs right so you will have here uh I can I don't think I can point but basically you will have here on the lowest part like what is really necessary for making an activating successfully your developer communities so you have specific things right you know you you need to get your docks on uh on place you want to have your presence and specific Flagship events um

and and different things right you want to have also tutorial guides on your dock there are specific fud for your persona and then like what the part that I really like is basically the second part after you kind of nail down uh your uh your specific needs for for kind of like the low angry fruits right you want to also like build this kind of level of safe space right no one is really deploying on your layer to if you're actually not showing people that you are Thor leader in in the space right this is what I'm calling like kind of like agnostic like layer that is all about uh uh winning developers around uh agnostic and verticalized uh um Activation so this is like I don't have much time but this is basically like one of the main

framework I put also like a full uh like I wrote a quick quick paper on that and that's also like quite quite interesting that I can show you guys also like later and basically that that's compromise like uh uh on on on different levels um and uh what else so uh obviously like engaging developers successfully you want to focus on uh education you want to also like start to think about this kind of second level so you don't want to Shield directly on the on the developer uh face but also like trying to understand that vertical based use case both in docs both in tutorial are very effective and also like most important like be honest of what you're building right snaps has been a huge

Journey it started back back I think like six years ago with Dan trying to add uh Cosmos inter probability and that's where kind of like the thing started to think about okay what else can we add what features can we add and how we can build this kind of like framework for also like developer out in the community to extend the functionality of the wallet and every time we are going to aaton with different specific uh uh snaps tooling for example we went to I don't know like eth Lisbon with transaction inside and then we came back after the hackaton with feedback we revamp our docks we rebuild literally like our docks from scratch and we did that for like six seven times and this was like a big lesson to learn so for everybody they are building uh not just dogs but also

like extending functionality of your product um and uh and the other big part is that you know any activation that you see out there what you want to do is uh understanding what Target Persona you have what type of developer you're engaging with at what stage that basically the second main uh uh framework that I want to show you uh today uh and that's basically it right so this is um and I can kind of like uh I saw quite a lot of things around the ecosystem all the time not just around hackaton but also around the different uh um you know developer ecosystem and today uh without any doubt like the majority of activation are being done in this kind of like product specific

conversion right and basically like I'm ask my I ask myself a lot like what what what really like matters for gaining this kind of topof the funnel developers and kind of the response was quite obvious but I think like we're not really debating this stuff uh uh a lot that uh we need much more like value driven onboarding strategies right we want to build a use case we want to drive specific vertical uh forwards and not just you know shouting hey use this product because of this right if you think about you know deploy having DBS developers to to deploy your your uh Network you know a cool things could be let's start building vertical specific uh uh tutorials and uh and kind of like drive the conversation from there if you

also like start speaking about smart wallets could be cool having some kind of AA meetups driving this kind of narrative and uh this was this was uh one of the my biggest lesson learned and that's why kind of like I try to combine things uh together in here and uh here I don't know if you can read but basically like you have small activation for each part of the funnel and also like one thing to state is that you can have for example product very specific product Community calls you can have very specific uh um webinars or like you know uh workshops there are products specific but in the upper part on this value driven on boarding you want to uh focus on getting developers excited about your not just your own ecosystem but then the

entire like stack where you're working on and also like that's why a lot of activations like you know ecosystem Community call uh could be even like virtual or IRL hackaton they are expanding on different features uh are are very useful and uh and yeah and as you can see here I also try to be quite agnostic as possible with kind of like not focusing on what specific products and uh and uh and yeah and was uh I mean it's quite perceived interestingly and there is also like bunch of like papers on that that everybody can can read and uh one example that uh that was a big Lesson Learned was something called like Builder knights we started with my colleague back in back in the back in there uh something called Builder

knights in like two years ago on on a counter struction meetups and uh it kind of like um evolved this as a movement that people wanted to hear the most kind of like uh agnostic and agnostic debate around these topics and now we run I don't know something like 25 Builder nights in in literally like every city that you saw Flagship and E events happening and was actually quite quite interesting and tonight we're also doing one here at eth prag if you guys want to join yeah so sounds good uh I think I spent an offtime here let's let's quickly recap right so permission is innovation everybody need to kind of build sustainable product regenerative product how to do that is empowering much more uh and activate really your

community don't just wait for feedbacks but build kind of this sustainable like layer so that everybody can build on top of uh uh and enable like this kind of like permission Innovation uh build a Vibrant Community around your product you know not just only focus on your product itself but think about that you want to be a th leader uh first of what you're building before even like uh putting in front of the developer your technology and also like one thing is not just this is not just about devl but also like trying to build uh those relationship from from scratch on you know like you need to a be able to support developers wherever they want and wherever they are in this uh in this funnel and yeah and uh that's a little

bit it right so you know everything it's like we are do we need to remind ourselves why we are also here right we we want to build a better uh you know not just Technology stock but we want to build this kind of permission Innovation we want to empower much more users especially like having this consent is King trying to get users understanding what they're doing and how they can Empower in the self but also in the same time um understanding what access is they're giving to to what so that's uh that's kind of like my presentation and uh yeah I put here some links uh and uh yeah check out bunch of snaps that will happen and I'm open for questions and looking forward to see you guys at e Prague and Builder KN awesome thank you

m I think we have one question there in the just a second I'll activate a mic thank you for the presentation uh yeah great idea really like it uh it's kind of looking at your pyramid of meat uh kind of surprised that uh kind of looking at the physiological needs which is the bottom of the pyramid which food shelter water you need money for that I didn't see any way for third party developers to monetize so what's the plan for that you mean moneti you want snaps be monetizable or yeah of course I mean it's hard work so

why would uh metamask capture all that value yeah I mean let's let's also like we are not owning any snaps out there right like so third party developers uh organization that can build snaps today they're owning their own snap like our own idea is just to pushing like this you know having like a platform for snaps developer to build on top there are different ways to monetize in the future we are building this extend extensible UI uh people can also like you know leverage their own technology stack to to to empower this snap like there are different like transaction insights for example like can work also with your own uh your own API and depending on what you're building you can also leverage your own uh pricing model um I'm looking forward much more

on this right now the allow list is fully like it's is built by us like to get in this allow list uh and with this attestation uh uh service basically you can actually activate much more the community on the DD side so like my assumption is that will be a lot of like snaps developer that will start also did the other like uh snaps that want to go on the on the on the allow list and basically like that's also like one way there are different ways but we are trying to you know like step step by step right and uh there is no uh I mean there will be a way to monetize in the future for both snaps developer but also like users but right now the most important part is satisfying uh feature request and integration and right now like we're

getting like bombard you know like hey we want to have our Tech stock being integrated on the extension on portfolio and in the same time is that we want to have you know like like like especially like non evm uh ecosystems right we want to have support and and now there is a way to start telling people hey there is actually like a way you can build your own uh uh support and you can actually extend the functionality on that amazing is there another question actually also do have one question myself or if you want to go for follow up yeah just sorry just about the due diligence since now you have you know people's private keys and everything

through metamask and you're adding this thirdparty uh I guess developer to add a module into it through a snap uh what's the due diligence like what how are you going to guarantee the security of the third party modules are you going to standardize use something like ERC 69 100 uh to actually follow a standard or what's the process like yeah right now I can tell you a little bit about like you know what what is a snap look like right before I mention those Snaps are fully in siloed so basically everything even interacting and getting access to the the private key like you you basically as a users you need to actually approve it and uh I I can go back to the slides but long story short is that everything

that the snap is allow listing to the extension to do you need to approve it right yeah yeah dep depending there are basically like there are specific like Frameworks that you can do it yeah can show you yeah awesome I also have a question myself it that's okay uh I would like to take the focus away from derel a little bit and ask you how do you think that Snaps are going to help onboard new users to metamask and also if you're doing or planning to do something to help developers designed specifically for you users yeah that's that's a good question so uh before I mention about this kind of like um uh that each Journey will be different so

like my expectation in the future like you will have pre-build uh uh pre-build like kind of like wallets basically whenever you are installing your own extension you will say okay I'm a def heavy users and you have very specific defi snap already pre-installed so I think like this will help a lot on uh specific on boarding for example we see now nft heavy us users they just care about I don't know like nft uh trading or they just want to have specific like features and right now like the the experience will be okay I'm adding like some specific nft snaps and uh and basically like the future will be specific to like having much more customized wallet with preconfigured SNAP I think that's kind of like the way that that I think like customized

Journey will go and to the second part that you were mentioning also how we are supporting like developers to get that so first we have this uh wish list of like snap that we see that users are also asking but also like in terms of support more mon monetary support is we have a full um uh we have met the metamask grants uh Dow there is actually you everybody here can send like a full uh a full proposal for getting granted for building a snap not just a snap also could be leveraging also metamask SDK and specific things and then we have different programs more lower in the funnel like scale I don't know if you heard about it but also is quite interesting and we have a lot of like Snap Builder right now super excited about uh different use case especially

on on counter struction too yeah awesome well thank you so much for joining us a big round of applause thank you definitely be joining you for Builder night later [Music]