New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Upgrade Summit 🚀 EIP-6963 Standardizes Your Browser Wallet Experience

ETHGlobalWed, Oct 9, 2024, 12:00 AM

Join us for the ETHOnline 2023 Upgrade Summit! In this talk, we cover EIP-6963 and how the current user experience of browser extension wallets is lacking, primarily due to the absence of a standard for connecting wallets of the same type. The status quo leads to unpredictable and often clumsy user experiences with extension-based browser wallets. EIP-6963 introduces a new communication channel between applications and browser extension wallets, standardizing how multiple injected wallet providers are detected and displayed. This change aims to provide a better, more predictable, and controlled user experience. ETHOnline 2023 has grown into one of the most exciting events on our calendar, anticipated by hackers all over the world. ETHOnline is a three week long online hackathon with over $200,000 USD in prizes as well as a series of curated summits, celebrating some of the most significant happenings & learnings from the past 12 months in web3. ----------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com

Transcript

[Music] uh I'm going to be talking about EIP 6963 or multiple injected provided Discovery so a little bit about myself I'm V Sharia or puu I'm a developer relations engineer over at wallet connect and just before we get started I would kind of like to take you down the Journey of like why it came forward and how it started in the first place so it all began with window or ethereum which was an unofficial standard um by which most browser wet function today so it was first brought to life by Mist wallet back in 2015 so that's a long time ago um and back in the day the the wallet ecosystem was very small and people kind of like started adopting this standard and it became as big as it is today so most wallets you use nowadays would probably be using window or ethereum right and but this led to a ton of issues so uh I'm going to talk a little bit about why and uh what went from specifically so window. ethereum was as I mentioned an official standard and it was that for a reason because it never was actually an EIP right uh and as the wallet ecos system flourished as more and more wallets started to get into place and there was competition it was impossible to accommodate like multiple wallets with this technique and why is that so the way window that ethereum worked was the wallet would inject its provider into your browser window and when a lot of wallet St providers into that single slot the last one basically remains and is available for you or the end user and I'm going to give you and explain me like I'm five uh type uh explanation for this so imagine you're in a playground and there are different kids with different toys and all the kids basically rush to you to show you that toys because you have the popular kid and you have to pick one quickly and you usually go with the very last kid and his storyy you don't get the option to basically pick and choose and this is what's called race condition and in the case of browser wallets if you had multiple wallets installed all of them would rush to share their provider to you and the last one would often mean win the race and uh what changed then so 2015 that's a long time ago something must have changed right no unfortunately so this unofficial standard saw more adoption by being referenced by another EIP which was 11 193 which was on a completely different topic uh but that one basically set this one in stone and even though the uh actual standard was about the ethereum provider API being mentioned by an official EIP it saw like massive adoption and wallet started fighting for the last place for this injection to occur like right till dat I think this is one of the biggest ux issue in the ecosystem and that's basically the lack of choice we have for the end users and this is where EIP 6963 comes in but before that there was another attempt so 5749 was the first step in the right direction per se it was authored by kosala and he provide uh and he proposed like a window. evm providers subject where wallet would kind of inject all their providers in like an array and this would eliminate this Winner Takes most condition that came with window on ethereum uh even though this was like uh good like it was a step in the right direction uh it did not see enough adoption by wallets to actually go ahead and solve the CX issue and that's where we kind of come our segue into EIP 6963 uh multiple injected provide the discovery uh it's authored by folks like Pedro glitch Gala Richard Jake and a lot of other amazing folks and with directions from like several big wallets like metamask and cryp xerion token crcket rainbow and I think recently even coinbase announced that they would support it in um by the end of this month so to put this issue finally to bed protocols libraries wallets everyone joined their hands for a better standard and after months of extensive discussions meetings and suggestions we finally have a consensus and it was promoted to final a couple days ago and again I'm going to give you an eli5 version of this one as well so remember that playground example so in EIP 6963 the kids would kind of take turns to tell you about their toys they' say like hi I'm kid a I had this really cool toy robot and uh the other kid would say hi I have this colorful puzzle and that way you the end user actually gets to pick and choose which kid you want to play with or which kid store you want to play with uh the website you see here is uh EIP 6963 org you can go ahead and test it out right now it's available on ip69 63. G and it was made by me so moving on I'm going to kind of walk you through a bit of the process of how it works so what happens is the da dispatches an event called e 6963 request provider and in response to that all the wallets start announcing their provider to uh through EIP 6963 announce provider and once the tab has listened to all the announce provider each of them come with uh coming with their own provider and metadata uh this metadata consists of like U ID uh which is to distinguish between the different 1193 sessions the name uh which is what's going to show up in the tab as the name of the wallet the icon which is a data URI which points to the icon of the wallet and rdns which is the wallet's domain name and in at reverse order so if it's let's say xerion it's going to be instead of zion. iio it's going to be io.

zerion if you're if you have programm with Java before you probably are familiar with the rdns syntax and this way the user actually gets to choose which one you want to integrate with now enough of showing I'm going to give you a demo so if you are following through you can just scan this QR code this will open a code sandbox for you I'm going to keep it open for five seconds and then I'm going to go over to the code sandbox to actually show you in uh an environment okay I think that's enough moving on let's go to this tab so over here uh most of the implementation for EIP 6963 would happen through the connect wallet provider side so as of that you don't really have to change anything except from like update your connect wallet options so right now I'm using web3 model V 3.1.0 which supports EIP 6963 by default so there's no additional configuration necessary and what you can do here is you just need to initiate the web3 model and pass in the configuration from wamb config the project ID which you can get from cloud. wallet connect.com and the chain you want to interact with so right now I'm just passed main net but if you want to pass more change you can just um give a comma and write all those down uh right now I'm going to go over to this website which is basically that one but in a different tab I'm going to click on oh it's going to reload okay that's that's fine I'm going to click on connect wallet and as you can see probably as a user you would wouldn't have all this many wallets installed uh but uh since I had to test all these wallets I had to install every one of them but uh you see the benefit of this right instead of having just one browser wallet solution you have all these extensions kind of like popping up and you can pick and choose which one you want to connect with so let's say I want to connect with encrypt I'm going to go ahead and click on encrypt it's going to open and let's say I changed my mind I don't want to connect with encrypt anymore I want to use serion so I'm going to go back and now I can click on serion and I can click on connect and that's it I'm connected uh so this is the ux issue was talking about so initially you would only have the browser wallet option and basically that's the only option you had with this you get to pick and choose which wallet you want to connect with so right now as you can see my ens everything works exactly the same because the provider uh object is exactly the same you can see my address I'm going to go ahead and sign a message so I just wrote GM from E online I'm going to go ahead and sign it and I get the signature so yeah uh this is what EI 6963 is about and thank you so much for tuning in I'd love to take some questions if you want to follow me you can go ahead and scan this link and if you have any questions about thep 63 we can get in touch

Automatic transcript — names and jargon may be misspelled.