The State of Onchain UX. Why Crypto Still Feels Broken (How We Fix It) - Nnamdi Ernest
Web3Bridge·Sun, Nov 9, 2025, 12:00 AM
🗣️ The State of Onchain UX. Why Crypto Still Feels Broken (How We Fix It) By Nnamdi Ernest 📍 Web3 Lagos Conference 2025
Transcript
Hello everyone. Uh good afternoon. I'm not going to be wasting too much of your time. I will try and keep this um extremely short actually. So um my name is Ernest Ernest Namdi.
Sorry my name is not on the slides. Um at the moment I'm a blockchain engineer and a developer relations engineer for MOF and uh previously I used to do Devrell for Cello and previously blockchain at uh to swap. So today I'll be talking about the state of onchain UX and basically how user experience uh sucks in crypto. Good. So um starting off with just a little vibe check uh is this statement saying we've built the financial infrastructure of the future and yet it feels like it's uh internet from 1995.
So we like to say the blockchain is the future of finance and to that we've built like uh a really amazing technology and we focused so much on like um say the back end of it and then we did the front end zero justice. As a result the user experience is actually quite terrible. For instance, you can teach your grandmother how to order food on child deck. You can teach her how to like uh book like an Uber ride. But you cannot really just in 5 minutes teach you how to swap um tokens on unis swap.
So um just to give you like a brief history of how far we've come. So we had bitcoin which gave us money without banks. We had ethereum which gave us programmable money. We had uh defy and nftts which gave us like a real use case for uh smart contracts basically the um ethereum technology. And then we had roll-ups which came about to scale Ethereums.
But now you see we've hit a roadblock which is Hello. Thank you. So basically we've hit a roadblock which is the UX wall. So we are now at a point where we either fix the UX problem or we cannot progress any further. So I'll be talking about what's actually broken um about user experience.
So the first is um wallet signing flows. At the moment if you're doing carrying out a transaction say on unis swap or you're trying to say do a transaction on an RWA like centrifuge most often than not you find out that you can't read the signature you see in your wallet right it's frankly unreadable so you don't actually know what you're signing and it's actually a guesswork and I'll be talking about this later on um in this session. Um the second actually is gas. So imagine having to explain to someone new that you want to send USDT from one person to the other but then you also need Ethereum to pay gas fee. It's like telling someone like hey you want to send money from assess bank to GT bank but you need to have shares in assess bank first to be able to do that.
That actually doesn't make any sense. Now the third is um fishing and scams and this actually goes hand inhand with um the first one which is wallets. Right? So, I'm going to give like a story about my friend who used to like farm air drops back in like 2022. So, they were in this Discord channel and apparently they thought they were farming the airdrop.
But what happened was the owners of those projects were actually farming them. So, um they told them that for them to receive the airrop, each of them need to have a minimum of $500 in their wallet for you to be whitelisted for that airdrop. And they were going to check. So each of them started running around trying to keep a $500 balance in their wallets. And obviously if you're a developer, you know, it's quite easy for them to run a balance of function and check how many people have that specific amount.
So they released a list of like they called it a pre-white list and she was celebrating that her name or her address rather was in that list. The next they told all of them to basically sign up for the weight list. But what they didn't know is behind that button was actually a function that um for those that are developers, you know that um there are two ways you can move money out of a wallet, right? There's the transfer function which basically is signed by your private key and there's the transfer from function which allows somebody else to move money from your wallet. But in order for you to do that, you need to grant approval.
And for every approval you need to say who am I approving the wallet address and then the second argument is uh the amount you approved that person to spend. Now there's this thing u malicious people do which is they set the approved amounts to unit 256 max which is the maximum number uh Ethereum basically has basically speaking is everything in your wallet and what she didn't know is that um she was thinking if she was going to sign an approval function is going to write approval in your wallet but that's not always true right that only happens if the developer decides to uh seek approval by calling the approve method directly. But if you use ELC2612, you actually won't see approve. You will just see the function signature. So all she saw was just gibberish ox 71222 BBB.
She didn't care. She just clicked sign. And as she signed it, that's how all of them lost their initial balance. So that was like a welcome to web 3 for um everyone in that discord group. So the next um problem is actually identity.
Um, in web two, we take um, identity for granted because, you know, we go on any app and no matter the application we open up, we know there's always going to be that button sign in with Google or signing with Apple. But yet, despite how long we've spent in web 3, we've not had anything quite on that level. We've had some progress. We've had um, ELS, we have like identity protocols, but nothing on that level at the moment. And then you can sum all of this to just one big problem.
which is the mental model problem. So you see the fundamental fundamental issue is um mental models. See user have um a very simple mental model. I want to be able to do X. They don't want to think about the complexities involved in all of that.
Um say another personal example. Uh last weekend I tried um using a product. Basically you could send crypto and then get naira to your bank account. So I sent crypto and they told me transaction successful but I didn't see anything in my bank account. So I reached out to them and they were like uh NIBSS or whatever was having issues so I should just wait.
They can't credit me. Now even as someone who's been in crypto since 2016 that wasn't funny to me right so my own was if NBS has had issue why even accept my money in the first place you know so but these are things that uh you have to look at it from the way uh from a user's perspective I don't actually care what happens in the interim between when I sent my money and when that money gets to my bank account all I care is that I gave you crypto I should get naira in my bank account and we need to have the same approach also in web 3 cuz what we have at the moment is when a user says I want to send money the blockchain goes ahead to show the user every single state uh in the blockchain for instance the user shouldn't need to care about what loans is the user shouldn't need to bother about um things like transaction fee uh gas fees and all of that but I will talk about this more uh soon enough so how do we fix it we fix it by keeping the super powers of the blockchain but also removing um the unnecessary details, right? So users shouldn't care about gas, users shouldn't care about seed phrases or chains. They just want apps that solve real problems. Like let's say for example a prediction market app, right?
Um what is important is that you should be able to go to a prediction market d uh look for like a prediction like let's pick something that's very likely to happen. For instance, Arsenal will win the Premier League. Anyone with common sense will vote yes. Right? So you could go in and put say $1,000 $5,000 and you could say yes as going to win the Premier League.
What the user shouldn't have to worry about is Oracle's Oracle manipulation and how that data is being fetched. He has no business with the price feed. He shouldn't know which Oracle provider that platform is using or the smart contract. All he knows is he should be able to click yes or no to a specific prediction. So and we have at the moment two kits for all of this.
Um so we have account abstraction obviously which brought about um smart wallets. We have gasless UX which brought about like sponsored uh gas. Um we have crosschain invisibility which is what um layer zero and Axel currently does. Uh we have human readable identity which is some of the work um ENS is doing. And then we are beginning to see projects like Rabbi build um better safety warnings into their applications.
Now another thing I think we could do is progressive decentralization. So here's a not so controversial take. Um in web three we like to say not your keys not your wallets which is a basically like um something we use to drive people to use um custodial wallets right or non-custodial wallets sorry. Um so we want people to be in charge of their own private keys. We want people to be in charge of their own um security.
But this could be a problem for someone who is new because even people who are experienced face um issues with this. Um another personal story uh in 2022 December I wrote the whole year in review thing and the last two paragraph was dedicated to how I was crying because I woke up I read a tweet from my friend uh Olanet and he was basically talking about nobody should keep money in exchanges. move your money out of Binance, blah blah blah blah blah. And I had just woken up. So I said, "Fine, here's what I'm going to do.
Let me do like a test transaction. Let me move some money out of Binance to my wallet." So then I moved some Ethereum around uh $6,000 and I went to the bathroom. So as I was in the bathroom, I kept waiting for the notification that says uh my money has arrived in my wallet, but I didn't see it. So eventually I paused whatever I was doing and I started refreshing metam mask and what I saw was transaction history.
So when I clicked on the transaction history I saw that the money came in and left in the same second. So going back I started obviously after like maybe 3 hours of panicking um I started looking at what could have been the cause. Now for the developers here, most often than not you have a MetaMask uh extension in your laptop and then you use it carelessly because obviously it's test net. But what had happened is I imported one of those wallets to the Metam Mask on my phone to be able to test a project I was building. So after testing it on my phone, I had forgotten that the wallet on my phone is compromised.
So when I sent that $6,000, I had basically donated Christmas gifts to someone else. So this is why I said um maybe users shouldn't immediately start with um their own wallets and private keys and all whatnot. Maybe we start with like a custodial approach. It's fine you leave your money in Binance for now at the beginning, right? Because obviously the fear is what if Binance goes down?
FTS has gone down anyway. But if Binance goes down, if Binance goes down, we have a much bigger problem basically. But I think yes, at the beginning, users should be able to keep their money in exchanges, get familiar with the ecosystem, learn security tips, then as they progress, we could have some sort of like a managed approach where they have some sort of like um is split between non-custodial and custodial. And obviously as they get more experienced in the industry they could go into like full sovereignty. So um this is what I think transaction states should obviously look like as we um progress into building more user friendly applications.
So at the moment what we have is you sign a transaction you wait and you hope. For instance, in my case, right, when you send a transaction and you wait and you hope that that money actually arrives at the destination and then maybe you'd find success. Sometimes you won't find any success. But a better approach would be to preview transactions, confirm it, track the state, and complete it. So we should be able to see what we are signing which is already possible today but a lot of um applications have not yet adopted this.
Rather than seeing a very weird hex uh decimal signature you should be able to see exactly what you're signing. You are giving this application approval to do XY Z. The next is um error handling that doesn't suck. Again how good is my slides? Um error handling that doesn't slow uh suck.
Sorry. as uh this is a problem most developers would face. I don't think users will face it a lot. Um a lot of time when you're say building blockchain applications um let's say you have a contract that inherits another contract that inherits another contract and maybe there are five functions being called between all of them and then you run it. Uh let's say you run a test script and then you just see execution reverted.
Now at what point uh particular point did the execution revert? Is it at the first contract? Is it at the second contract? Is it at the third? What specific function is failing?
We can't tell. Most often than not, uh for those that use Foundry, they start doing uh - VV. That doesn't work, add another V. That doesn't work, you add another V. Then after five Vs, you've run out of uh you run out of the limits for it.
And then most often not, you need to go to it's not possible. you need to go to uh the explorer and actually look through um the log trace. And looking through the log trace is something say um someone who spent a lot of time building smart contract applications will be able to do because a lot of the log traces um they they represent functions in terms of like uh their signature and obviously these signatures are not in say clear words. For instance uh the signature for transfer is is is in numbers actually. So moving on quite quickly is um gas UX innovations.
So I'm just going to breeze through it. Um we already have platforms like uh by economy that help um platforms set up repaid transaction bundles. Um we have gasless transactions where protocols could sponsor transactions for their users. We have gas abstraction where you'd be able to pay gas fee in whatever token. So rather than you're sending USDT and you need to pay um gas fee in it, you'd be able to send USDT and pay gas fee in USDT also um batch transactions which obviously was brought about by account abstraction.
You'll be able to uh bundle transactions together and then moving quickly to emerging patterns. We could see what is currently working. So at the moment we have oneclick trading available uh by platforms like Jupiter. We have intentbased architectures from uh platforms like unis swap. Social authentication from like web3 and dynamic.
We have embedded wallets and then we have chain abstraction by layer zero and axel. So the back end is busy. It shows that we are not only making um progress on the front end but also on the back end. Right. So in 2021 a proposal for um account abstraction went out by Vitilik and that's what brought about smart wallets.
Uh in 2024 another proposal for um smart EOS. Basically what 7702 does is it temporarily makes every EOA address. Think of EO address as your normal uh wallet. It converts it into a smart account and then it could revert back to being an EOA. And then uh 804 is uh US focused but you basically allow for people to integrate even AI into blockchain uh operations.
So focusing on the metrics that actually matter time to first success error recovery rates mobile completion rates and return usage rates. Speeding through this so finally will be um the future and basically where we are headed. Um so where we are heading is where uh a world where crypto actually feels like web two where on boarding takes seconds um not hours where mobile native experiences are actually everywhere and where uh blockchain complexity has actually been abstracted. Uh I'm going to stop here today because they are giving me but thank you all so much for your time.
Automatic transcript — names and jargon may be misspelled.