ZKPodcast: WalletConnect & the DApp/Wallet connection with Pedro Gomes
15 Sept 2021 · 1:07:52
Anna Rose talks with Pedro Gomes, founder of WalletConnect, about how wallets and decentralized apps connect and where that relationship is headed with WalletConnect 2.0. They cover the protocol's move to incorporate the Waku messaging protocol, the role Chain Agnostic Improvement Proposals play in its evolution, and what a genuinely multi-chain future means for wallet and dApp interoperability.
Speakers
Topics
Transcript
[Music] welcome to xero knowledge i'm your host anna rose in this podcast we will be exploring the latest in zero knowledge research and the decentralized web as well as new paradigms that promise to change the way we interact and transact online this week i chat with pedro from wallet connect we trace back to the beginnings of the project to the evolving role of wallets and wallet connecting protocols like wallet connect we look at their use of the waku protocol what prompted the new wallet connect 2.0 development
decisions and what it will mean in a multi-chain future but before we start in i want to highlight something for job seekers in the zk space the next zk jobs fair is happening on september 30th this will be our fourth we host these interactive virtual events on gather.town it's an awesome way to get to know the teams that are hiring in a casual social setting as you are applying so if you're looking for your next jobs be sure to get your application in i've added the link in the show notes for potential hiring teams we still have booths available do get in touch with us by emailing sponsorships at xeroknowledge.fm and in the meantime you can always check out the new website and the updated zk jobs board there you can find open positions at a number of great zk
focused companies so do check it out i also want to thank this week's sponsor enoma noma is a multi-variant and multi-variable bartering protocol that enables bartering among n parties of arbitrary assets including nfts all with zero knowledge privacy enoma makes large-scale settlements extremely efficient since the design of a noma state machine is not based on a step-by-step execution model and it removes the requirements of a double coincidence of wants or direct matches check out the twitter thread from aowa one of the co-founders i've added the link to this thread in the show notes it's a great description of the project we did have another one of the
co-founders adrian on the show back in june in case you want to hear more about the project and full disclosure zk validator has since become an investor in the project so be sure to stay tuned for noma's first public test net in which you'll be able to play with enoma's proof of stake intent gossip matchmaking layer and custom validity predicates check out their code base on github and just know the team building anoma is hiring so if you're interested in bringing financial privacy and sovereignty to the world check out the links in the show notes to their jobs so thank you again enoma now here is my interview with pedro [Music] so this week i'm catching up with pedro from wallet connect we will be diving
into the wild world of wallets and wallet protocols welcome to the show pedro thank you it's actually my favorite show so i'm really excited to be here on this side that's so cool um pedro i feel like you and i we've known each other for sure a few years and i think we might have met before wallet connect but give me a little bit of a background how did we know each other was it hackathons where were we seeing each other originally well i i doubt it was before well connect because i really started with wall connect when i actually started going to conferences and hanging out with the community i would say so well i was already there it's just like it was so unknown that
was just like the staff walking around like that's probably what it was sorry so i i did go to hackathons and conferences and spend quite a lot of time in berlin where we met a couple of times but the project once it got stuck to no it became like oh pedro from walk and i kind of like shifted from like what do you do to like they kind of associate it to me so that was a good transition tell me what you were up to beforehand then what were you doing before wallet connect yeah so i got into crypto uh when i was working in london i was working in a startup bank you know like n26 or revolut if people know those new banks that are mobile focused and
everything and it really got me to learn a lot about the financial industry and around like december 2016 it was just starting like the bull market and i got to learn about crypto and i knew about bitcoin but i didn't know about the tiering and ethereum really fit the bill for a lot of my complaints that i had with the financial industry because we were like in the startup bank that was so exciting you could just build this whole new product around personal finance but then regulations kind of like just stopped you every time like we had so many nice features but it kind of like just either got stalled or
completely modified to the point where like oh this is not even the original feature anymore and ethereum kind of just like said do it the ethereum was like you just do it so after six months of learning about deuterium and talking about it at work i just had to quit i had to move on and that's when i met richard burton and he was working on balance which was a portfolio manager like zaryan zapper and when i joined balance that's when i started like really getting into ethereum the crypto world there i we were working on the portfolio manager a lot but we really felt that one of the most important parts was the actual wallets so our experience was kind of
just so strongly tied to the walls that existed which at the time were basically hardware wallets and meta masks okay so we couldn't really give the full loan experience that we wanted we really wanted to change what means to own a wallet and manage your portfolio so that's where we started to build like the balance wallet but then it just became like these two products that didn't talk to each other and wallet connect just came out of need there okay so it's did it spin out of the company yeah yeah exactly who are your other co-founders um i was in the confirmed i actually joined when it was chris richard and ben okay but then the company has evolved a lot the
company had like three pivots or something and they changed even foundations and everything i see and balance wallet today is actually a rainbow no way yeah oh wild the teams just kind of started like not agreeing on the vision and then they split and then when there was the split the code was separated into balance wallet and rainbow wallet and then eventually balance uh didn't survive and became like just a portfolio manager and rainbow wallets just stick with the wallet went on but what about wallet connect like you sort of mentioned it also came out of that so who was it that first launched that out
were you not part of that part yeah i came up with wall connect actually didn't came up with the name that was actually jin jin came up with the name wall connector it's a joke to bit connect and then it's just stick it just sticks so much oh my god i didn't know that's where it came from that's good it worked really well because it was such a good meme that it just really worked on when you go to conferences and you just joke about it and it just it becomes so catchy but i came up with a protocol to fix basically something that we wanted and i just felt like what is the user experience that we want and then we just built the tech to fit the user experience rather the other way around because it was like completely greenfield project and i just like came
up with wall connect and at the time it wasn't even like what we have in production i currently call it like the alpha and the alpha was like completely different at the time okay but it was good enough for us to do a demo and then we pitched it to return foundation for a grant so that it would become its own thing and that's when i actually left the company to focus on it i got the ethereum foundation grant and i just decided to focus on it 100 there was so much to it and as we can see since 2018 there's still so much to build on it so who were the original the we that wrote the grant i guess that's what i'm trying to understand was it
just yourself or was it like you and a few people me and richard wrote the grant uh but then richer became more like the community builder of wall connect and i was focusing on the actual technology but then obviously richard had to focus on balance and then i just took on it eventually was during that summer and i just took on like well connect by myself and i went to conferences and just talked to people and it just became this thing that i just like evangelized well connect i kind of became like this preaching everyone about this whole new world where like wallet competition will just exist under this whole protocol that everyone shares and we don't have to
depend on metamask and it worked it was kind of crazy at the time and i think i was a little bit naive to even try but i'm glad i was that's cool so let's explain to the audience what is wallet connect exactly because it has the word wallet in it but is wallet connect a wallet no uh i think that's the best part about it right yeah i don't have to build a wallet and i don't have to build a dap but i have to make sure that it works with every wallet and with every dab and it has become quite interesting how non-technological it is sometimes and it just becomes kind of political because i just have to make these decisions that are
the net positive and i have to measure that myself about what are we actually going to implement or not and it just ended up being the more low level you go into the technology the more neutral it becomes so it kind of worked out and i kind of just had to listen a lot i think listening was really what made volcanic work because after talking with so many walls and dabs you start to understand some patterns about what they actually need from each other and i just have to like connect them that's my whole responsibility if i go too much out of it then i start to become a little bit too opinionated and some wallet doesn't like the way i do it or some dap doesn't
like it and if it's neutral enough everyone can use it so yeah cool it's an open protocol to connect waltz to the apps like how does a user see wallet connect like what does it look like to a wallet user yeah well connect came as an alternative to metamask so whenever you actually connect your wallet with that with metamask right now you actually get prompted a lot in a lot of dapps to actually choose between metamask and wall connect and what actually that provides you is with the qr codes and your mobile wallet will be able to scan the qr codes and when it scans the qr code it just has enough information to establish a pairing
between the two devices and start a session where they can talk to each other and this is very very focused because volcanic as it exists today only works with ethereum or evm chains because that was what we were building at the time and that session kind of just understands oh this is an ethereum wall i'm talking to an ethereum that got it i actually did try well connect i think for the first time a month ago or two months ago or something it was really cool it was really fun it was kind of like the mobile wallet it's very different experience it's like you hook it up it's sort of gonna prompt you whatever in the wallet you're gonna get the same kind of prompts you would get in
metamask but that first connection point it was when i realized like what it actually did the fact that you yeah from your mobile phone without having the extension or anything like that could start to interact with this thing in the web and it's kind of happening in real time so you'll like do something online maybe in a browser and then it will be prompted on your phone and anyway yeah for me that was kind of exciting i know this might even be like for real hardcore users like they might have been doing this for a longer time but yeah i thought it was cool yeah i mean when you start to understand what metamask is actually doing it's just most apps are provided in a browser and a browser is probably the most insecure place for you to manage your private
keys so they just kind of move the private key outside of it to an extension so why don't we do that with probably the most popular device on earth which is a smartphone and some might still have some pre-concept of mobile phones are not as secure as desktop but actually in 2021 it's actually quite the opposite the mobile phones have evolved way more because they're not so much professional tools they are more end user tools for leisure mostly so they actually are more sandbox and these applications actually secure data between each one of them more securely than desktop applications so that means that
a desktop application can be compromised by another desktop application while a mobile application would happen if an iphone is jailbroken or an android is rooted so i actually believe that mobile phones are more prepared to manage your private keys than desktop is wallet connect only for mobile though is that the main focus like mobile wallet to dapp or could it be extension wallet to dap as well well extension wallet wouldn't necessarily make much sense because uh as a browser extension doesn't need it it already is built into the browser but we are mostly focused on mobile wallets and we have more than 70 wallets which
it surprised a lot of people because they're like well there's 70 euterium wallets yeah there's more than these are just the ones that support wallet connect but we are starting to see a lot of desktop applications actually making use of this the reason for this is that browser extension design is not actually very competitive and it only allows one browser extension at a time to use ethereum by the way the standards were developed so that means that like in order to compete with metamask a user has to either disable or disinstall metamask which does not end up well for new wallets so they kind of resort to wall connect as a venue for them to actually hit new dapps so for example gnosis safe actually had chrome
extension but then because of this property of browser extensions they ended up deprecating it and just focusing on the mobile app and adding wall connect and they even added to their web app which manages multisigs ability to connect to wall connect so it can even be mobile to desktop and desktop the desktop and we also have mobile to mobile experience as well what is actually happening when you said sort of like wallet connect enabled or like it adds wallet connect what are they doing yeah to do that um if you're a developer the most simple explanation is you're installing a package a library a dependency to your code
that basically means that you're installing some software that enables your browser to connect to a server and in that application you actually have the logic to how to establish a connection with another device that is connected to the same server and encrypt the data in order to relay the data across the server without the server knowing what's going on because if we were actually putting this in more simpler terms walkneck is just a signal for wallets it's just a direct message that it's end-to-end encrypted and there's a dap and a wallet talking to each other well would you say is there any other comparable protocol yeah like is there
anything that's in your that actually does the same thing you're doing yeah for example back in 2018 i remember the first time i actually pitched this to my eater wallet they didn't dislike it but they kind of had some different approaches to some properties of wall connect and they actually decided to go with their own approach and they developed my wallet connect or new connect and basically they have some differences and the problem with mu connect it kinda is not developed for multiple worlds right it kind of just like works for their wallet and it works very well but it just works for their wallet and the idea of volcanic was that there's this strong assumption that it will be a competitive market and this is supposed to work with every wallet and
it's open and it's not permission and also this also happened with coinbase wallet as well where coinbase wallet kind of just took their own approach because they didn't find well connect to fit what they expected from it and they just created a wallet link which is just for coinbase wallet as well and i mean i think they could argue that it's open for other wallets but at the end of the day it is a proprietary solution for a single wallet which kind of defines the whole point of war connect i see going back to what you were saying before where it's like the dapps use some library to enable wallet connect the wallets i guess are also doing that right on their side is this just like a repo that you've
created and it's standard for everyone or is it sort of like for each individual one you've had to create a new integration that's actually a good question um i'm a javascript developer so i basically just designed the system i wrote the spec and then i implemented it in javascript and that was actually a huge blocker in the beginning because a lot of the wallets actually wanted swift and kotlin and only if you were a react native wallet to use this javascript then you would be able to integrate so in the beginning trust wallet and gnosis safe actually came in and they were like okay we want to use this and we're just going to like write clients for it and
they basically just followed the spec and saw the javascript code and they wrote implementation for swift and kotlin and that's how most of the integrations actually followed cool and this as an open source project like the repos republic did they just submit it to yours i always wonder about this like if they do this contribution does it land in your repo or does it stay in theirs so uh from 2018 to 2020 i was just like this maintainer living of grants trying to like make this standard a thing and i was very lucky that it was useful enough that they actually wanted to contribute and i basically just offered that can we put this under the github organization so other people can look at it and yeah they were happy to
do that and that was also one of the greatest thing about ethereum is that it's very collaborative and open source so they just wrote the implementation and i just moved it to the wall connect organization so whenever someone wanted a swift or cuddle implementation i just pointed them there nice were there other implementations that needed to be made that you noticed like were there other wallets using other languages that they need no only very recently there has been a huge demand for flutter okay but javascript swift and kotlin covers pretty much all of it nice and what about on the dap side that's javascript right are dapps always javascript actually well aren't they solidity
okay so this is let's bring us to a good point right what is adap right yeah is adapt the interface or is the dap the smart contract on the chain in my context the dap is the interface so there is a website and you connect that website to a smart contract but then it needs to connect to a wallet but the linking point here is javascript got it smart contract links to javascript javascript links to the wallet i actually didn't realize that i didn't know that that was the flow i mean javascript is huge because of this because it's the language that browsers accept and launching an app to the app store and launching a website has completely different requirements
like it's super easy to create a website nowadays for free even what if your dap is mobile though first if your dap is mobile first first question is can wallet connect with it yes and second question would be does it need special languages to do that because that's not going to be javascript i guess no so when i designed the protocol i designed in the sense that it's a conversation between two clients and the idea of who's that app and who's the wallet was kind of assumed that if i'm proposing to connect to you then i'm the dap and the wallet is learning about you wanting to connect to me
so there's this strong assumption in the protocol but at the end of the day they can act as either that is the wallet it's just whoever is asking to connect to right i see okay so the code base is actually the exact same for that up in the wallet it's just them acting as different agents i guess i see but you couldn't connect a mobile wallet to a mobile dap could you or does it not matter yes it doesn't matter okay okay that was also like one of the decisions in the beginning that i try to use as more popular technology as possible so i try to keep it as simple as possible and
i basically use the web sockets which are supported in almost every platform if not every single platform so that made it very easy that you can have a desktop application a mobile application a browser application it doesn't really matter like as long as websockets are supported it works got it so my first question there was is it possible to even have a mobile dap it sounds like yes sounds like the answer is totally yeah are there examples of this like is there something that maybe is very commonly used and is adapted but didn't occur to me is a mobile dab so it's interesting because uh this goes a little bit back on their history and the team at zerion was actually the
first step to actually support wallet connect outside of balance and okay they have been a huge support because they been there even since the first alpha and they also been thinking about volcanic a little bit more than most i think so they were also the first mobile dap that wasn't in the browser to support wall connect so the xarion on the web and zaryan on the mobile both support wall connect which means they are a native mobiled app that connects to native mobile wallets and they do this through wall can i nice what was that like those early kind of partners what was it like trying to find them it's interesting because there was no money in it right it was literally
just open source and a vision and the open source just kind of existed there to make it easier for people to participate so i kind of just pitched it to a lot of people and hoped they would share the same goals and i just went to a lot of conferences to be honest didn't we all 2018 to 2020 i just went to almost all of them and i talked to as many people as possible and eventually you just get lucky and you find people that actually agree that this should be a thing and they help and they participate and honestly i'm like a face to walconic and i did write the protocols
but the community's support behind it it's really what makes it happen let's talk a little bit about like stability like you're asking teams to use this thing was there a real challenge in getting the level of the protocol up to i don't know a professional level to actually be usable while they're trying it out yeah what was that like early on so yeah that's interesting because we're talking about this in 2021 because 2019 pedro was like this is production ready and once again i would say that like my naiveness is really what brought me here because okay i look today to the version one and i don't see that as something that's production ready because i just
gone through more and as well connect you're not just trying to satisfy your own product you're trying to satisfy everyone's product so if unisof has a problem it's my problem if compound has a problem it's my problem like if a yield farm has a problem it's my problem and it goes even beyond like just what the tier maintenance like we actually see a huge traffic that comes from like these apps that i never learned about and they're mostly from binance smart chain and now we're starting to see from other ones like polygon and all of these new l2 so it is production ready in the sense that it did fit what i needed to do but okay now that i see that there's like so many
use cases i feel like the technology needs to be matured to allow everyone to build on top of it better so let's talk about like stability today then is it very stable or are there actually some challenges you still see so as i mentioned before wall connect is a very simple protocol because you're having this conversation through web sockets which are widely supported and it's a standard that exists for years and it basically you just encrypt with some data in the qr code and you're able to do end-to-end encryption however it's funny to see how the usage really impacted or hit its limits uh with this latest bull market and
especially when there's huge price rises we totally notice our monitoring systems really glowing red and maybe people don't know but well connect from 2018 to 2020 just before d5 summer was like a five dollar digital lotion droplet that i just paid like five dollars a month and it would work it just like managed all the capacity but then it went from 20 to 40 to 60 to 100 and now it's more than 36 servers like on its max capacity on digital ocean not handling the capacity that it's needed for all the users that exist
but this doesn't mean that it has a lot of usage it does have but that capacity also is showing oh maybe it's not designed for scale so even though it's not a blockchain it does have hit its scalability limits why is that like you sort of mentioned servers so it's a protocol but you're also running it so what does that actually mean like is it computing something is it what are these servers actually doing i guess you could just like think of it as a mirror imagine you have to have a conversation where you just have to like bounce a message back and forth and you can't do it directly so you have to bounce it on a server it's just relaying across messages back and forth but
the scalability problem actually comes from some strong assumptions that i made in the beginning that really have hit their limit because i just thought oh it's fine we just like for each session we just create a new websocket it's fine but then there's like if there's too many sessions then there's like too many websockets and i didn't reuse resources properly because it kind of just worked and i mean from a startup perspective i guess that makes sense because you just want to have the idea moving that's what created the movement now everyone sees the value in welcoming so those assumptions were good enough that i didn't over engineer and waited another year to push into production but now
that we actually have like huge usage we actually need better solutions but the reason servers actually exist is that in the beginning i wanted to build it on top of whisper because the whole tri-factor of ethereum was ethereum whisper and swarm and i thought what is the most decentralized solution whisper but we wanted to also execute fast so i just thought i know we'll just create a server that mimics the behavioral whisper and that's how wall connect is it basically just has this publish and subscribe pattern in a server and it doesn't really matter if it's whisper because it kind of looks like it so okay i think that it's good because
now that we're actually transitioning into a new protocol we actually get to build it on top of waku which is the predecessor of whisper uh now that it's in a much much shorter stage as well because whisper wasn't really totally ready at the time for prime time i would say i actually have a question about waku i actually had oscar and sanaz from status on the show like i don't know three months ago and so i can put a link to that but i want to come back to that because now i have a few more kind of questions just about the protocol as is so you mentioned a session are those time bound is there like a limit of time when you open one of these sessions or is it open
always it's open always in the sense that that doesn't mean that you're connected to the server all the time but the two clients do not decide to close it until one of them tells it so that means that like if you have client a and client b and they agree that the session is open even if one of them go offline he can come back online and they still have the same agreement of talking with each other unless one of them says oh i'm i'm gonna disconnect this then the session is over so got it but this is a version one so like i mentioned we're working on version two we already have people who've used version two in production
and we decided that actually this wasn't a great decision and we actually decided to make them bound by seven days actually oh wow so you would have to do this reconnection after seven days yes and no the reason we also made it bounded is because we started to understand this concept of like pairing and session and we realized that wait why are we always scanning this qr code every time we want to connect the session because the qr code is actually doing something completely different than what the session is doing the session is just an agreement between two applications to say we are going to talk to each other on these terms and the pairing is actually finding each other to encrypt the
messages so we just realized wait why are we doing this every time we have a new session why don't we just do it like once a month or something and then we can create multiple sessions out of that pairing that already exists got it so the pairing is less often but the sessions might be more often and you can create as many as you want with no limit cool you also just mentioned something about like binance chain and polygon what do you mean with that are you saying like actually already wallet connect could work on all of the other like custom rpcs is that what you call them by the way are they called custom rpcs this is like the evm compatible other chains well they're evm compatible
right so they are compatible with wall connect this actually was very early on that was a one of the major differences between alpha and beta alpha actually i had to implement at the protocol level each thing of the methods and then i realized this makes no sense because signtap data was kind of like just starting to exist then i have to like update everyone on each method that exists and i kind of just wanted to send messages so i just made it oh you can talk on evm um because we would understand that you're an evm chain by using the chain id yes so it just became a matter of adding a chain id and that kind of made it much easier
then i didn't need to care if it's a test net or a mainnet or anything i just give you a chain id and it just works even if you have like a local network that you're just doing some testing it would work with wall connect as long as the wallet understood what the chain id meant cool this has already been done then can you already work with those other evm compatible chains yes this has been the case since 2019 in 2019 when the beta came it became compatible with any chain and like we even saw like early scenarios of using with xdi which xi was just starting to come up and it was as simple as like it's your maintenance chain id one so whenever you switch to x die it
was just chain id 100. it was that simple and it became very powerful because of that and i remember at the time there was even like a lot of confusion between chain id and network id and that's when we actually created the ethereum registry for chains which now is like one of the biggest uh registries uh where we list every single avm chain id okay i would love to get that list i'm always looking for that oh actually we created a domain for that so it's very easy you just do chain id dot network okay it just gets you a website with the list nice that's so good yeah we'll add that in the show notes and thanks for sharing that actually i've been looking for something like that um i have a side question and i think i may have even
already asked this on the show but i used the term like custom rpc yeah i use that because that's like what you at least on metamask what you have to enter but what does that actually stand for our pc oh rpc stands for remote procedure call okay and this is how wallets talk to dabs this is how dapps talk to nodes and it's just an easier way of creating end points that you know traditionally you would put i don't know like example.com user that would be an endpoint and this would be the exact same thing but it would follow the rpc standard got it and do you have to do that within wallet connect as well do you have to
manually enter these like do you actually have to add them or is it sort of pre-built in um so while connect v1 doesn't really care what you send it through uh it just okay it's the actual session agreement about like which chain are you actually going to talk to that actually cares about it you could actually send like a method that says pedro says hello and then it would send to the wallet and then the wallet will look at this method and be i don't know what this does and just reject it yeah but okay if you send it like ethereum send transaction then it would work okay i got it so now let's jump into wallet connect 2.0 you've mentioned a few features a few things about it
let's kind of go back to that first point of like stability is wallet connect 2.0 different in terms of the way it uses servers yes very different in my opinion is the biggest feature but i like to always emphasize the multi-chain capability because that's very trendy and i still think it's very important but on the infrastructure side it completely changed because in wall connect v1 you had to talk to the same server and in wall connect v2 it didn't really matter you could just like have a dab talk to one server and the wallet talking to another server or a user could be very decentralized and
have their own server that talks to the tab server and this is possible because of waco because these servers are in a sense just remote waco nodes that are connected to the network and you just use a server for convenience we even can imagine in the future not using servers at all and the messages are broadcasted directly to the waco network although i wouldn't necessarily recommend it today but it is possible like in theory so what we actually want to do is just have a more distributed network of servers that are actually
geographically located so that if you are in the us you connect to the us server and if you are in europe you connect to the european server and that actually provides you with better performance and also better stability because it distributes load across different servers so yeah volcanic 2.0 fixes a lot of the issues that caused like the outages that we saw around summer which waku are you using though because in our episode we actually talked about their versions so you're saying wallet connect 2.0 uses waku yeah which waku so it's it's waku 2.0 and it uses our own waco in a sense i guess uh because
walking 2.0 uses waco 2.0 and then we use our own uh topic i guess that's the terminology a topic within waco which kind of it's like this idea of like a conversation and so that means that status would have its own waku and wagoneck would have its own waco but is it an implementation or is it like a is it an instance of it or something it's almost like the chain ids it's kind of like when you actually spin off an evm chain you're basically just changing a number and you have a new chain which is completely different from the other chain and it has a different
number and it's basically like that let's say status had the chain id one and then welcome it will have the chain id too okay but it's the same thing it's the same implementation you didn't rebuild it or anything the exact same codes the same thing we worked very closely with waco team because we were the first implementation outside of status so they had a lot of feedback from us and we also had a lot of help from them and it has been extremely collaborative because we get to share use cases and priorities and things that we want what waku is better for each one of us cool so
you just mentioned that um wallet connect 2.0 is like focused more on this multi-chain universe so we already talked about the different evm compatible chains and the fact that that's already kind of been included for a while what does a multi-chain universe mean to the wallet connect protocol i think multi-chain will change a lot of things personally when i was in berlin i actually interacted with a lot of people in cosmos and i like that they were thinking about this much earlier than any of us ethereum had the smart contracts and the composability we also only had one chain we never had to think about two chains and thinking about two chains completely changes how you even design everything
so volcanically one just tried to be like metamask it just tried to do exactly what metamosque did but metamask isn't necessarily designed for multi-chain because as a user if you connect to adapt with one chain then you go to another and then you have to switch it and you can't connect to two chains at the same time and i just thought that wall connect 2.0 provided us with the ability of wait a minute we can rethink about it because what's coming ahead is not single chain it's multi-chain so with wall connect 2.0 you are not tied to one chain we actually reverse the pattern where the dap actually chooses what to connect to rather than the wallet so you can have a
data that says okay let's take unit swap for example that they're going to optimism they can connect to ethereum and optimism and they would just tell the wallet look i'm unisov and i need you to connect to ethereum and optimism it's more like a set of permissions and the wallet either fits the bill or it doesn't and then the wallet would see and be oh ethereum optimism i know those chains let's connect and that's it can i kind of like think of this from like a wallet right now so like say you have a wallet you have created an account on ethereum main chain you've also created a wallet on one of the l2s
on like an optimism chain and then uniswap tries to talk to the wallet but like do these wallets actually allow you to create these multiple accounts on different layers and i think the answer is probably yeah but then how would wallet connect to both of them within the wallet itself on ethereum an idea of an account that is maintained by a private key is simply a hash of its public key so when you have this address which is the hash of the public key it means the same in every single evm chain yeah you're right okay if you have the private key you technically have accounts in every single possible evm
chain because the chain will just switch the number of the id so what we actually did was okay for you to actually expose the accounts we need to actually understand what accounts are because that's one of the things that i kind of pushing a lot is that we've been talking about addresses as accounts but an address by itself does not have the enough information for an account an account is the sum of an address and the chain id and the chain yeah if you have for example a dap connected to ethereum and optimism the wallet will actually expose two accounts with the same address attached to two different chain engines and this is one
thing that we actually came up outside of wall connect as early as 2019 when we created the chain agnostic improvement proposals we basically created this github organization that tried to be as neutral as possible that we found that the ethereum improvement process wouldn't be neutral enough because it's too focused for ethereum and we started creating standards for how we talk about multi-chain beyond the tiering and that actually included how we identify accounts by uh joining the address and the chain he did together but in this multi-chain you're still thinking very evm very ethereum focus like so it's evm
compatible these are not zones in cosmos or like para chains on polka dot are they or are you also looking at that as a potential future so it is already chain agnostic because of the chain agnostic improvement proposals that was one of the things that we noticed is that we're putting all of this effort for multi-chain and then we're only vm compatible that makes no sense so with the chain agnostic improvement proposals we actually came up with a solution that basically creates a composable chain id where for each chain id it's associated to a namespace so evm gets its own namespace which has associated
eip1155 chain id identifier and then for cosmos they would actually have their own namespace so you could have in wall connect an account that meets the requirements of the specification of the chain agnostic improvement proposals that attaches an address to a cosmos chain and an ethereum chain simultaneously are these universal standards like would they have to be accepted by the individual chains in order for this to work no because they're more like interfaces between daps and wallets and you know more end user facing applications so
that chains themselves don't actually need this because they're just talking internally and they have these relationships between chains using smart contracts and ibc and everything this is more in the sense that as a wallet and as adapt you have to understand this more complexity that comes with like oh now we talk to evm but we also talk to cosmos and to polka dots and now i need to understand why they're different and that's where these standards actually come it's trying to provide some unity around the idea of blockchains as a whole although like aren't the wallets built for these other protocols different too yes but then the dapps need to understand how each one of
these wallets groups and categorizes different chains right if we look at the source code we're going to see that even ethereum wallets think about accounts differently and organize themselves differently but these interfaces between dapps don't need to understand oh when i talk to wallet a they always use accounts in this manner but if i talk to wallet b they use accounts in this manner and that becomes not productive i mean i get it sort of wallet connect creates the connection and the session but it isn't sending the things itself it doesn't care what's being passed between the wallet and the dabs yeah it doesn't okay i mean it doesn't matter to the server and it
doesn't even matter to the clients uh okay the clients basically just created these protocols uh for them to reach agreements and that's why it was many times talked about this like bluetooth like it's not like bluetooth cares if you send a pdf or you send the audio file like they just send stuff across and they just want to make sure that these two devices connect to each other and they agree on it yeah but then the wallets themselves like if a wallet wanted to actually interact with two chains the wallet would need to have all of that set up on its side yes and that's why very early on i proposed this idea that like dapps
should propose to wallets new chains and i'm glad that this eventually caught on and now we have this today because there was a lot of evms but then users had to go into the custom rpc manually and then we basically created a standard that you can just like have the dab say ooh add this new chain and it's all automatic and it just made more sense and now i'm even proposing differently where oh that kind of just like straight up front says i need these chains so you better be compatible it's the wallace job to kind of like meet that requirement co-host james was sort of supposed to be on the show but sadly was not able to at
the last minute and i know that one point that we had talked about in the prep for this and something that i really do wish he could have been the voice here but i'll try to channel him it's this idea of like you know a lot of the focus of james's work is optics and bridges so bridging and what you're describing like are these compatible concepts or are they actually different like are you taking the multi-chain out of the bridges and more towards the wallet and end user yeah i'm just curious what you make of it i don't know if i've done justice at all to the debate but like let's talk about that i think it makes a lot of justice because i tweeted a lot about chain agnostic improvement proposals and james has always had his opinions about what it was actually trying to fix right because
he always said what is this actually achieving right because it came from the perspective of building the bridges between the chains and wall connect was trying to more build the tools for end user applications to talk to each other and understand and that kind of brings different requirements about user experience and allowing more complexity around how wallets can add more chains or build different setups because at the end of the day a good wallet for me is the wallet that allows the more combinations of how people manage their wallets right that's what they provide
if you're a wallet and you have to manage your key in this way and you don't get an option then you know not a really good wallet you're very opinionated about what the user should do or shouldn't do and these standards allow people to build whatever experience they want for their wallets and gaps and i think that's where we actually conflicted a lot because bridges should allow some flexibility but at the end of the day become very inefficient at that and i remember me and joel joel from treebox ceramic we actually came up with the chain agnostic improvement proposal that uses multi-formats
and it was more efficient and more opinionated but even james had some like comments on it and it was very interesting because like this is what i do uh with wall connect it's all about standards and there's always going to be disagreements about what are we trying to achieve and i think you've had to put it simply chain agnostic improvement proposals is just trying to achieve interoperability optimizing interoperability anyone can build a dab a wallet just like they want and we know how they will interpret with each other um going back though to the multi-chain world i also have heard it through the polka dot kind of lens this idea that like individual chains would serve
different purposes that like the actions on a blockchain could be split between these different chains and potentially like these chains could be significantly different as well are we looking at a future from the wallet side like where you're actually acting on multiple networks at the same time and that has an impact on an outcome on one other chain like i'm just trying to imagine when you start enabling all of this action and potentially having it happen in parallel like what does that mean as an experience i think that a lot of people will have different opinions on this and it's more about what do
different needs applications have right and i'm not sure if each application will become its own chain like i think it's kind of like a spectrum i don't think all applications will be in the same chain but i also don't think that like each application will have its own chain but i think there's kind of like this sort in the middle of oh i have certain requirements and chains optimized for different requirements right you can see that deuterium definitely fits the requirements for financial products but does it fit the requirements for nfts and dows right i think that there will exist
change that optimize for those much better and maybe they'll migrate for that and it might just be whether the block time is shorter or slower whether the requirements for a node are bigger because do we need everyone to run a node on a mobile phone or is it fine if it needs to be like this a thousand dollar a month aws bill to run a node those are the requirements that actually are gonna provide this multi-chain diversity because it's not like an application needs its own chain but an application might not be satisfied with the properties of a certain chain and needs to create a new one yeah
i actually wondered about this like could you imagine where like you're using a wallet to vote in a dow that lives on one chain that will affect an outcome on another i think that's a good use case uh that you just mentioned because that will require multi-chain right yeah you'll need to vote on another one but then you need to make a financial transaction another one so are you as a user going to connect to this tab where you're going to make a vote and a financial transaction and then have to switch networks while you're doing it isn't it much better if adapter says oh please connect me to chain a and b and they one of them is a cosmos and one of them is an ethereum one and you're gonna have to send transactions on both of them
and while can i kind of fix that bill for the wall connect 2.0 because it just understands that these use cases will exist and even on ethereum we saw these with bridges between evm chains if you ever use the next die bridge you have to send a transaction on the tier mainnet and one in the x die so there's this awkward path where oh sign this transaction and then you get blocked and like wait you need to switch and then you switch the network and then you do the other transaction and it would have been much simpler like just tell me to center transactions at the same time while although this sounds like this is a lot of work on the wallet side again this isn't wallet connects work so much this is like a wallet needs to have the
interface to be able to like shuffle through these things i think the uis are adapting and i've seen already rainbow adapt their ui pillar wallets also adapted their ui to be more multi-chain uh im token was also very multi-changed from the beginning trust wallets as well like they even don't think about it as chains but they think of it as coins you see like everyone has their own way of organizing their wallets so the multi-chain capabilities are already there this is more about how are these going to interface with the dapps uh are these possible and today they're not that's where welcoming
2.0 comes in and wall connect 2.0 is not even just about chains uh we actually have a project that's using it purely for the ids so they basically just kind of like ignore the blockchain capability and they just have this ability of remotely signing and verifying credentials chihuahuala connect interesting did being decentralized identification right so decentralized identifiers which is a standard even part of the w3c community and it will soon be part of what we consider the web eventually so you mentioned these chain agnostic improvement proposals like a couple
times now where is that actually at like what's the status of that and also for anyone who's reading the show notes afterwards this is usually shortened as c-a-i-p but that we're talking about the chain agnostic improvement proposals yeah as i was explaining well connect 2.0 you can't miss talking about caips or chain agnostic improvement puzzles because it became like a core component to how well a connect works because i didn't want to create the wallet connect standard i wanted to create something that it fits for more use cases outside of wall connect and we have started to see this happen for example the first use case was actually star name
which basically provides naming resolution for different chains and they have like this cosmo chain for resolving addresses and they use caips to actually understand give me an address for this chain id and it uses the ciap2 and then it returns you an account with the cip10 and that's basically the same pattern that wallconnect uses as well where adap asks caip2chain id and the wallet returns a cip 10 account identifier we have other use cases like ceramic network which provides you with a network for smart documents using the ids and then you can
link your blockchain accounts uses cip10 is there anything else that we should know about for the uh wallet connect 2.0 i think i cover pretty much the most important parts at the end the wall connect 2.0 is a maturing point on top of the experience of two years of v1 that not only provides multi-chain capability and more stability but it also opens up to a lot of other use cases like the did world that it didn't fit before so it's something that as a protocol will become more useful to more people nice
would you say between wallet connect and metamask do you know which one is used the most oh i think i think metamask would be used more because they they they counted like 10 million active users or something recently on one of the posts and i think our peak in terms of like server usage we haven't hit the 1 million yet at least not in the same day i see i see okay but do you see yourselves as competitors or are you integrated with each other yeah you could have mentioned that we are integrated uh most of the time people think of metamask as the meta mask the
chrome extension because there is definitely not compatible with wall connect as a protocol but metamask mobile the mobile application uses wall connect as well interesting how is wallet connect actually funded so you talked about it like it was grants and it was a small team and a lot of outside contribution is it a company now or is it still a project today it is a company with seven people okay nice i love that size by the way that's the best size team i think so how is it funded so wala connect was funded by grants until 2021 this year and earlier around spring
we actually raised the seed round and we started to have a much more product focused approach we see ourselves as a product company that builds on top of the protocol that we open source and that basically is a response also to the stability issues that we've seen because there could be a world where everyone self-hosts infrastructure for wall connect but then we saw everyone actually just using our infrastructure and that bill just became bigger and bigger and bigger and bigger and bigger and now we're basically like
the inferior for wallow connect and that's what the team focuses the team just focuses on building the infrastructure and we are actually going to build a dashboard for developers to register and expose api keys and that's what we call the wallet connect cloud uh the wallet connect cloud is just a cloud hosted version uh that's interesting it's just as compatible with other wall connects it just run on our infrastructure just like it is today is that sort of your vision then is it like other teams would run their own wallet connect instances in a way like they would run the servers and yeah then i think you mentioned this earlier this like
decentralization of it yeah so the good thing about the waku network that we use is that allows anyone to run their server and not have to kind of like agree on which server it uses so that means that people can use our wallet connect cloud but if you self-host you can also use your wall connect server and it will just talk to our servers through the wacom network and there can be some competition in service providers so we actually see wall connect cloud as going to evolve into this wall connect network that's why we hinted at fcc that there is a strong possibility of a token because
we see a lot of potential on building services and competition around this infrastructure because it has a lot of demand interesting let's talk about the future of wallet connect so you mentioned wallet connect 2.0 is that already out or is that coming out like what's the timeline so wallet connect 2.0 uh hit feature freeze early summer and the javascript implementation has already been used in cello wallet and veloura so actually if you're using wall connect in the cello community it's the wall connect 2.0 version because they didn't need the backers compatibility with wildc1 obviously but the ethereum community is still using the wall
connect v2 recently we've had people from cosmos and even stellar working with volcanic 2.0 but that's still in development phase that's not in production but one of the biggest blockers once again is the swift and kotlin implementations that are taking a little bit longer to hit production ah okay but they're on their way yes yes they're in progress and we actually have in-house developers this time cool tell me a little bit about the road map yeah what is coming up so one of the things that we see is that wall connect as the signing protocol that we see today is just one of the components that we want to tackle uh we think that the
wallet experience will have a lot of infrastructure that needs to be built and the first thing that we actually want to do is wall connect notifications and the protocol is actually already designed to do these but we just need to actually build the integrations for them because well connect notifications are kind of just like wall connect sessions but they actually they're more passive in a sense where when you're actually signing the user is present in the moment interacting with the actual application a welcome notification is more like a passive session where the dap is actually alerting you to an event while you were outside of the
application so notifications is the first thing we actually want to offer for wallet connect cloud users and we want to make it as simple as possible as part of our cloud infrastructure offering and another thing that we want to actually provide is analytics because we actually seen a lot of demand for people want to actually understand their users better but most analytics are so web 2 focused that they're kind of against the ethos of what tree you kind of it's a very thin line cookies that you yeah exactly it's very hard to actually hit the sweet spot where you want to understand your
usage better but you also want to provide them privacy so totally because wall connect kind of sits just in the middle we actually are able to understand usage with privacy so that's actually something that we actually want to do as an offering also for the wall connect club cool do you imagine using zero knowledge proofs for this maybe actually i was reading about that the other day and it's very good because one of the biggest concerns of analytics is it's actually identifiable but even if you make it non-identifiable you still have a great insight into your
user base well this is the whole problem of analytics generally yeah exactly even if you anonymize and you try to kind of create some sort of like you know lack of identifier just the mixture of behaviors can often like lead you to identifying yeah in this world do you have to worry about vulnerabilities do you worry about like hacks and stuff like that the only vulnerability is like people when they actually connect to a dap they get this pop-up yeah that says oh uniswap wants to connect but there's no actual authentication of that information yeah and some people pointed out oh
that's a vulnerability but it it's not because the user is looking at the app if you were to mimic that connection it's still very easily detectable because then you just like get a different connection right yeah yeah so i've like played out so many scenarios where this could be vulnerability and i think most people actually lose money in phishing scams than actual complex like trying to mimic an app and sending a transaction to the wrong place so that's funny yeah it's such a thin layer that wall connect touches i kind of made it on
purpose that like it provides enough fertility without liability but when people bring up vulnerabilities i'm like it's not really it is but we're talking about an impact that it's so minimal that anyone can just tell well it's the wrong app and they will just think it was a mistake more than actual vulnerability if you connect to unit swap and then it's not unisoft then you can tell cool pedro thank you so much for coming on the show and going on this wallet connect journey i got a chance to ask a lot of questions that i've had for a while about this whole world yeah thanks so much for kind of going into it thank
you for letting me share with the audience and the wallet connect journey and where we're going yeah and good luck with everything thank you i want to say thank you to the podcast editor henrik i also want to say a big thank you to andre the podcast producer who's actually going to be leaving us i think this is his last episode and i want to welcome tanya who's the new podcast producer to the show andre's planning on working on a new project so andre i want to wish you luck with that and since we're on the topic of team i do want to let you know that we are looking right now for someone to join the podcast to work with us on marketing and events so if that sounds like you or someone you know please do get in touch with us cool all right thanks again everyone and to
our listeners thanks for listening