Exploring Account Abstraction

Intro

It's safe to say that blockchain and crypto as an industry has grown and matured a lot in recent years. It's been a thrilling, high-speed rollercoaster ride so far, brimming with new developments and cutting-edge innovations, and up-only movements. But now that the bear market has been around for a while it’s the game played by the real ones only. Now already known phrase ‘build the bear’ is the best environment for builders to do what they do best -- build, create, innovate.

One of the innovations that have been the talk of the town in recent months has been Account Abstraction. While this term may be unfamiliar to a regular crypto user, it truly represents a significant step forward in the way we perceive and use crypto wallets and accounts. It is one of those breakthrough innovations that will forever be remembered as one of the critical ingredients for the mass adoption of cryptocurrency that will be used by millions and billions of users in the future and yet remain unknown to the vast majority.

But for us, builders, investors, early adopters, tech enthusiasts, blockchain advocates, crypto punks, maniacs, and misfits, this marks a significant achievement that will radically transform and improve how we build things and help with removing the frictions to global crypto adoption.

Let’s dive in, shall we?

What is AA?

My goal is to try and explain Account Abstraction (AA) without being boring and repetitive from what you’ve already heard. Let's see if I can do it.

AA is, simply put, a concept that refers to the ability to separate the functionality of an account (wallet) from the underlying code that powers it. Think of an account/wallet as a collection of funds that are controlled by a private key. However, with account abstraction, an account can be thought of as a smart contract that can perform any number of operations beyond simple transfers of funds. This opens up a world of new possibilities for developers and users alike, allowing for more flexible and powerful applications to be built on top of the blockchain. It transforms rudimentary accounts into smart accounts with programable functionality.

Allow me to elaborate

In order to truly understand what AA is you need to know there are two different types of accounts in crypto:

  1. EOAs (externally owned accounts):

    1. Custodial — wallets provided by CEXes usually where you don't hold your own keys (yuck).

    2. Non-custodial — where you have to keep your keys and are solely responsible for your own funds.

  2. Contract accounts — These are pretty much smart contracts that have some kind of pre-programmed behavior and act as wallets.

The best example of a smart contract wallet is Safe; you create a 'safe' which is a contract that acts as a wallet. In this case, the safe is multisig wallet that is owned by you and other participants/custodians you wish to add. After you add them, you create the consensus about how many of those custodians would need to sign/approve every transaction that happens on that wallet. Hence the name, multisig. So Gnosis provides 'smart(er) contract wallets' which are preprogrammed to do one function - act as multisig wallets for you and your co-signers to increase the security of funds and it is primarily used by the DAOs or other organizations, groups, and so on.

That said, the power of AA lies in this -- it basically unlocks the ability for all accounts to become "Smart Accounts". So what proponents of AA advocate is to make all new wallets into smart accounts because they have the potential to be superior to EOAs. Essentially, with ERC-4337, you have everything you need to build a smart account for your app and experiment with building different use cases, across different industries.

As John Rising puts it:

Specifics?

Ok, let’s dig even deeper!

Contract accounts or smart wallets (call them whatever you like) are code. And code is the law!

Shoutout to the Bankless family
Shoutout to the Bankless family

And as we said, pretty much anything is possible from this point forward. The only limit is some developers' creativity and business acumen in predicting the future. Deciding how to implement and take the most advantage out of this new tech. And as you’ll see below, it’s up to the founders to decide how to best use it and make their own projects more user-friendly, easy to use, and improve functionality overall.

I wanna talk about specifics. One thing that is simultaneously very annoying to me and also challenging is that everyone parrots back whatever they learned by heart about certain concepts and aims to sound smart and eloquent. But what marks a good understanding of certain concepts?

I believe that only through giving clear explanations and propositions of how certain technology or innovation can and will be used in the future, is that when you truly understand them and their potential. Everything else is just saying nice words and trying to sound smart.

Benefits Overview

Let’s start off with some benefits. There are several key benefits.

  • First, it allows for greater flexibility and functionality in the applications that can be built on the blockchain -- developers’ haven.

  • Second, it makes it easier for developers to build and deploy these applications, since they can leverage the existing infrastructure of the blockchain rather than having to build their own from scratch.

  • Finally, it can lead to improved scalability and performance of the blockchain, since account abstraction can help to reduce the amount of data that needs to be stored on the blockchain.

  • The real magic though is on the end user’s side of things -- it aims to significantly improve UX for all dapps and the overall usability, therefore, helping speed up mass adoption.

Wen Use cases, Cap?

Alright, let’s try and predict some future if we can. The way to do it is to look at the current functionalities of AA, look into the features it provides, then look into what’s been happening in the industry and predict where we’re going.

Below is everything I read and understood about AA. I’ll also try to give some random examples with some silly use cases that might not be the best business models but can certainly demonstrate the power of AA and hopefully deepen your understanding of their potential.

Anytime I do so, I’ll write “Super Random Example”.

Permission controls

For EOAs, if you have access to the private key you can sign any single transaction with that wallet address because the private key grants access to *everything* on that wallet. However, for Contract Accounts, you could define a list of permission you want to be allowed to be executed for some specific account.

Out of everything you’ll read below, I find Permission Controls to be the most powerful as they allow for the creation of a lot of future use cases.

Mutli-sig Wallets — One obvious example is multi-sig wallets. Multi-sig wallets are basically Contract Accounts that have a programable condition to require a certain number of signers in order to execute some transaction. For example 3 out of 5 signers (co-owners of the Contract Account) are required to approve a transaction. The most famous one is Gnosis Safe mentioned above. It’s pretty cool.

Super Random Example — Let’s say there’s a scavenger hunt platform where whenever you accomplish some task you get to mint an NFT. And the first 10 people to complete the entire scavenger hunt and mint all NFTs automatically get deposited 500$ into their wallets. Sure, why not. Not saying it’s a good idea, but it’s possible.

Batch/bundle transactions

For EOAs, you need to sign each transaction if you want it executed. But Contract Accounts are capable of batching transactions together. What this means is you could for example approve a token swap and swap a token in the same transaction. Pretty cool eh?

Super Random Example: This can come in handy if you’re a degen (like me) and you occasionally trade some shitcoins and thus would like to, for example, give permission to a contract, execute a swap, and revoke the permission in the same transaction when buying some questionable token from some questionable DEX.

There are a lot of other use cases for batching transactions that the entire DeFi space is crazy about and we’ll talk more about it below when we come to the Industry-specific examples.

Account Recovery

From what I've seen so far, seems like the most fuss is around the social recovery mechanism. This basically describes the ability to recover your wallet if you had lost your seed phrase or your private key to that wallet.

And I get it, the vast majority of the current normies (future crypto users) will need to have a social recovery system in place because let's face it some people are not worthy to be entrusted even with a pen let alone with one key to all of their assets and wealth. (shrug).

For EOAs loss of a seed phrase or a private key means losing access to everything on that wallet, forever! But with Contract Accounts, you can program any logic in code and define how the account can be recovered.

Super Random Example: Let’s say 2 out of 3 previously defined wallets can sign the transaction that will grant them access to your funds so they can transfer them to some other wallet on your behalf. These 3 people can be your spouse, your friend, and your lawyer for example, or your ex, current lover, and Vitalik. I’m not judging. What I’m trying to say is this way you and your funds are protected even if you lose your private key. If you choose the former, that is.

There are certain risks here, and you should definitely choose only people who you fully trust, but it’s a worthy tradeoff for significant UX improvement that will help onboard new and inexperienced crypto users.

Transaction limits

We mentioned in the previous example right above where we said you could choose 3 trusted persons to access our wallet if you lose access to it, right? So how the Transactions Limit would work in this case is that once they access your wallet you could say that they can only do a certain number of transactions. Maybe 1, 2, or 5, or however many you had previously defined.

So what Transaction Limits enable is that you can write any logic to control how the funds can be transferred. Another example would be, to write a function to halt transactions to other addresses while you recover your account.

Super Random Example: Forbid yourself from sending money to a certain wallet or limit yourself to sending only one transaction per month because why not, you’re only practicing using AA in your coding.

Automated Transactions and Pre-approvals

As you already know by now, each time you wanna do a transaction on the blockchain you have to sign it. Using pre-approvals to automate certain transactions, it will be possible to sign one transaction that will pre-approve all the following transactions for either a number of executed transactions or for a certain time period.

This finally enables **Subscriptions**** in crypto! Soon, you’ll be able to pay for some service or an app that you subscribed to in eth or stables.

Super Random Example: Parents can control their kids’ wallets and how much they get to spend on a daily or monthly basis, on certain things, like games, or monthly spending limit overall, etc.

Super Random Example Take 2: Or companies can control how much their employees get to spend yearly on business trips and days off work.

Super Random Example Take 3: Or limit your husband’s spending limit of your wallet to 1 transaction per day, because, let’s face it, he has issues.

As my examples are getting worst and more nonsensical I hope that my point, and your understanding of AA, is getting better.

Chain Abstraction Concept

If I had to explain what this does for the end user in the fastest way possible it would be like this — from multi-chain to chainless experience.

Chain Abstraction is the concept that is powered by Account Abstraction to a certain degree. It describes the ability to use any dapp on any chain even if you have funds on one blockchain. If this doesn’t make you excited I don’t know what will.

However, it’s worth mentioning that Chain Abstraction is not purely enabled by AA. You can have a good degree of Chain Abstraction without AA as well, using General Message Passing Protocols. Axelar team has a good definition:

General Message Passing is more than wrapping assets and transferring them between chains: it enables a developer building on one chain to call any function on any other connected chain.”

Super Random Example: Imagine being an Ethereum maxi and only stacking ETH and being able to use any application on any EVM-compatible blockchain while you don’t need to bridge your funds there.

Sponsored (Gasless) Transactions

Having sponsored transactions is like being a hot girl going to the club — you can go without the money and you know you’ll still get drunk. (silence + crickets chirping). This failed attempt at me trying to be funny, at the risk of appearing as a semi-sexist writer, put aside, sponsored transactions open up a ton of cool use cases.

If you haven’t understood it by now, sponsored transactions are transactions where someone else covers the cost of executing a transaction from your wallet.

Super Random Example: A new free NFT collection from Nike that is launching is automating its contract to pay for gas fees on minters behalf so they can literally mint an NFT for free, or even use a brand new wallet to mint an NFT without having any ETH on that wallet.

Super Random Example: Mint a POAP for free? If the POAP creator covers the gas costs for you and POAP had previously integrated AA into their protocol.

Super Random Example: You could also limit the number of transactions you want to pay for a certain wallet. The limit can either be in numbers or the total amount of gas fees. This can come in handy for corporate accounts for example where your company sponsors your business wallet and pays for your gas fees or something like that.

The possibilities are endless and I’m sure we’ll see a million creative, fun, and helpful use cases come into existence.

Industry Specific Examples

After doing some calls and interviews with people from the industry I discovered that the companies that are most interested in AA are coming from:

  1. DeFi

  2. Gaming

  3. Wallets

DeFi

Projects utilizing AA primarily for batching transactions so when you’re trading, swapping, doing limit orders, etc. you can do it all in one transaction. This significantly improves the overall user experience as it fixes one major issue.

Combining AA with other contracts that execute transactions on your behalf can resolve permission issues. One example can be Limit Orders on trading platforms and DEXes. By pre-approving the contract wallet's ability to execute transactions on your behalf, users can now execute transactions that were previously not possible due to permission issues.

Imagine coming to a website where you can: do a swap + approve 2 token contracts + add liquidity to some pool, all of that in one transaction, and do it for free by having someone pay for your gas fees. Come on! This sound crazy but it’ll come sooner than you think. And we can expand on this even more…

Let’s say that you want to do some yield farming or simply stake some ETH. But, instead of receiving token rewards you want to auto-compound them each month. Or maybe you want to auto-compound 50% and have another 50% swapped for stablecoin and then sent to a different wallet that you use for shopping. And so on and so on. This is all possible using AA methods and a little bit of automation and there are some projects working on this already.

From what I’ve seen, DeFi projects are also fans of the chain abstraction concept. And how they put it into practice is by allowing every single user a seamless experience of swapping, leverage trading, derivatives trading, etc. How?

Let’s say that you are on Polygon and the dapp you want to use is on Avalanche. Currently, that’s a semi-problem. Because it’s solvable but it’s inconvenient that would discourage probably around 90% of people to use the Avalanche app. The other 10% might bridge the funds and use it. However, the dapp on Avalanche could allow, through AA, the ability for liquidity bridging from chain to chain + batching transactions + cross chain execution + bundle transactions to give a one-click experience = allow users to use the Avalanche app from Polygon chain. (Mic drop)

Gaming

Many people believe, including me, thanks to my NeoTokyo crazy fellow citizens, led by Ellio and Becker, that the Gaming industry will be… sooo big, that my English skills are not on the level high enough to try and describe it. It will surely be the industry responsible for on-ramping the biggest number of people into crypto, with or without their knowledge. Especially since gamers are usually more tech-savvy than the rest of the population. I personally believe that the Gaming industry will be the first one to lead us across to the chasm and to the early majority followed by mass adoption.

So what’s the problem with crypto and gaming? Well, dear Anon, turns out that repeatedly signing every single transaction, while playing the game, annoys the heck out of gamers. That is one of the biggest problems that is addressed by utilizing AA. You won’t need to sign a transaction each time you want to perform something on the blockchain while playing the game. There are some other advantages that can and will be used by utilizing AA and those are gasless transactions, social login, session keys, etc.

With session keys, you can create and customize a session for a set period of usage, interaction, or gameplay. Therefore, the user just signs one transaction during the session while playing the game and they are good to go until they exit the game.

Wallets

Wallets can utilize a lot of the features we discussed above. We can do a small recap of what wallets have been doing primarily.

For now, wallets use AA to provide the next generation of users with a self-custodial wallet that enables fast, cheap, and secure cross-chain transactions through one-click bridging and swapping. On top of all of this, wallets could also have a coded social recovery system where if you lose access to your wallet you could potentially recover your funds from previously designated people.

One really annoying thing that all crypto OGs are familiar with wallets is that when you create a new one you have to have some ETH there in order to execute transactions or do anything with it. So, you have to deposit some funds from your other wallets. It’s a painful process.

Using wallets in the future will be a frictionless experience where users won’t have to know about any chains, or bridges because the whole perfecting cross-chain interoperability, and liquidity, through AA, will essentially make the entire experience chainless. All actions like swapping, bridging, paying, and transferring, will be executed through only one transaction.

Furthermore, if I had to guess, there are going to be a lot of wallet-specific use cases. Some wallets will be dedicated to one user group like parents, gamers, or traders, and will have accompanying AA features to serve those typical needs best.

We’ve already spoken about all the features but I think that batching transactions, spending limits, sponsored wallets, or paying for gas in the different tokens (most likely in stables), but also something that is pretty big is the ability to sign transactions using either your fingerprint or face ID.

Some will say that this compromises security but all of our banking apps and information are already faceID-enabled and so I don’t see how this will be different. It may be a small ‘security’ tradeoff but it’s a huge UX improvement.

The Identity

If you know me (and let’s face it you don’t) you know that I absolutely love Decentralize Identity. I plan on publishing an article covering it as well in the future.

One of the core pieces of the identity puzzle is DID (Decentralized Identifier). Ever since the crazy rise of ENS, there have been quite a few out there but no one comes even close to the overall quality and raw power of ENS as a protocol.

You might be wondering -- what does this have to do with AA though? Well, we’ve already established that Wallets are one of the first and prob the biggest adopters of AA. And a combination of a smart wallet + web3 identity is very powerful.

I already spoke about this in one of the articles I wrote about ENS called Meet ENS which represents an all-encompassing knowledge base about ENS, but Coinbase has done a wonderful job pursuing decentralized identity and has integrated with ENS to provide its users a quick web3 ID for the wallet they create using the cb.id extension.

Now, if you know me (and let’s face it you still don’t), I’m the founder of Namespace - an ENS subname management platform that helps ENS name owners get the most out of their names. And while I was working on figuring out what is the ultimate goal we’re working towards and what is our vision, I came up with this:

From the Namespace presentation
From the Namespace presentation

Therefore, another reason why I’m bullish on AA is that it will help decentralized identifiers such as ENS become more standardized and in the process revolutionize the entire wallet experience. Eventually, we’ll all have only usernames or IDs instead of long chunky 0x4kP6…P3sD wallet addresses, that will be cross-chain compatible and usable across the entire web3 space where people will send you their account name (.eth, .lens, .avax, .crypto name, etc.) or any other when you ask them to send you their wallet.

This is really important because I think Wallets and CEXes will be responsible for massive on-ramping of new crypto users each time the tide shifts and we enter a bull market and I think the number of new users with every new bull market will be exponentially growing.

Bonus (wallet) Use-case

Since we mentioned Coinbase, I have to say a few things about them as well. I recently tweeted that:

And I really mean it! At least for now. You never know who might surprise you in crypto.

Anyway, Coinbase recently launched Coinbase Cloud which provides something called Wallet-as-a-Service. I believe this is something closely related to Account Abstraction and Smart accounts that they are working on and it’s, hands down, one of the biggest gigabrain business moves. Hence my new profound respect for them.

Their aim is to provide tools for programable smart accounts to other big Web2 and Web3 companies, thus enabling them to enter the web3 market and provide a smooth experience for their ‘normie’ users. What does this mean?

Well, let’s say that Starbucks wants to enter web3. Starbucks has a lot of customers who have no idea about crypto and don’t have a crypto wallet set up. So asking them to create one in order to get certain benefits won’t be a frictionless onboarding experience and probably not a lot of people will bother doing it.

We’ve been saying for a while now -- the mass crypto adoption will come once the end user doesn’t know they are using crypto! And Coinbase is here to give the tools for companies like Starbucks to build just that.

So imagine logging into Starbucks again, but now this time you won't need to connect your wallet. Utilizing the wallet-as-a-service feature Starbucks will provide an in-app smart account/wallet for you that is associated with your existing account and you’ll get to receive all crypto-related benefits seamlessly. You’ll use and participate in crypto activities without even knowing it.

This one is so interesting that I might write another article about it.

To conclude

As I said in this tweet:

and I firmly stand by it.

Account Abstraction is a game-changer that has the potential to be a major catalyst for the widespread adoption of cryptocurrencies. In essence, this innovation brings forth a range of benefits that are too good to ignore. It is poised to revolutionize blockchain technology and make it more accessible and user-friendly. However, it's worth noting that this innovation is still in its early stages, and there are technical hurdles to overcome before it can be adopted on a larger scale.

There are many aspects to be excited about when it comes to AA. Whether you are a dev or the end user or an admirer of good tech. It unifies, simplifies, improves, and commercializes digital identity, wallet creation, gaming experience, navigating chains, and overall experience in web3 by providing necessary tools for builders.

The widespread attention from industry giants is a testament to the foundational role that AA will play in the further development of the Web3 world and yet it will remain unknown and unseen by the majority of regular users.

Despite this, AA represents a significant shift in the way that accounts are designed and used, with the potential to usher in a new era of innovation and growth in the blockchain space. While it will require significant changes to wallets and other software applications, the benefits of this new technology are expected to be substantial, making AA a true game-changer in the blockchain industry.

Grateful

This article wouldn’t be possible without these amazing people below who helped me along the way:

  • Rhic from Biconomy (and Charlie for introducing us) - helped me understand what industries use AA the most and how they are using it.

  • Zeneca from Zen Academy - helped me understand broader use cases.

  • Krunal from UniDex - helped me understand the DeFi application aspect and actually kickstarted my interest in AA during our chat a long time ago.

  • Edi from SpaceShard - helped me confirm my findings and understanding.

  • The entire crew at InternDAO.

  • David from Bankless for posting this tweet which helped with my research xD

  • The ultimate AA cheatsheet AwesomeAA from Kurnal


As always, feel free to slide into my DMs either on Twitter or Telegram (@theCapHimself) to talk about... well anything crypto, really.

🫡

Subscribe to Cap
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.