How and why we democratize access to the decentralized web with MetaMask Snaps by Francesco Andreoli
Ethereum Denver·Mon, Oct 9, 2023, 12:00 AM
The ad-based internet is broken. The web 2.0 status quo was built when the internet lacked a transactional layer. It wasn't easy to monetize, so people and their data became the product. Disparate, centralized services meant that users had to remember hundreds of passwords to hundreds of platforms regularly being hacked and leaking data. MetaMask Snaps use Secure Ecma Script allow the wallet to be securely extended at run-time to support a variety of new use-cases. Francesco Andreoli Developer Relations Manager MetaMask/ConsenSys
Transcript
Cool. Is it working? Awesome. Awesome. How are you guys doing?
How is it Denver going so far? Oh, how are you guys doing? How is Denver going so far? Very good. Very good.
Very good. See some energy. So many strangers here that I don't know. But anyway, awesome awesome guys. Glad to be here and uh um glad that we're speaking about snaps metam mask web3 culture uh where we see the future and why we need the community inside uh this ecosystem.
So uh the agenda so obviously it's 20 minutes and this is an interactive session. So if anybody of you has any question during uh during the talk feel free to raise your hand. I'm not seeing very well but I will just do like that. Uh cool. Uh I want to speak about why web three matter.
So this is a product agnostic talk. Um why we need uh developers in the community building why we need to have a transparent uh basically a transparent solution and permissionless solution. Then we speak about MetaMask the platform itself which which kind of developer tooling we are offering today. Obviously we're speaking about snaps that's a core uh of our uh uh bounty I did Denver this year we actually like I hope like how many of you guys are um working and submitting some uh some uh some solution our bounty then we we quickly run through like what's the developer ecosystem look like how many of you guys know Metamasnaps very good very good okay I see some also some some ants in the back it's great to see it but so why web three matters Right? Like I don't want to these are slide and we can share the slide afterwards but we all know that uh the web through ecosystem you know like when when everything is free we are we are our own products.
We have centralized services we we get tracked uh by um yeah by spec specific and different solutions. uh we don't get uh our our user we don't have our really uh access on what we can do and cannot do and we are literally the product and this cannot work uh uh anymore and obviously everything is is uh is is is growing and uh and uh we are also like experiencing some sort of like decline that's why we are in the web3 ecosystem that's why we're building solution that are fully permissionless so we wrote like five principle right and uh I don't know if anybody has more principle feel free to shout those out but I think first we need to have user owned accounts so the end user need to have full control on their assets on their identity uh I think this is like a principle that we should really write in setting stones and uh when we build something we need to think about this second one accessible interface everything need to be comp comprehensive able and modifiable and uh you will see also on snaps that every transaction that is happening and every access request that's happening you are the end user is fully aware of what's happening even when you connect with your Wi-Fi explicit request user control is priority right we need to understand when you're sharing your account information when you have access to your funds and any solution out there need to have those uh specific like uh requests and need to be transparent Right. Re revocable permissions. I think this is like a milestone. So the user is in is really in full in control.
Right. So anything that has to do with like uh managing their request and uh not just in in in the ext extension or wallet space right in any solution out there. And today not all the time uh we are actually aware about what we are connected with and uh we even don't know sometimes how we can log off and completely log off from uh from a platform share progressively. So this is basically like uh we need to have like a way that the community is taking what we're building the community is owning what they're building and is actually moving forward. Today I'm seeing like every week new wallets, but are we actually building and moving forward in our ecosystem with new futures with something that we can progressively build?
So resuming building sustainable regenerative solution, right? We need to build for community and for a fully interoperability ecosystem. We need to build for utility. So we need to start making things that actually people love. And I think this h it's UX is a very big uh part of it.
And uh we also kick off like last year our first uh UX hackathon. And this is actually not just specific to snaps but I think like end users and web to uh UX designer need to have like a you know a thought about uh how actually people are on boarding build for social trust and attestation and build for extensibility. So I want to also like speak about about the extensibility a little more but people need to be able and developers in the ecosystem user need to be able to uh continuing and furthering uh add extensions or add a function to whatever they are using right and I think this is also what matters and what users are searching today. So obviously MetaMask is providing a concentral uh transactional layer for the web allowing new ethical business models 30 million active users we already know that but we always build more extensible and universal uh wallet features client side APIs um so crossplatform because obviously how many of you guys have metamask wallet today because not everybody know know about it cool obviously we are in it Denver so hopefully some people know about this desktop shared um and also integration with new other wallets. So we're coming uh to actually the the the main point.
So what is MetaMask or what developer tooling we are providing? We have three big verticals today and sometimes when you hear about those like we are always maybe speaking about snaps or API but those are the three API mobile SDK and snaps. Today I will concentrate on snaps but uh if anybody's also will be in GDC we will see bunch of stuff on mobile SDK where uh where actually game developer can implement natively uh metam mask inside their uh their games. So snaps everybody understand a little bit what it is. uh we already explained in in our bounty but snaps allow to extend the functionality of MetaMask today fully in a decentralized and secure way and uh and uh actually user will keep control out of it right and I think this is something that uh is is not just a project it's a very communitydriven um a very communitydriven like campaign and and snaps are literally like the next big wave of innovation in into like the web three not just wallet ecosystem but in uh in in our ecosystem.
So trustless execution uh running inside MetaMask right now they're acting as a separate DEP but uh but in the future will be directly in in our extension zero permission by default this is basically line up with our second uh big principle that means that you as end users or as developer now building uh uh your snap with flask that's uh that's what's supported today you will see basically every uh access that you get to the extension So network access this access specific things like even Wi-Fi access. So interoperability means also like the snap can have its own API and can interact with uh specific other API like similar we saw like push notification and other and other API and it's not just naps exclusive. I think that's important to understand. This is how it look like and uh when we are actually like getting and is requesting for a permission and even those two there are kind of like really lowlevel uh ask they're they're displayed to the end user fetch and display transaction inside and access to the internet. So you are again you are completely aware of what's happening your snaps and how is interacting with the extension.
So how the snaps works for anybody that still didn't start building and targeting our bounty. Um a snap is literally an npm package. You have a source code you have manifest and a package.json and uh at the end of the slides we have also a cool QR code with uh also a monor repo snap attached and you will see all these file uh around it. So all these three file in a single JavaScript file and push to npm and we're getting to the next slide how we are distributing the snap.
So we publish to npmjs.io. You deploy a dab to invite user to install those snap and basically you can different user can directly um uh get your snap connecting and installing. Fourth after installation snaps appear in snap menu under setting. So this what you see here on the left um is basically like on setting in flask you see all your snap installed and where are when are active or or disactivated and obviously like other uh deps can use your snap too.
I think like this is also like the big part like this is a community uh build snap for for the community. So speaking about use case what actually a snap can do that our extension doesn't do. So this is like when we started building this like everybody came with like different pain points on what can we do can we actually use bitcoin we know everybody know that is metam mask is a EVM compatible wallet but how about like nonem extensions right and this is one big use case so nonvm compatible snaps like think about a BTC snap or a filecoin snap and uh and today actually you can send transaction on metam mask on bitcoin using and activating the BTC snap There are a bunch of those and EVM extensions is one part of the big use cases. Uh I'm I'm super interesting in uh in identity in communication. Think about also notification snap that natively are notifying by uh you by an event that triggers uh think about back in uh back in uh our previous event like uh in uh in Amsterdam uh our team built like a was that like an on onchain uh arbitrage boat that was super cool hopefully like we can uh we can get it back but uh those are literally like different use case and uh and yeah like think about also like NPC CN snaps account recovery um with with with known obviously known email account recovering directly on on chain that's that's uh that's super cool and actually the the use case are are endless so an ever growing API today we displaying costume dialogues we can notify users you can store and manage data think about the IPFS the the file called snap and we have batch of also like repo that we can show um after with uh with this resource hub that we built for you for for Denver derivative arbitral entropy populate pre-transaction and scale uh schedule active uh action with chrome jobs the and obviously like this is just the beginning there are a bunch of things like uh like UX extension directly um and uh yeah quite excited about that so why is this important this is a general thing but uh we need to understand why the community will play a really big role today so everybody knows know this, right?
That's an iPhone. There are different apps uh in our uh in our device today and around 4.5 million and probably more like uh in 2022 uh u yeah there are apps in our Apple store and how many of those apps are actually built by Apple I don't know shoot like like I don't know 10% how many of those app are actually built by Apple 10% 5% 1% 01% % No one is no one is raising their hands. 01%. Yeah, something something like that.
So the crazy thing is that it's not just 01%. 001% are actually made by Apple. So let's go actually in a in another in another platform Google Chrome. How many extension are actually around 13,000 right? 2021 how many actually are uh spinned by actually Google again 001%.
Beautiful Windows I don't want to like nobody knows how many but obviously like a tiny of those is uh driven by Microsoft. Uh actually this is a favorite one and what's funny about this uh this is not even uh built by by Microsoft. So yeah, so you know, innovation is is not just about like the companies building it, but it's also about like the communities around and building uh uh building uh those um um yeah building those around those platforms, right? Cool. So let's go actually go back that I see I have five minutes.
So today those are like wallet. I don't know if you remember this uh this device Simon back in the days. Today, as I said before, like we're building multiple Simons, right? We're bu building like multiple wallets with the same functionality. We're not actually moving forward.
That's why we want to take from our Simon to actually our uh iPhone, right? Full of like application build by by our community. So again this is a door uh for innovation and uh we as as mentioned before we don't want to be the the blockers and uh and uh the community as is literally limitless. We want to have the community building our uh basically what whatever they need and being part of actually this movement extending the functionality of what MetaMask is today. So here a couple of links.
So flask is uh uh where snaps are available today. Uh that's basically the canary build similar to the staging version of what a web is today and also um uh the snaps website for you to check out. I added here um I don't know if we have time actually to show you like this is a startnet snap that we presented couple of weeks ago at the start session and you can literally interact with uh um yeah basically with stark net with metam mask. It's not a non non EVM compatible snap. I probably like I can show you quickly what I actually have the other one that is quite cool.
The Bitcoin snap. Uh this is as mentioned before you can interact uh uh with Bitcoin directly and uh we will send out probably those slide afterwards. I see we have three minutes. I really want to get some uh some question around this transaction inside snap is actually quite cool. You shall check this out.
Um, we added here some developer resources that also some uh some teams scanned be before in the morning when we were mentoring. But check this out. Scan this QR code because this is like a list of resources from our colleagues uh with not just the monor repo that you want to build but also like bunch of like pre-buil examples of snaps. Everybody scan this code. Starkness snap transaction insights nap and uh yeah be sure that uh you subscribe to our metamas dev that is basically the developer Twitter a little bit more focus on developer insights uh our developer ecosystem super quick.
So a couple of months ago we launched the metamas grand. So anybody that is building not just a snap in hackathon is able to send a proposal. This is a employeesled DAO and the cool stuff about this is that we want to support developers not just on what they're building but also like to further build and not just naps right anything that you think about that make uh make sense developer ecosystem. Yeah, last year we literally throw different hacker houses. We're part of different hackathons and uh not just like it Denver like we were very active in the um ecosystem like hackathon and obviously it's a great honor to be uh back at the Denver again.
developer activation as I mentioned before we don't just do like hacker houses or hackathon but we also throw specific dedicated developer events where uh we show developer how to build not just naps in particular but uh but also like uh invite different like external speakers in our workshop and panels cool awesome thank you so much let's open like we have literally two minutes for questions and uh I also like suggest uh yeah any question that you guys have here a bunch of colleagues that will be around also during our um hackathon those those days and yeah anything we are always like at the the table there anything that there is like feel free to like to DM reach out we have a consensus discord snaps dev and also we have our metam mask and infura channel in in in our spark um discord cool any question out there So what is flask and why developer need to use it. So as mentioned before, snaps today is available with flask and flask is the Canary build of MetaMask. You will see bunch of cool uh extra settings in uh in flask today, right? And we're thinking about new new settings that actually developer uh could think about. But today, for example, in specific with uh with snaps, you can go in settings and check out what uh what snaps you have activated.
And there are a bunch of like uh auto detection features that you can check it out. And uh yeah just go flask and download. Most important thing is that flask and metamas should not be installed in the same browser. So create a new profile or uh or uh or another another just use another browser to to build on that. The other question I saw on on the back.
Yeah. Oh, I think we need to take the question down there that uh we have an strict uh schedule. Awesome. Thank you very enjoy and happy Beetle.
Automatic transcript — names and jargon may be misspelled.