[BAB] Lesson 1: How to think about accessibility on blockchain
If you've done any front end development, you've probably had to think about the accessibility (or a11y) of the experience you were building.
- Is this text large enough for people to read?
- Is the color contrast high enough?
- Will color blind users be able to see this?
- What about people using screen readers?
And on and on. These are all important concerns that carry over to the UIs you'll build for blockchain apps, but that's not what I mean by "blockchain accessibility."
Today's dApps (or decentralized applications) are not used a large percentage of the population. Over 60% of the world uses the internet, but only ~1-4% of people use blockchain. Why? I believe this mostly comes down to the accessibility of four factors: fees, wallets, education, and scams.
To use blockchain apps, you have to pay "gas fees" -- this money exists for the sole purpose of preventing network spam. Maybe some of the fee goes to the people running the network nodes, but that's not its purposes. On Ethereum, a good portion of the fee is just destroyed. The fee doesn't even go to the app owner/developer. If you want to monetize your apps with fees, that's money users will have to spend on top of gas.
Depending on how simple your app is and where you deploy it, gas fees could be $1 or $100s. But as we know from traditional web experiences, if users have to give up their payment information to use an app, you're going to lose a large percentage of potential customers. That's why most websites don't ask for your credit card until the last possible moment (and if possible, not at all).
(more on this tomorrow)
On blockchain, you don't create an account with a username and password on every different website. You own your identity. All of your cryptocurrencies, NFTs, and other data is identified by your public address on the blockchain. You prove that you're the owner by signing a message with your private key. You never expose your private key--that's how you get robbed.
For typical users, remembering a password is hard enough. Having to manage a private key is harder. This is where wallet software comes in (like Metamask on Ethereum or Kondor for Koinos). Until blockchain becomes commonplace, most people won't have a wallet set up when they hit your app. So you'll need to either:
- guide them through the wallet set up; OR
- support custodial accounts
(more on this in lesson 3)
Most people have no idea what a blockchain is. Fortunately, they don't have to understand it to benefit from it. Don't bog down your users with technical jargon. Help them understand why it matters, not how it works (for advanced users, you can hide that in a linked page).
Crypto is the wild west. If you're going to hold your own private keys, you have to be careful. Users will be hesitant to take risks. As the app developer, always try to build can't-scam systems instead of making won't-scam promises.
(more on this in lesson 5)
P.S. If you can make these things super easy for your users, your app will be ready for mass adoption. After that, traditional app monetization and marketing rules apply.