Composable Web3 Wallet Development
ETHCC 6 · July 2023 · 13:11
Tom Terado presents web3-reactnative and considers how to make mobile wallet development easier for builders. The speaker connects that work to the expected role of mobile wallets in blockchain interactions.
Speakers
Topics
From ETHCC 6, hosted by Ethereum France.
Transcript
[Music] foreign cool all right I'm gonna get started all right uh hello everyone my name is Tom um and thank you so much for coming along today um so today I want to be talking around composable web3 wallet development and kind of talk about where would the wallet space go in the future um Etc so my name is Tom I'm working as a devrel lead at wallet connect I've spent a few years in Mobile engineering and for those who aren't as familiar with wallet connect we're a communication protocol so we do signing authentication
chat push and a lot of other products within that so yeah so for those everyone here has a mobile wallet right yeah all right good so I want to kind of take it today of talking about uh what is the history of mobile wallets back in 2017 2018. where are we now and what's the potential thesis of where wallets can go and yeah pretty much want to explore that with with something afterwards so 2017-2018 there were primarily two wallets there was Toshi wallet also known as coinbase wallet now and then there was Cipher browser so if we kind of diagnose this there are a few things here we have mainnet which is very
different now we have sending and receiving eth and erc20 tokens and access to certain dapps so it was very kind of simple back then I think it's very accessible for everyone but a lot has changed since then and I'm glad it has and any Mobile Wallet who kind of still has this UI I'm not really in agreement with them so a lot has happened um now we're kind of in a very different space in 2023 we've had a cambrianic explosion at wallet connect I believe we have over 300 wallets that have used that use wallet connect and did many more out there
so in 2023 we have many popular wallets out there we have xerion trust rainbow and I'm glad the the UI looks different now right and it's also not just about UI it's about ux the onboarding experience and what we can actually do with wallets um I believe wallets are just tools for the gateway to what we can do in web3 and they are a fundamental piece but it's more about abstracting like what's important within a wallet and what can we do with them um so the the thing and the the thing that wallet connect and even myself personally online is that we ever the future is Mobile in this respect in that people should be sending their first transaction through wallets
um and I think if we're still in a place where in three years we're still using metamask browser as the primary thing and telling your grandma to do that I think we kind of messed up so that's the future that we leave in and kind of been really thinking around like the wallet space um so that's past present and now kind of thinking about the future so there are three different camps of what wallets could be uh wallets there's the pessimistic view of we don't need enough wallets like too many wallets like we should stop it's kind of sad but that is one Kappa thought that exists out there the second Camp is kind of this concept called the fat wallet thesis by a16z and that maybe
one of these top three wallets takes all the market share does all the use cases and does really well you know I'm not too against that and then there's the other side of more Niche wallets so what if someone is more on the use case of chat applications or creating notes of safes or nft collections so three different camps that's that personally that I've seen and many many more but we're kind of in a state where we need better wallet Innovation and we need to unlock that we can't gate this anymore being a wallet developer is extremely difficult but we should be able to spin it up as quickly as possible similar to how we can easily do with adapt these days so that's kind of where I see the the
future of the wallets going and we just need better tooling towards that um so a few months ago I spent some time thinking about wallets in the space where we can go I wrote an article around the web3 passport stack I could have called it web3 wallet stack but passport seems to be a blend of more around identity and finance attached to it you can substitute it with backpack or whatever you want to do so at wallet connect I have an extreme privilege of being able to talk to many darts and wallets and see what's up see the latest submissions and kind of see like what's happening in the space like who's doing well who who's who can
improve Etc and I essentially read a lot of their source code and try to understand what it is that makes a wallet and what what's kind of new and exciting and going to unlock some new features so in the article I just kind of like the wallets are in the iPhone screen left hand side is more like the components and the plugins that people are using to create wallets so this was what I diagnosed throughout this in more detail here so the wallet components if we break down two things there's the use case which is uh there's an onboarding side and then there's the use cases so onboarding is something everyone says yeah onboarding and web3 is crap and the ux needs to improve etc etc and we're
all improving on this and we've gone from the days of pasting in 24 words in a seed phrase into Now new exciting and novel features around account obstruction and PC social login we're both and whatever whatever so I think there's been Headway made in onboarding and we're going to keep improving until I can quickly sign in create my first wallet and send my first transaction and something that I've known from talking to a lot of wallets the moment I download a wallet to creating my first sending transaction there's at least 20 to 30 40 like drop-off rate because people are kind of annoyed by that process like why would I want to paste in 24 words so that's not onboarding side of what makes a wallet and then on the use case
size there's the the actions or what we can do with wallets I consider Financial reading and writing as transactions sending and receiving like we saw in Cipher wallet the nft boom has really kind of come up and you know we can read and write towards these functions we have ens with namespaces identity uh did lens disco Etc security is a big concern of transactions simulations uh domain verification how do we prevent phishing multi-chain we have l1s to l100s right now so many new chains out there and there's a lot to do with them we're no longer conserved to to mainnet and then communication around chat and push and a
lot of other things exist out there so these are the considerations that I had when I was writing the article and kind of made me think a lot about coding um and how do we unlock better use cases for the future of wallets um and it's it's really a consideration of like how can we make it easier for people to bootstrap and experiment and put things out there of course we have the control the the authoritarians called the App Store and Google play but as much as we can we want to bootstrap that effort so this kind of leads me into a side project that I've been working on and it's really around uh it's called wallet kit and it's really around react native UI components that are really modular
and kind of plug-in based of how can we bootstrap walls really quickly um so yeah that's kind of what I've been working on and just have a quick demo somewhere here cool so I literally only finished the example code two nights ago so bear with the basic UI but that's kind of actually how I want wallets to be as a boiler template so first of all on the left hand side is the DAP it's just an example doubt that we use at wallet connect and on the right hand side is wallet kit um and on wallet kit you see there as an address I've just mnemonically generated that with ethers and this kind of constitutes towards the the concept of
onboarding this will be handled more by the developer around and I'll be working on more plugins like account abstraction and PC so it's safer but that's the onboarding side and then the use cases is kind of like those black buttons and those plug plugins that I've created so first of all uh just testing I believe the QR code just to see it works and on the left hand side I just initiate a dab so just create a pairing session use the mobile QR code accept the session and voila so now you're connected towards adapt so that's a very basic and core functionality that I'm quite familiar with at World connect and
a lot of wallets use this um so I'm going to disconnect and then transaction list so this kind of goes into Financial reading and writing this is just a basic feature of a wallet I believe so I used a xerion API to just get the how much balance within a certain address and all the transaction data and for react native or any react native haters that's fine but the the fetching query was quite quick very efficient just getting all the hash Etc um so I mirrored this concept of course with xerion with nfts very simple very quick and simple to get all the data and a receiving function so this is just a very basic I guess a
work in process MBP and I'd say take me around three more weeks to just package things up but that's the kind of concept I had around wallet kit cool um so to break it down for the developers out here I essentially wrapped wallet kit provider as as a provider over your react native app just put in some metadata this is basically the wallet connect functionality of things and then the next part here is more around the plugins and the ecosystem that I want to kind of work on so initially QR code which uses wallet connect under the hood transactions using xero on API nfts and you know you don't have to use these I want to make
it so it's open source and that you can just build your own module if you work for us a certain company out here you can build your own module and then give that to developers to surface uh so yeah so that's kind of the the way I've been thinking around wallet kit and just kind of like web3 wallet composability I really want to help just make it easier for people to use and make wallets try and challenge the status quo that wallets can be interesting and I really want that hope for things so integration wise initially just use wallet connect and xerion that was the easiest way to bootstrap for me and future there are a lot more other plugins around account obstruction and how do we handle accounting Key
Management gnosis I believe is a key security feature within the space so how do I quickly bootstrap and create a Nosa safe wallet ens very easy identifier to figure out who you are in the wallet in the crypto space and Ledger it's actually very easy to create modules so that you can easily secure your Ledger and your address together cool and just to kind of like wrap things up uh so kind of revisiting what constitutes a wallet in in lieu and in in comparison with wallet kit I really want to focus on the onboarding side but I believe there are many great developers here that are talking about AA and all the great things around it and what I want to help uh kind of push
and give more towards the people to developers and to use is how do we make better plugins how do we bootstrap a quicker wallet ecosystem in a much more safe ecosystem you know while it's very rarely get hacked but they they have that opportunity so how do we create better ecosystems to secure things Etc great uh so wrapping it up thank you very much for all attending uh my github's on the left hand side I'll be publishing it in a few weeks and my Twitter's on the right hand side cheers thank you [Applause] thank you very much
[Music] foreign