WalletConnect 2.0 - To Interchain and Beyond!

ETHCC 4 · July 2021 · 26:03

Pedro Gomes introduces WalletConnect 2.0’s multichain support and updated session management. He also describes support for decentralized messaging through Waku.

Speakers

Topics

From ETHCC 4, hosted by Ethereum France.

Transcript

um okay thank you very much um jimmy from claros and now we will continue with pedro from walleye connect pedro take it away welcome thank you um so very unfortunate for me like opening party tropical theme didn't go so well and i got stung in the eye but that won't stop me because i'm here to present uh walla connect and hopefully some of you already know about that like it's been three years in the making and it's an open protocol for connecting wallets to the apps my name is pedro gomes you can find me on twitter pedrouid i'm the co-founder of wallet connect and i while i do have one eye closed i really hope i can

open your eyes to wallet connect and what it is what is wallet connect and how it does it even work some of you might have been here for longer some of you might have just joined ethereum recently but vola connect was quite uh before volcanic it was quite different ethereum right because you had a much more focused desktop experience metamask was basically the only way and i must say if jimmy is still in the room claro still only uses metamask so a good opportunity to integrate wall connect i'm here to talk to and that kind of focused the experience for dapps and ethereum to have these dap browsers

and a lot of them appeared on the mobile but there was a lot of missing opportunity in the mobile world and that's exactly what wall connect brings volatility enables users to choose from their favorite mobile wallets there are thousands of applications on the app store and thousand applications on google play and you're able to choose the exact flavor that you want that's where wala connects started we just wanted to have a different wallet experience than metamask and not be constrained by desktop because we think that nowadays everyone has a mobile phone more than they have a desktop and if we go look at the global scope there's more mobile phones than there are desktop devices and that experience needs to be shared with the world that's how we're

going to hit the one billion users with ethereum how did how does it work just like on desktop like you are familiar with the metadata mask extension how you're actually prompted to enter an application and just share your accounts metamask mobile integrates well connect so you don't actually have to use that browser and you can connect either to the mobile browser or the desktop browser and you will be prompted the exact same experience from how you use volcanic as you if you were with the metamask extension but you're not constrained to one platform basically wallet connect in a sentence can be described as a secure remote signing protocol it enables you two devices to connect with

end-to-end encryption to share json rpc payloads and if you're familiar with json rpc you basically have the idea of some message some transaction that needs to be signed and the wallets that will be securely managing your private keys with multiple accounts that you have on multiple different chains will have a key to sign the message that was requested by the application the idea is that we completely decouple the the browser or the desktop or whatever the wallet is the wallet is wherever you want it to be not where the dap is you don't need to follow the dab the wallet lives on your phone the wallet lives on your phone and the app can be

even on some device on the street that you want to sign a transaction and using the end to end encrypted json rpc transport that wall connect provides you can connect an application to a wallet without having to worry about it and it looks pretty simple because you basically have a qr code and you scan it and it has just the minimal information to find the two devices and encrypt the messages across the infrastructure and we started with the qr code scanning focusing on there's a lot of desktop users but there's a lot of mobile wallets we wanted to put the private keys on the mobile wallet always with you so that you don't have to carry your desktop around you can go to your friend's desktop and sign in with your account

and not have to share anything and securely connect but we went further and we wanted how about we kept the experience inside of the mobile we're focusing on mobile first so why don't we just use the mobile browser that we have not have every single wallet build another browser we had more than 40 years of browser experience being developed under google chrome and firefox and a lot of wallets were just reinventing the wheel we you can use just mobile safari or google chrome and connect inside of your phone using deep linking to your favorite wallet there's no need to choose as you can see there's even four pages of wallet here like there's so many integrations with wallets nowadays that we might even need

to have a search bar there so you can find your wallet and we even went further we thought why not have even the desktop users connect to their favorite desktop wallet inside their desktop the same device you're able to copy to clipboard you have an example here of gnosis safe where you can have your multisig connected to any dap that they although gnosis actually supports a lot of adapts inside you can connect to your favorite yield farming your favorite dow the newest nft platform whatever you want is available through wallet connect and i'm really glad to see this graph because i remember presenting this a while ago and it was like 5 000 downloads a weekly now it's crashing through 40 000 like

easily and people are really really feeling that this is the way to go like we are not constrained to one wallet we're not constrained to one platform well connect is here to open the doors for the competition of wallets and everyone to have the best user experience they want it's supported by the community and i hope i could fit every one of you guys here and there's a lot of tabs and a lot of wallets and i really hope this continues going on we have over 70 wallets more than 200 apps we keep a registry all of them that the community has been submitting whenever they find a new wap but it's been really good to see like how much it has been supported we started with the prototype back in

2018 with just two wallets and 2019 we went with a v1 beta and it went really well then 2020 we finished the beta and we had a lot of wallets and dabs and now i'm going to actually be presenting about the new protocol it's not a backwards compatible protocol but i think you will enjoy what i have to show so what is new about wallet connect 2.0 wallet connect 2.0 features multi-chain support that's pretty much the biggest feature that everyone is talking about and i think it comes with great timing because now with a lot of roll-ups coming in a lot of application development happening on other chains like cosmos and polka dot we don't have to constrain ourselves to one chain and the infrastructure should be in place for us to develop

a world that fits every use case possible we started with ethereum obviously as wall connect v1 was supported on ethereum only and now we already have support for cosmos currently working on polka dot cello actually already went live with the wall connect v2 production they did an amazing job and jumping in early and we're also going to work on solana and near support the protocol itself actually is agnostic to all of this it kind of gives you this experience where we're going to start seeing multi-chain applications where it's no longer about the wallet deciding which chain you want or what account you're on you can have whatever you want here you have like one of our demos

where you have a wallet connected to ethereum optimism xdi matic i should update that to polygon i'm sorry medic team cosmos hub and all of these accounts are active but that doesn't necessarily reflect on the application the application only needs you to connect to ethereum and cosmos so you have the this idea of a permission system that the wallet will scope it out for each application what is the access the application has without having to sync the state between the two there's an idea that this application let's call it application a wants to connect to ethereum and cosmos and the wallet just shared those two accounts so you

don't actually have to expose everything on your wallet just what it's the minimum requirement you can think of it as if you're connected to an application and it says sign in with facebook standing rotarium this one will just post this one will post and comment there's a set of permissions that it allows but within a wallet context and this also includes the ability that whenever you're actually sending a transaction you will see here that each request is actually accompanied with the chain id of that request so you can have multiple chains and for example imagine you're doing a bridge between xdi if you ever had that experience you will see that you have to send a transaction on ethereum

and then do a claim on next die and then you have to be switching on the wallet from one network to another that is gone you basically just open the scope for the two chains and you target two transactions simultaneously and you can approve them separately with the id of which request goes to who and then the response is reflected on the dab and that goes for ethereum that goes for cosmos that goes for whatever chain you want to support this is possible through some a lot of work that we've been doing for a lot of years now since 2019 we had this idea that multi-chain will become and will be coming and we worked in these blockchain identifiers that actually define different name spaces and a chain agnostic structure that we were

able to have interoperability between different multi-chain applications and multi-chain wallets without having to be vendor locked into wallet connect itself or to other parties we wanted to bring the interoperability up front so the cips were actually developed before will connect v2 so while connected to can be seen almost us just re-implementing caips in a product and we have both the chain ids and also the account identifiers this is actually still on a draft and some people have provided some feedback on it but basically you can see this almost like as an email where there's no longer this idea of like an address an account has to be accompanied with the context so you either prefix or suffix

it with the chain id and the account is the sum of the address and the chain id and it still reuses the chain id that we saw before where you have for example ethereum eip155 chain id 1 and that address is target specifically for the tier mainnet cip adoption has been starting its standards if you ever work on standards you know that things don't move as fast as software development but it's important to do it right at your first time and we have the support of some projects that are working mostly on multi-chain infrastructure like ceramic alef star name crypto please where you're focusing not developing for one platform or another so you have to

have this idea of agnosticism over the change that you're supporting to so but there's more to multi-chain wallet connect 2.0 brings a lot of the feedback that we've captured from a lot of these teams and one of the most interesting things i would say is the decoupled pairing the qr code that you saw before is in a sense initiation of the session for volcanic v1 but we actually decoupled this understanding of a session and a pairing so that when you go to adapt and you connect to your wallet you're actually pairing the two devices for the end-to-end encryption then you actually instantiate sessions on top of that pairing what does this mean imagine you go to

uniswap and you've never actually connected to this browser you'll have to scan the qr code like while connectv1 did vulcanfit2 will do the same however now you go to another application let's say you go to compound and you go to compound you would have to scan the qr code again you have to pair and the same browser to the same wallet over and over again so the idea here is that once you scan the qr code with dual connect v2 you can instantiate as many sessions as you want without scanning the qr code you will receive a push notification on your wallet hey this session wants to connect with you and then then it will describe the permissions that it requests from your wallet and that basically covers the two points that i want to uh

have here that the couple pairing the permission system are quite uh synergetic there because they uh they were necessary in order for us to decouple the pairing to scope out the permissions that way that you don't have a pairing instantiating and accessing state from other sessions message acknowledgement was part of more of a networking issue that some people would have missing transactions there's some edge cases in network where a websocket would be closing on opening and then you would miss out the message that is fixed with v2 we also no longer have these stalled sessions where one either the wallet or the dap would be disconnected and the other party didn't know so there's a split expiry time

and we also have a single client connecting to the relay that will then manage multiple sessions over it which reduces bandwidth significantly because some wallets had the issue of having to maintain multiple web sockets for the same relay server so i brought up the word relay server and we are used with well connect v1 of talking about bridges but given that the multi-chain world has kind of used more accurately the term bridge to bridge between chains in the wall kind of world we see it more as relaying messages it's more accurate so we changed the name from bridge to relay because it didn't feel right it didn't feel accurate the decentralized infrastructure that

we're bringing with walla connect v2 basically doesn't mean that you can't connect to our servers very simply if you just want to go in a hackathon and just play around with walla connect the idea is that we now are able to actually run two separate servers and sync messages regardless of where whether the world is connected to server b and app is connected to relay server a through the waco network which is the successor to the whisper network that status has been developing we are probably the first project outside of status using waco and we've actually been able to use it very well to sync servers that allows us to basically instantiate relay servers all over the world and have a much

better latency and uptime that we had before where a lot of centralization happened and we ended up having loaded servers if you've used volcanic v1 before this also introduces the idea that you could theoretically not even connect to a server you could have a dab connect directly to the waco network and have your wallet connect to a relay and it would still broadcast the same messages and find the dap or you could even like remove the relay server completely and just have everyone connected to the waka network well i would say that we will get to this point one day but if you've used li ptp gossip sub you will find that the experience is just not there yet so we are still kind of targeting this

experience where we are having relay servers almost acting as a proxy for the waco network in order for us to maintain faster connections and better uptime so i guess you would be asking the question how do i run my own relay for wall connect we would find that maybe it will be a little bit hard and we could provide that for you so we're introducing wallet connect cloud as a service that still doesn't stop you from running self-host you could see it almost as wordpress.org and wordpress.com where wordpress created the biggest blogging platform and you could self-host but we would also provide you a good service that you could run we were

not necessarily thinking about charging just yet it's not about us monetizing monetizing on this step true we have 200 applications but i think the blockchain world is much bigger than that we want to build a network on this and we want you to register api keys so that we can start testing what we find to be the future of the wallet connect network well connect cloud is in a sense a predecessor to the wall connect network and in order for us to happen we want to run internally within within the wall connect cloud the first iteration of the walla connect network because we have had some good results with waco network but i think we can design something much better

where you can provide different services to have the best blockchain experience and you can go to wallconnect.com and subscribe so that you can know when it launches we're aiming for october and we hope that we can meet that expectation so what to look for from wallet connect so right now we have the v2 protocol that's already available the spec is out you can run the javascript clients for browser for node.js and react native we already have two wallets working on the integration for ethereum with pillar and rainbow wallet and we're going to launch the swift and kotlin client soon so that you can have a native ios and a native android

experience we're also going to launch the cloud platform so that browsers can the dabs can register the api keys to access the infrastructure that we're going to provide and we want to provide even more features webtree analytics which we think there's a need here and there were teams like terminal who actually tackled it but while connect is positioned very nicely to actually provide this as part of our service and we also want to offer notifications there is so much of a need let it be for nfts let it be for ens let it be for daos right so much events are happening on the network and we are not able to target the wallet users

without having to rely on a centralized infrastructure however we are already developing a wallet connect network that will be perfect just for that and we want to focus really on that because the future is that wall connect cloud will eventually evolve to be the wall connect network and we would like us would like you to register so that we can build the biggest network possible and then we can introduce different service providers to out betas and compete with us so what's the recap well connect 2.0 multi-chain support everyone loves that decentralized back-end so no longer having to require to run within our servers you can always self-host and not be clustered away we have a much better improved session management with

the multi-chain multi-session clients and message acknowledgement and permission system faster connections within the wall connect cloud a better uptime and that will be our cloud offering and we would like you to go to wallconnect.com and register to hear more so if you have any questions i'll give you time to have it now test oh great talk pedro

um two quick questions when can i use something like osmosis with a wallet connect enabled wallet and other rumors true of a wallet token sorry about the card are the rumors true i wasn't aware of the rumors actually well i have to say that there is a strong possibility for a wallet connect token why would i say this because as we were developing the infrastructure for the wallet connect network we kind of always found these issues of a permissionless in a permission system where there is a very how do you say there's a spectrum

where you need to adjust for latency and permissionless the more permissionless the more latency the less permissionless the the the sorry i think i you get the point like latency is influenced by the permissionless system and we want the well connect network to have and the capability of offering new services without having to actually always go into the gossip network and have the gossip network almost as a fallback so i think there are strong possibilities of a volcanic network and that's why we also want to have the same experience as with the git coin now where they had two or three years of experience within their centralized infrastructure

where they could retroactive airdrop to their most influential and most impactful users because based on the analytics that they had on their network and the same thing with the graph the graph had an amazing rollout from a sas to a network because they were able to have all of that experience from their cloud offering into the network so that they could retroactively airdrop into the most impactful users within their network and what was your first question actually oh yeah we were we were talking to the kepler wall but if you used osmosis like they're doing an amazing job and they're very busy and providing probably the best user experience on cosmos and they're working on a mobile wallet

which will have all connect but that's still to come any other questions so what are some risk factors going towards the cloud approach and then what are some of the community concerns that you've heard you're talking about the server loads currently present in willa connect v1 servers sure yeah so that kind of like brings back like my slide here where basically you have this idea that there's different setups within the network that weren't possible before before we had

literally a single point where everyone had to connect to and that pretty much provided a clog and basically the way the protocol was designed for v1 would have this strong assumption that everyone was going to self-host so having a single point wasn't so much big of a problem but the temporary solution became the solution and then the whole ethereum network was running in that single point that's why we wanted to move away from that and we wanted to create as many points within that network and allow the loads to distribute within multiple nodes and have different servers uh just kind of proxy within the waco network and even though if you don't even connect to one server

you can just go ahead and connect directly to the waco network so you're never how do i say this like basically blocked by our infrastructure network would be replacing this system or yeah so i guess we could imagine that the relay servers would eventually be nodes within the wall connect network where they would be as a layer two to the wacom network if i mean it's very hard to talk about layer twos in a this is not a distributed ledger so it wouldn't be a good terminology but it would be a lower latency network to the waco network which is more permissionless but has higher latency

what's the benefit of not relying on vacuum at that point so there is this idea that the more permissioned you go the lower latency you have and the more permission less you go the higher latency you have so it's kind of adjusting within the spectrum that all of these setups are interoperable but then you come with the degradation of latency as more permission as you go so going through the proxy servers you're going to have a lower latency going through the waco network directly you're going to have a higher latency but you will never be blocked by any i don't know imagine if you're in china and there's like some ip blocking going on thank you awesome thanks a lot for your time guys

thanks for having me you