Web3 meets adoption: Buidlers assemble (Part 2)
An in depth analysis of onboarding challenges with Interakt and exploring viable solutions
gm frens
In the first-ever bringin article we dove into the rabbithole of user experience issues broadly in web3. We explored the drop off, the big web3 irony, how NFTs are the gateway for mainstream adoption and the much-needed Apple moment for web3.
Finally, we took the real-world example of a dapp we built called Interakt, and the problems with onboarding users to it.
In this week’s newsletter, we will be diving deep into the exact problems that interakt and many other dapps are facing when it comes to onboarding new users
How do we get people Interakting with web3?
We built Interakt, a video chat app with token streaming capabilities. Basically, it allows you to stream tokens in real time while having a video call with someone for the duration of that call.
Now let’s take the example of Rob the consultant, who gives advice to startups on how to improve their UX.
Rob charges $100/hour and is based out of Germany, the startup that is taking his service is based out of India and they are using Interakt to stream USDC to Rob.
Rob, who is getting paid in crypto for the first time has to create a wallet
The startup has to buy USDC with INR in their bank accounts
Rob has to find a way to convert USDC into Euros in his bank account
Here is default approach most dapps take to solve these problems today:
Embed metamask and wallet connect login to their dapp
Give users a link to create a wallet on metamask, usually they end up writing a blog explaining how to do it as it is too complex for a non-crypto user
Most users are not aware of wallet connect or how it works, they mistake it to be another wallet and hence end up not using it.
Most dapps don’t support fiat to crypto conversions (understandably so) but that leaves the users to use centralised exchanges like coinbase or kraken which is a huge barrier to entry for everyday use
Major points of friction for web3 users
We can boil it down to three main hoops that any user has to jump through to start using dapps like Interakt:
Create a self-custodial wallet
Top up the wallet with desired tokens (and gas!)
Liquidating crypto to fiat when desired
A wallet is the center of the web3 universe, it is your identity, bank account and your gateway to login to any dapp.
So creating one should be as easy as creating your email ID. The lesser the barrier to creating one, the more conversion we are going to have of the web3 curious (which is way more than people estimate IMO)
Once a wallet is created, the user is now in the ecosystem and so he is more likely to engage with dapps and explore the usability of his wallet.
It is our responsibility to give a smooth experience to users to go from being crypto-curious to crypto commons and eventually to crypto native.
Not your keys, not your coins
Let us help our Rob, who has to create a crypto wallet.
He has two ways to go about it:
Create a wallet on his browser (or install an extension)
Create a wallet on his phone
From my experience, mobile native is always better than desktop or browser especially for first-time users. A mobile wallet gives safety and is less overwhelming.
However, most wallets are still too foreign to new users and have an overwhelming process for signup. Nothing similar to what most users are already familiar with.
There are three main categories when it comes to self-custodial wallets:
Conventional wallets
Smart contract wallets
MPC based wallets
Here is good breakdown of popular wallets by Nichanan (highly recommend her article on Seedless Self-Custody for deeper dive)
Rainbow (conventional mobile wallet), Argent (Smart contract wallet with zksync support) and sequence wallet for browser usage are my favorites in terms of UI and most importantly UX.
I also admire the approach that Fractal is taking to create a seamless UX for gamers to enter web3, Fractal is headed by Justin Kan who started Twitch. They definitely know a thing or two about creating good products for gamers.
What we need:
A mobile-first self-custodial wallet that helps Rob become a web3 native within 2 mins without compromising security in any major way.
Now let’s jump back into solving the Interakt user experience.
The startup has to top up its wallet with USDC (or any other token that they agreed upon) to stream it to Rob
There are 3 ways to achieve this:
Use non crypto platforms like Revolut or Robinhood.
These platforms usually do not support a lot of tokens, some don’t even have withdrawals!
These are pretty much suited for people who want to speculate and don’t actually care about using web3 native products
Centralised exchanges like Coinbase or Kraken
Exchanges definitely add an extra step for self custody users as they have to withdraw the tokens to their wallet (and pay withdrawal fees everytime)
Fiat exchanges usually do not have good liquidity for small and mid-cap tokens so the user has to→ buy USDT with fiat, swap it with X token, transfer X token to Metamask which adds yet another step
Onramps (with credit cards) like moonpay, banxa or transak
Onramps have definitely made significant improvements when it comes to the onboarding experience directly to wallets, since they allow users to top up their wallets using credit cards it reduces that extra step of keeping one’s funds in a custodial exchange and gives an experience not so dissimilar to e-commerce.
However, onramps are B2B focused and are optimized for desktop usage leaving terrible UX on mobile. There is also the problem of fraud as scammers can steal your credit card and easily withdraw funds to their wallets (a birdie told me that 35% of the credit card transactions do not go through on these platforms)
Metamask <> Sardine integration:
Metamask recently announced its partnership with Sardine, to provide directly onramp using credit cards. This definitely makes life easier for new users, more and more defi applications and wallets have integrated onramp solutions as they want users to be able to get the convenience of not having to leave the platform.
But there is not one single onramp that works well in all jurisdictions as there are intricacies and complexities in regulations across different jurisdictions making it hard for a single player to provide seamless experiences worldwide, dapps developers have to spend enormous amounts of engineering efforts in integrating multiple onramps for multiple geographies.
What we need:
A simple app that helps the startup go from fiat in the bank account to crypto in their wallet directly.
The startup has successfully paid Rob directly to his wallet,
Now Rob has to convert the USDC he received into Euros to pay his bills and put food on the table.
How can he achieve this:
Transfer his tokens to an exchange like Kraken, convert them to Euros and withdraw
Too many steps, no one wants to use an exchange every time you want to convert your tokens. The fiat withdrawal sometimes takes days to process!
Use a crypto debit card of one of the exchanges and spend USDC directly
This is where debit cards issued by Crypto exchanges have been popular (also great branding and customer retention exercise for the exchanges), but there’s a catch…everytime the user spends crypto they are not exposed to the conversion fees which is where the card issuers make a bomb.
This is not an ideal solution for the user, you shouldn’t have to calculate the conversion rate every time you spend (not even mentioning the tax compilations with this approach)
You also need to keep the coins in the custody of that exchange, which after the collapse of FTX needless to say, it’s not the brightest option out there.
Use widgets to offramp (like moonpay, transak, etc)
Most of these widgets do not focus on offramping since it has regulatory hurdles and challenges with AML. These companies do not really care to solve for these issues as they are already making a ton of money with onramping.
There are many banks that are not crypto friendly, you risk getting transactions blocked by these banks when withdrawing funds from crypto companies directly.
What we need:
Smooth offramping to a dedicated crypto neo bank to help Rob spend crypto hassle free
Now that we have taken a deep enough dive into the exact pain points of dapps in onboarding users, its now time to put our heads down and build.
Let’s go to first principles and understand the user’s needs in and out so that we can create a seamless experience and eventually onboard a billion users to web3.
Timely plug
As we come to the end of this 2 part series of web3 meets adoption, I am thrilled to share with you the launch of bringin.xyz.
Bringin is a community of founders, buidlers, devs and enthus in web3 working together to grow adoption by simplifying UX and making web3 native products simple and convenient.
Web3 products need to simplify the onboarding experience to increase adoption, and let’s work on it together!
Vision: Connect top minds who care about web3 adoption to grow and enable the next billion people into web3.
Mission: To create a close-knit community where members exchange insights and work together to create product leadership and educational tools to increase web3 adoption
Web3 native adoption matters, for Ownership, Freedom, and Accessibility.
You should join our community if you align with us on these values:
Not your keys, not your coin.
Increasing financial freedom through ownership
collaboration >> competition
quality >> quantity
utility first, jargon next
Buidl products to create value and solve real problems
WAGMI
To join the community fill out this form and we will reach out to you:
https://tally.so/r/3yX4k0
See you on the flipside…
Just wondering why you are using substack instead of paragraph.xyz, if you are a web3 advocate?