Today’s ad is sponsored by.. well wait. I need to endorse ourselves.
Small favor to ask before we begin today. We are ~100 subscribers short of hitting a milestone I had set to hit when we first began working on this newsletter. It is where I thought we would have PMF for all the long-forms we write.
I would sincerely appreciate if you can tweet about the newsletter if you enjoy reading the things we write about. We may or may not scale the frequency of our articles on reaching that milestone.
Hey there,
The markets are in a strange state. A prominent American bank went down since we last wrote an article. Meme coins (like PEPE and Wojak) are trending while pundits argue about whether we are in a recession. Founders I speak to have been in a long, uphill battle to close their round while new L1s have begun listing at valuations that rival the GDPs of entire countries. Nobody quite knows what’s going on.
Away from the noise, I think we are in a period of intellectual renaissance in Web3. Today’s piece explores a development that makes me believe that is the case. But to understand why, we need to go back in time.
The year is 1997. The internet is a peculiar phenomenon that the media is still trying to understand. The habit of paying strangers online with credit cards is just beginning to form. Major players like Walmart and Target are competing for a share of the growing number of users making online payments. A guy named Jeffrey Bezos is busy selling books online. He has thoughts about minimising regret, but that's not our focus today. A patent he filed in 1997 would revolutionise how we think about online payments.
That single patent gave Amazon a two-decade-long head start in digital payments. It prevented Barnes and Noble from competing against them using one-click checkouts in 1998. Apple, a company founded in 1976, had to license the technology from Amazon in 2000. The button was the 1-click buy button on Amazon—the one you often regret clicking on an impulse late on a Saturday evening.
Last year, Amazon generated $356 billion in revenue in the United States alone. Assuming 1% of those transactions went through the buy-now button, that amounts to roughly $3.56 billion. If we take Amazon's 1% margin on that figure, this small UX innovation contributes $35 million to their bottom line. At a 20x multiple on this revenue, that button is worth $700 million. So why does any of this matter? To understand that, we need to examine consumer habits when the internet came of age.
Forming Habits
In the late 1990s, paying online was something people had to get used to. We did not evolve paying digitally, and there’s a trust barrier to “paying” a stranger on the screen. As recently as 2008, paying digitally in emerging markets like India was uncommon. My dad would order online and pay in cash when the goods arrived when e-commerce took off in the region.
The one-click checkout made buying online a very low-friction process for consumers who already used debit cards. With each checkout, users were getting used to the idea that items could be purchased online. Two decades later, I order groceries and expect a ten-minute delivery time.
Other UX elements on the internet have had similar effects. The scroll on newsfeeds on Twitter, LinkedIn and Facebook has made us consume increasing amounts of content without awareness. Similarly, the swipe button on dating apps has made finding a partner as easy as moving your thumbs around a few times. (Okay, maybe the dating app part isn’t that true).
Improvements in how users interact with applications profoundly impact how they use an app. This is not rocket science in itself. We know UX is clunky, broken and, quite frankly, a joke with many Web3 apps. The lack of users in the industry is the disease, not the symptom.
Here’s one way to think of it. User interactions on traditional web platforms have been made as easy and ubiquitous as possible. As a result, you can conduct grievously tragic financial activities on Robinhood, match with a creep on Tinder or consume state-sponsored propaganda on TikTok without realising it. (I speak from experience) Because there have been billions of dollars spent on hiring some of the brightest minds of our time to make that process easier. Compare this with the most straightforward application in Web3. Let’s say swapping a token on Uniswap, and you will realise what is broken.
Most transactions on DeFi require verifying wallet addresses, approving signatures & cross-checking transactions multiple times to ensure you are interacting with the proper smart contracts. The whole process of signing a transaction, especially with hardware wallets, can be stressful. When the mental bandwidth required to initiate a transaction is so high, users only interact with products when it is worth their time. It is why we see DeFi and NFTs dominated by high-value transactions.
I have been spending time looking at possible solutions for this. We will not take the industry to a billion users with wallet addresses & key management the way things are today. Even experts in the industry have lost millions of dollars to bad key management or sending assets to the wrong address. Would you have trusted Facebook if Zuckerberg and crew could not guarantee the texts you send your friend could end up in someone else’s inbox?
I think that’s where we are with Web3 today. But there have been promising developments in the industry since 2016. It looks similar to one-click checkout from Amazon in the late 1990s. It is called Account Abstraction. (I will refer to it as AA at points in this piece for ease of reading).
The Koramangala Effect
Think of how your computer interacts with the internet today. When you download and install software, the computer asks permission to access storage or run commands. In the case of mobile operating systems, the system clarifies what data on the machine could be accessed by an app being installed. This is because root or admin access to a device is locked away from the random applications you download.
To “unlock’ a machine and give access to software, you often have to enter passwords on a MacOS device these days. Features like the fingerprint scanner on the keyboard or the face scanner on the iPhone make it seem like a quick and easy verification process, but that “check” exists.
In contrast, whenever you enter a password into Metamask and interact with a smart contract, you expose the entire address and all its assets to the internet. Very few permissions are often needed if a smart contract is designed to drain your wallet. Once you sign a message and give the contract permissions - it can do practically anything. It is the equivalent of opening up a bank vault each time you need to buy coffee. Doesn’t sound practical to me.
The way wallets are structured today, we give root access to smart contracts, any time we sign them with our addresses. This is why phishing scams & hacks in Web3 are so frequent.
Melvin Conway was a famous American computer scientist in 1967. He gave us what is now called Conway’s law. It states that any organisation that designs a system will produce a design whose structure is a copy of its communication structure. This is relevant in crypto applications because most communications are scattered in Discord, Telegram, GitHub and Twitter DMs.
By design, collaboration in Web3 is decentralised and distributed. Anybody can fork code and make their version of dApps. But what if it makes it incredibly difficult to integrate applications? If you want to see what I mean, consider that Uniswap is on six chains. Why would the average user care what chain is used to swap their in-game token to USDC? Ideally, that matter should not be presented to the user at all.
One way to think of Conway's law is about ease of transaction. In economic terms, a transaction communicates a ledger balance changing in people's wallets. If someone sends me money, their balance reduces and mine increases. If the transaction friction is high, users will engage in it only when it makes economic sense. This is what I call the Koramangala effect. Let me explain.
Close to 20 unicorns in India come from a single neighbourhood in Bangalore named Koramangala. Given the incredible amount of traffic to reach that part of town, it is rare for founders or VCs to travel all the way there until there is a term sheet being signed or a deal being pursued.
Because it simply isn't worth the hassle of dealing with the traffic. A variation of this is visible in Web3 too. People do not bother jumping through complex workflows until the incentives align to test out a new application.
(Sidenote: Siddharth Jain, a co-founder of this publication, used to stay at Koramangala. I met him for the first time in person after moving to Dubai because I used to stay at the other side of town during our time in Bangalore.)
People are comfortable jumping through AML-KYC, setting up their exchange accounts, wiring money to buy crypto and setting up a wallet to speculate on Uniswap because of the potential upside. Do that for a non-speculatory asset, and you will immediately see interest vanishing. This explains why volatility is our industry's most substantial sell. The pitch is often that the price of an asset may go high. This focus on primarily building for traders has kept us from making real B2C gaming or content ownership applications.
Mirror, Lens and Audius are successes in their unique ways. But they pale compared to traditional peers like Substack, Mastodon or Spotify. If we are to see a billion users come to Web3, then the UX needs to be as intuitive as a swipe or a one-click checkout button. And it must happen at costs that do not prohibit the average person from interacting with your application.
Account Abstraction becomes relevant in this context. I have been teasing it for a bit, but setting context on why it matters is as important as the idea itself. ERC 4337 is the most accepted standard for account abstraction in the market. One mental framework is the evolution of devices like Telephones or Televisions to their "smart" variants. Early mobile devices used to do one or two functions. Call and text people. Today, the iPhone can replace the bulk of the average office's productivity suite in the 1980s. A similar evolution is happening with cryptocurrency wallets.
Instead of users giving "root" access to their wallet for each transaction, you can set it up as a contract. The contract - can interact with a paymaster, which has its parameters. Things like allowing transactions only to a specific wallet, switching up the wallet's keys every six months or making payments in USDC without owning ETH to pay as gas can be made possible using the concept. But how does this even work?
The Basics
Ethereum has two types of accounts – Externally Owned Accounts (EOAs) and contract accounts. EOAs are controlled by users whw interact with (EVM chains like) Ethereum via wallets such as Metamask. Smart contracts are controlled by code; once deployed, their behaviour cannot (generally) be changed.
Every EOA on Ethereum today has two aspects to it. A public key and a private key. The public key is the equivalent of an e-mail address or a Twitter handle. It is your identifier. You give it to anyone looking to send you transactions. The private key is like your password. If this is lost, the assets become inaccessible.
In the case of a contract account, you can set up multiple keys the way they do with multi-sig wallets. What does that mean? Assume you are like me and tend to lose your house keys on random Friday night escapades. Knowing this, you give parts of a spare key to two friends who don’t know each other. When you lose your house key, you have them come and share the portion of the keys assigned to each. As long as they come through, you can access your house - and change the keys.
This is what happens with accounts where the keys are abstracted. In Argent’s case, you can have the wallet provider as the guardian to reset your keys if they are lost. Or you can have your friends help you recover the wallet.
You could also keep different keys on different devices—one on a hardware wallet, one on your mobile device and a third on your Metamask. So long as you have access to two of these three keys, you should be able to access the wallet even if one gets lost. Of course, it breaks the user experience in that you must sign each transaction twice. Still, it ensures you do not expose the wallet completely the way it works on Metamask today. One place this is already live and functional is with Safe Wallet.
We have figured out a way to restore accounts in Web3. That in itself is not what is exciting. It is the customizability that a smart contract offers. What does that look like? Let’s go with the remittance, the one thing where crypto may have a product market fit. Stablecoins are meaningfully faster and more convenient for cross-border transactions. But as anyone that has had to send stablecoins may know, you cannot simply send USDC alone. There needs to be a small amount of Ethereum in your wallet to pay for gas.
There are two emergent models we are seeing in the wild here. One is that of a verifying Paymaster. A verifying paymaster allows applications to pay for gas on the user’s behalf. This is useful in cases where a transaction is large enough to justify sponsoring the payment itself. The other is that of a Token Paymaster. A model where the user can pay for the transaction in any asset they own.
This article by Vitalik is a good breakdown of the model. Instead of having every transaction go directly on-chain, wallet providers (like Argent) can bundle individual user transactions off-chain. So you take the transaction data of all the users on an application in a given amount of time, see if they have the necessary balances to pay for fees and the transaction itself, and then send it across to a bundler.
The bundler sends it to the blockchain (Ethereum) to finalise the transaction. The bundler can charge a small fee for covering the gas costs on behalf of the user. In some cases (like Starknet on Argent), the bundling happens on-chain.
Account abstraction also makes it possible to develop unique user flows. For example, a person could do a bank transfer, receive ETH, have it deposited directly on Aave, withdraw interest and convert it back to their fiat currency. All without ever setting up a Metamask wallet. Or, they could “rent” an NFT (like Axie Infinity’s) to play a particular game and return it with a small fee without leaving a game’s interface. You abstract away the tedious, scary aspects of interacting with Web3 wallets. This user flow would allow the creation of entirely new use cases within the Web3 ecosystem.
There are multiple distinct feature sets I have mentioned above.
The first is abstracting away the key from the user’s wallet using social recovery.
The second is the probability of removing the requirement of holding ETH to pay for gas.
And the third is bundling multiple transaction types, such as converting assets from one to another (on Uniswap) and lending it out on an application like Aave.
On their own, it may be no big deal. But these are very 0 to 1 improvements from a UX perspective that have emerged after years of development. One way to think of it is that we are going from a time when blockchain transactions were on 256kbsp to 100 Mbps. The complexity of applications built through this will be exponentially higher than we saw in the past few years. I lay down a few use cases we may see in the wild below.
One way we will see this integrate with user experiences is with on-ramps. Currently, on-ramp products like OnMeta can onboard users to Ethereum in around 1 minute and 20 seconds in India. (I checked this personally. I was obsessed with getting it done under sixty seconds). The caveat is that the transfer must be worth under $150. The problem is that their user flow involves sending assets to a user’s wallet (like Metamask), and that process incurs a cost. Say around $5. Account abstraction can eradicate the need for sending users’ digital assets of any form and instead deliver the final asset itself. Which is a big deal in price-sensitive markets like India.
Lets’s presume you were trying to mint an essay from your favourite creator on Mirror. Users could “checkout” from Mirror, have an SDK query several on-ramps, and pay once to get the NFT minted in your neewallet. The assumption is that the platform (Mirror) would pay for the gas costs, and the user would have to do a single transaction in their native fiat currency to collect the post. The flow would look no different than buying a game on Steam today. In this case, you are receiving an NFT instead of a game.
In fact, there are mechanisms to abstract away the need for complex wallets altogether and use identifiers like e-mails in such a workflow. For instance, you may have web3 related transactions linked to your GMail, Spotify and Twitter accounts. A single wallet could be at the back end interfacing with all these services. ReDeFined’s SDK allows users to have wallets across multiple chains while using social login systems such as the ones you see on the “Sign-in with Gmail” button.
Account Abstraction also enables using physical gift cards for in-game items. We need to go back to the early 2000s (again) to understand why this matters. The infrastructure to collect payments or bill people did not exist when India’s mobile phone revolution took off.
Giving a line of credit to a population the size of India would not be a scalable way for telephone operators to grow. Conversely, most people did not have debit cards to make payments digitally. So scratch cards with codes that could be redeemed for telephone credits became the norm to unlock what is now over a billion mobile subscribers.
A variation of this is visible with services like Netflix, Spotify & XBOX Gold. These platforms recognise that the decision maker for these purchases (generally a minor) may not have a debit card to subscribe to online. Selling physical codes at retail outlets reduces the entry barrier to unlocking that user subset. They use their parent's debit cards as they age, and their consumption patterns become more defined.
The same applies to Web3 native games too. One way to distribute and onboard users without having kids set up wallets and go through exchanges is to sell in-game assets (or points) as scratch codes. (I can sense the cringe on reading this from any parent who has racked up a credit card bill from their child's in-game purchases)
One of the things I noticed purchasing an XBOX card recently is that the codes are not even on the cards themselves. You take the card to the cashier, who prints a code at the time of purchase and gives it printed on the bill. The physical cards are there to remind customers that they can buy these in-app credits. Replacing physical cards with a traditional checkout system, like the one you see on Amazon, should work just as fine if you are trying to sell an in-game asset in a Web3 native fashion.
In the user flow mentioned above, you skip the user setting up an externally owned wallet using something like Metamask, avoiding them having the hassle of going through exchanges or losing all their ETH in a hack. Instead, you give the digital item (in-game asset) as an NFT directly in their account on the game. Much like you buy gold bars for Red Dead Redemption or Shark cards for GTA 5.
The developer would incur the gas costs for the transfer, but acquiring a user already entrenched deep in Web3 is likely much costlier than covering the transfer costs (Yes, there's a cost in partnering up with a retail distributor like 7/11 or Target, which I am discounting) The flow mentioned above could be a mechanism to deliver in-game assets or tokens without the user ever realising a blockchain is in the backend.
A Feed for Web3
Now what exactly is the point of all this? This blog post from Vybe summarises the applications such an approach enables. In March of 2022, when I first wrote about Aggregation in Web3, I suggested we see super-apps that curate and combine feature sets from DeFi or NFT. A user could exchange an airdrop for USDC and put it into Aave to receive interest in a single click.
Or they could use an NFT they own to sell on OpenSea and repay their debt on Compound. This multi-step process would be made possible by AA. To see a live version, check Dump.services by CowSwap. They allow users to pick multiple tokens in their wallet and sell them all for a single asset in a transaction.
It is not just about saving the users' clicks. It is about the possibility of having curated experiences where a user does not have to worry about interacting with the wrong smart contract or losing all their tokens by signing a phishing page. Furthermore, AA makes it possible to combine permitting a wallet to interact with a contract, transfer assets, and revoke the permission in a single batched transaction. This would remove the need for users to revoke permissions later in time. What we will witness as a result is a mix of applications that position differently whilst being wallet front ends.
Let me explain that a bit more. In 2019, before Nansen, TokenTerminal or query layers like Covalent or Blockchain existed, everyone had access to the same public good, blockchain data. Anyone can query the data and show what is happening. But what Nansen, Dune or Covalent did in the years after was add application-specific layers to it.
Nansen started with simple dashboards that gave anyone a dashboard view of what was happening with a token. TokenTerminal focused on applying conventional, TradFi metrics to blockchain data to make it easier to compare dApps using benchmarks from the traditional world. So you take a public good, add a proprietary layer, and pursue niches.
In account abstraction, we will witness the wallet layer being commoditised while moats are built on the curation & social aspects. (I use the term "wallet" layer to refer to interfaces like Metamask, Trust and Phantom Wallet. Apps whose core functionality is sending assets). For instance, a wallet may be released that notifies users of a wallet with historically incredible P/L making a trade and then asks if the user would like to copy-trade it. A version of this already exists in a broken form today.
You can have notifications from Nansen for a particular wallet's transactions. Then manually follow it. With Account Abstraction, the whole experience becomes a single notification (of a user's trade) and a single click permitting your wallet to make the same trade.
A different way this could play out is through social networks. Today, when a user recommends an article or artist, there's little to prove their genuine interest in the product. Account abstraction-enabled wallets could create much stronger discovery graphs for niches. For instance, I would prefer a feed of articles collected on Mirror rather than seeing articles from Twitter accounts with large followings. This is because one signals spending actual money to collect, while the other exploits an existing social graph at little to no cost.
This approach could breathe new life into several primitives that have struggled to scale in Web3. For example, on-chain records of a person's music consumption, time spent in games, or articles collected could create a richer social graph than alternatives like Spotify or Twitter offer. A model like this would involve use-case-specific platforms (like Mirror) being integrated into a social network that connects users.
I tried creating a prototype below only to realise why I should stick to making charts instead of UI mock-ups. But hypothetically, such an app would allow users to collect, trade or mint on-chain assets through the feed. Much like how we like, retweet or subscribe on Twitter without going to an external interface.
Today, any portfolio screener can display the articles, songs, or games a user plays, but it is isolated and lacks context. A "feed" for Web3 activity would ideally consolidate this information into a single interface while contextualising what other users that a person cares about are doing.
There have been attempts at building similar apps in the past. Context.app pivoted to Mint.fun after a few months of trying this approach. The closest I could find to such an approach was Interface.social. The moat in this approach would come from developing proprietary models to detect what counts as a signal for users seeing something on a feed and what is simply spam.
Current Web3 users likely want to preserve privacy and not relay everything they do on-chain So its unlikely such a model works with a true degen in the crypto ecosystem today.. Another issue is that retail applications like Mirror haven't attracted a large enough user base to justify such a feed. Anyone pursuing this opportunity could face the classic chicken-and-egg problem: you find no users on the wallet because there's so little on-chain activity.
One Click Checkout for Web3
I have been reading Becoming Steve Jobs over the past few weeks. Alongside explaining how Steve Jobs became the man he was, the book lays down the challenges faced by the pioneers of the personal computing industry. For instance, when iTunes released and made buying single tracks instead of entire albums ubiquitous, they had to find a workaround for credit card charges.
It would cost up to $0.17 to sell a single track for $0.99. It would wipe away any profits Apple would make from that transaction. So they came up with an alternative that was inspired by Telephones. They began charging users $10 to $25 at a time, then debited $1 when users did micro-transactions.
Account abstraction does the same for Web3 transactions. Instead of giving applications access to your entire wallet, you allow a portion of your portfolio onto an application with a curated, verified subset of things you can do. The App Store (on iOS) or Play Store (on Android) did this for mobile applications.
Consider that most transformational shifts in Web2 payments came from curating transaction flows and collapsing the cost of trust needed to do them. Amazon did this for e-commerce. Stripe and Plaid did this for banking transactions and debit card payments. Coinbase did it for buying Bitcoin.
The question is, where would value accrual occur? One argument is that value flows downwards - to the SDK providers and chains these transactions occur on. Biconomy for instance, is able to bundle add-ons like their dashboard for developers looking to integrate them. There is also the fact that they are able to provide the know-hows that come from servicing the countless dApps they have been integrating over the past year. So over time, they (may) become the default choice for apps looking to enable AA.
The other place value that could accrue is with teams building the feeds. If done well, social apps using on-chain data, can avoid the hassle of building a native user base and create a product querying on-chain activity. The moat, in that instance, is in the speed at which data can be queried, contextualised and shown to users.
If a social network like this scales, it could become the discovery layer for Web3 applications of all kinds. Would you like to read what Naval Ravikant is reading this morning, with on-chain proof of how much time he spent doing that? It is possible if AA comes of age. We have been speaking to a social network building along those lines. More on them later.
What is clear to me is that AA is one of the few avenues where network effects can emanate within Web3. That is, the more applications shift to the standard, the more we will see both users and applications benefiting. This is because you could mix and match complex workflows, much like what we see on a Web2 app like Zapier today. If the standard is generally accepted, we will see service providers emerge around this ecosystem.
What does that look like? One of the models Ahmed (from Biconomy) suggested is that of a fiat paymaster. Remember the bit where I mentioned retail cards holding in-game assets can be a possibility? In that model, the retailer could charge a 2% fee on that transaction for enabling that transfer.
Similarly, a third on-ramp (like Moony) could directly cover gas costs for a user's in-game assets after charging their card on record. In the current model, we presume the user will bear that cost. In a fiat paymaster model, developers can choose to incentivize on-ramps to make the process smoother.
I could go on about why AA matters, but you get the gist. The reason why it excites me is that we are likely a few quarters away from having internet-scale blockchain applications that do not cost users anything. It is possible that developers use account abstraction on an L2 like Arbitrum, then cover user costs until the application scales, at which point they release their own app-chain. We are seeing a version of this with Lens. Does that mean the L1 thesis is dead? I don't quite know.
For all we know, we may be just looking at yet another standard that gets replaced by a shiny, new sql-chain being run by JP Morgan in six months.
For now, all I know is that we may be transitioning to a phase where building consumer experiences that are magical, relevant, and useful is well within the realms of possibility. And that excites me.
One of the things I have been obsessing about is how AWS made Web2 start-ups scaling a possibility. Netflix, Dropbox and Facebook had the same infrastructure provider in their early days. Reducing the cost of infrastructure (for founders) helped much of what we know as “web2” become a thing. Collapsing costs for infrastructure, redirects resources to where it counts.
AA, can just do the same for Web3 native applications. In case the theme interests you, I highly suggest going through the following resources.
This talk from Devon Bogota
Argent’s breakdown of AA as a concept.
The original draft for ERC-4337
ERC-2771 - on Meta Transactions.
Scale has historically been elusive to our industry. It seems attainable now.
I’ll see you guys next with some exploration we have been doing around meme coins.
Joel
Written with help from Ahmed Balaghi (Biconomy), Mitch and Dan (from Vybe) Adrian and Coiner (from LobsterDAO). Ahmed helped clarify much of my thinking around what is possible with AA and has been selfless in guiding the thought behind this piece. Definitely follow Biconomy’s Twitter to see all the new applications that can be built using AA.
Disclosures
We have exposure to Biconomy .
Some of the ventures mentioned above are part of the Decentralised.co venture pipeline
No part of this piece is sponsored.
Meet us at Telegram
Join in on the conversation with ±2700+ researchers, investors, founders & overall great human beings. I may or may not release the dashboard we have been working on to the Telegram community first.
Very great piece. I love how you mentioned Account Abstraction at the very beginning of the article, only to refer it as AA in the end haha
Very well said and great content🙌🏻
I am working on something related.