The Problem with Crypto Wallets Today | The Radix Blog | Radix DLT
December 8, 2022
Saying that wallet user experiences suck in crypto, DeFi, and Web3.0 isn’t a shock. But how are we more than 5 years into DeFi and it’s still so confusing, so blatantly risky, that we wouldn’t dream of recommending it to friends and relatives who aren’t super tech-savvy?
The reason it’s not getting better is that the problem isn’t just bad wallets — it’s that every one of today’s DeFi networks make it virtually impossible to build a good user experience.
With the upcoming Radix Babylon mainnet update, Radix will become the first DeFi network with a full technology stack that finally makes a mainstream-ready user experience possible. And that user experience is coming in the form of the Radix Wallet.
The DeFi Usability Minefield
“Not your keys not your crypto” sounds good, but to most people, handing them a seed phrase might as well be telling them to carry around their life savings in a lockbox that is opened with a single key, and has a lock that can’t be changed. To most people, this is insanity, not empowerment.
On top of that complexity, using DeFi dApps with today’s wallets means dealing with a minefield of risks and confusion. It’s a world where you have to accept things like front-running, meaningless-looking LP tokens, “logging in” with a token account, tokens and smart contracts with back doors, an inability to move smoothly between mobile and desktop, and worst of all: blindly signing smart contract calls with unpredictable results (see here and here for example hacks due to this).
Just like the personal computer before the mouse, the internet before the web browser, and the smartphone before the touchscreen… DeFi and Web3.0 are going to remain at the fringes until we can give them the right user experience. And today, DeFi is nowhere close.
It’s enough to make many ask, ”Are the Crypto experts making everything confusing on purpose?”
The answer is no, not really. The reason for such terrible UX is rooted in some real technical limitations, and removing those limitations means some pretty deep architectural changes at the platform level.
A Network Problem, Not Just a Wallet Problem
Decentralization doesn’t have to mean bad user experience, but the need for platform-level re-architecture means that a mainstream-ready UX solution isn’t going to come from the wallet alone. It’s not going to be a new version of a Metamask web browser wallet, and it’s not going to be a crypto phone (sorry Solana).
The RDX Works team has spent a year and a half researching, designing, and building a DeFi user experience that’s ready for mainstream users. The goal was to give people true decentralization and a user experience that is just as safe and easy as what they’re used to in traditional finance.
The solution required designing both the platform tech and the wallet together to make it possible.
The UX we can achieve in the wallet by taking this “full-stack” approach with Radix is striking. Take, for example, reviewing a DEX swap transaction:
This is both revolutionary and obvious. Of course this is what a DEX swap transaction should look like: clear, simple, clean with all actions human readable and comprehensible. But getting here required changes throughout the Layer 1 protocol technology stack. Here’s what we learned — and what we’ve built as a result:
How can we get rid of seed phrases while still giving users true self-sovereign control of their accounts and assets? We had to redefine token accounts themselves.
An “account” on a DeFi network today is really just a key (thus the all-important seed phrase). Lose the key, and you lose your access to that key’s entry in 1000 different token smart contracts (translation: you’ve lost all your stuff). With that as the basis, there’s very little a wallet can do to keep your account safe for you.
On Radix, instead we have Smart Accounts. Smart Accounts are an actual on-ledger container for assets — and that container has logic that enables on-ledger multi-factor control and recovery. With that as our basis, the Radix Wallet can use multiple decentralized signing factors to create a user experience that feels more like a traditional bank — but without centralization. There’s no single magical seed phrase to write down, and you can always recover access to your stuff.
Smart Accounts mean: You always keep control of your stuff. No pass phrases needed, fully decentralized, fully non-custodial.
For more, see: What are Smart Accounts?
How can we bring the personalization of Web2.0 logins into the decentralized Web3.0 era — and eliminate the password? We had to create an on-ledger representation of anonymous identity.
Metamask would like you to think that connecting a token account address can be your Web3.0 “login”. But a login should be who you are, not just where some of your stuff is. You should be able to have a consistent identity with websites, while connecting multiple token-holding accounts.
Apple, Google, and Microsoft would like you to think that “PassKeys” provide next-generation logins without passwords using your phone. But the dirty secret is that it only works because the secret key on the phone gets backed up to their proprietary cloud in case you lose the phone. If they get hacked, or someone tricks their support staff into resetting your cloud password, the attacker gets everything in one shot.
On Radix, we provide the best of both worlds with Personas. Personas use an on-ledger identity with the same on-ledger multi-factor features as smart accounts. That means that logging in has the same strong cryptographic security as signing a transaction with a smart account — and losing your phone doesn’t mean recovering from iCloud; you recover directly with the multiple factors configured on-ledger by the Radix Wallet.
Personas are a true decentralized identity system. Logging in with Personas can give you the rich, personalized experience of a great Web 2.0 app, but without passwords and with all the power of Web 3.0.
For more, see: What are Personas (and Identities)?
How can we give users a natively mobile digital wallet while still letting them securely and seamlessly use that wallet with DeFi dApps on desktop? We had to create a new P2P link between mobile wallet and desktop browser.
Today, a mobile wallet is largely confined to doing DeFi on mobile, and doing desktop DeFi means running a browser extension wallet that doesn’t travel with you (and is terribly insecure).
To fix this properly, we had to create Radix Connect. Radix Connect creates an encrypted P2P link between the Radix Wallet on your mobile phone and each desktop web browser you want to use. Once that link is established using a one-time QR code, DeFi dApps on desktop magically connect to your Radix Wallet on your phone whenever needed.
Unlike systems like Wallet Connect, Radix Connect does not pass your messages through any centralized service and works like magic. Nor does it mean spreading your accounts and assets between multiple devices. It is designed to be fast, reliable, and to let you use your accounts and assets anywhere.
Radix Connect means you can enjoy your favorite Web 3.0 and DeFi experience from any screen, instantly and securely.
For more, see: What is Radix Connect?
How can we ensure that a wallet for Web3.0 can always clearly show you what assets you own? Assets have to be a feature of the platform itself — not an afterthought implemented in smart contracts the wallet has to trust.
Metamask may give you the impression that it’s holding your assets — that it knows what you own on the network. In reality, networks today have no notion of what an asset is, and your tokens and NFTs are just balance entries in independent smart contracts that Metamask has no choice but to trust. You can see the cracks in the facade whenever you have to manually add a token to your wallet. This is not only confusing, it opens the possibility of exploits and scams that happen constantly in DeFi today.
Even if Metamask can show your balance of a token, it doesn’t necessarily know what that balance actually means, or what that token is for. You may have noticed that LP tokens and NFTs look almost meaningless in your wallet; you generally have to go to a third party website to get a sensible idea of what they’re worth or what they represent.
On Radix, every token and NFT you can imagine is a Native Asset. They aren’t just balances in smart contracts; the Radix network natively understands these assets as real objects that are held inside Smart Accounts.
Native Assets aren’t only the basis of our asset-oriented developer experience, they mean that the Radix Wallet can always confidently show you everything you own, and how they behave. There are no such things as back doors in token smart contracts, and it’s possible to see what an LP token is worth or what makes your NFT unique. And as new kinds of assets are created using Native Assets, the wallet immediately understands them without having to adopt a new standard.
Native Assets make assets on Radix real. They behave how you expect, they’re always visible in your accounts, and you always get the complete picture of what makes them unique and valuable.
For more, see: What are Native Assets?
How can we finally eliminate the fear and uncertainty whenever users review and sign transactions? We had to redefine the whole concept of a transaction on a DeFi network.
Today every time you sign and submit a transaction in Metamask, you’re taking a leap of faith. What appears on your screen to sign is a cryptic message that will be sent to a single smart contract, and that smart contract will do… something as a result. To predict the result, you would have to audit the smart contract code. Predictably, this leads to users getting used to blindly trusting that the transaction they got from a webpage is going to do what the website claims. From malicious dApps to buggy smart contracts to bot-driven front-running, users often don’t actually get what they expect.
On Radix, we started with what a transaction should be: instructions to the network for what the user cares about. Things like what assets you want to withdraw, where you want those assets to go, and what assets you expect to get back at the end.
We call them Transaction Manifests. Rather than a single cryptic message, a transaction manifest is made of a list of these direct descriptions of movements of assets between Smart Accounts and dApps. Not only are they much more flexible, because they describe what the user cares about, the Radix Wallet can always provide a direct, understandable summary of transaction results.
Not only that, but the wallet can modify the Transaction Manifest. If the user requires that they receive a certain amount of tokens at the end of the transaction, that rule can be added by the wallet. The network, not third party smart contract logic, will make sure that requirement is respected.
Every Transaction Manifest on Radix tells you — and the Radix network — everything you are about to do in a transaction in human-readable format. Every movement of your assets, every dApp interaction is there — and with guaranteed results where they matter.
For more, see: What are Transaction Manifests?
Tying it All Together
These five technologies alone let us solve some really crucial usability problems. But ultimately what matters is combining those technologies to create a Web3.0 user experience that actually works for everyone. The best way to understand what that user experience can be is to show you.
That’s our vision of a user experience that is so simple and straightforward that users can finally enjoy all the benefits of a new generation of Web3.0 dApps that are just better.
Everything in that video is made possible by the five new platform technologies that are all going live at the Babylon update to the Radix Network in Q2 2023. The Radix Wallet we’ll be releasing then, for iOS and Android, will include many of the features you saw there — and we have everything we need to continue to build out the rest.
In Q4 2022 — very shortly — we’ll be releasing a Babylon Betanet test network that includes an early developer preview with the crucial features developers need to start working on next-generation Web3.0 dApps on Radix.