Wallets and accounts are key primitives in web3.
Although the terms "wallets" and "accounts" are vital components in the web3 landscape, their interchangeable usage can lead to confusion. Additionally, leading wallet platforms often lack user-friendly interfaces that clearly differentiate between the roles of wallets and accounts, creating further confusion. However, recent advancements in the Ethereum ecosystem, such as the introduction of account abstraction through ERC-4337, suggest that significant changes to wallets and accounts are on the horizon. What will these changes look like, and what implications will they have for users?
Crypto wallets store assets that are held on the blockchain. They can be used to buy and sell assets, as well as to interact with dApps for authentication or proof-of-identity. Each wallet holds a private key that it needs to function. This key can be used so that a wallet can be accessed from multiple places, but the interactions from those access points won’t sync. In addition, using a private key is a hassle and means that a central point of failure exists, creating a major security risk.
An account is also a place to store assets and interact with dApps, and it has its own public address for contract interaction. It can do the same things wallets can, except that the account's private key is connected to a wallet, as opposed to having its own separate key. This removes any security advantage of storing assets in multiple accounts, even though they have separate public addresses, as they're always tied back to a parent wallet.
Wallets and accounts have existed for a while and crypto has grown to a sizable scale with consumers using them, but the two still have some major issues that need to be fixed in order for the next billion users to be onboarded to crypto.
First, wallet apps don't implement consistent language or experiences for using wallets and accounts. For example, Coinbase lets you add wallets, MetaMask lets you add wallets or accounts, and Blockstream Green's accounts are groups for wallets. These are three very different experiences that should feel almost identical across each app.
Second, there isn't one central identity manager that knows everything you're doing and allows you to move dApps, interactions, or tokens into groups. This inconsistency between apps around what wallets and accounts are limits how the user can control their digital identity.
The lack of user-friendly tools, coupled with the difficulty in understanding how to use them safely and securely, can make it difficult for people to trust crypto. This leads to a cycle where users are unable to benefit from all that crypto has to offer due its complexity.
However, there are signs that major shifts could come to wallets and accounts, mainly thanks to new advancements rolled out in ERC-4337. ERC-4337 lays out the idea of account abstraction (AA), which plans to help implement smart contract wallets in the place of seeded wallets.
Instead of using externally owned accounts (EOAs) such as MetaMask that are tied back to one seed phrase/key and require manual transactions in one place, AA lets users set permissions, batch transactions, and control more robust settings around account recovery. This means that instead of the functionality of wallets being a part of the bad UX, users can have much more robust settings and more trust that their wallets will be more safe/easy to use.
What could some of the most impactful use cases be? Here are a few that, paired with good design, could really help the flow of user activity.
Bundling Transactions: Need to swap tokens before purchasing an NFT? Now you can get that all done in one transaction, saving gas and making the purchase more friction-less.
Social Recovery: What if you get locked out of your wallet and a trusted account or friend could get you back in, without dealing with the mess of seed phrases? As Vitalik Buterin explains in this article, smart accounts can help avoid that headache.
Self Custody: Because of how much more web2-like account abstraction is making wallets, users can do more and more easily on/off-ramp, which adds to their security.
Session Keys: Session keys allow users to pre-approve transactions given a set of its parameters. A great example of how this can be helpful is in a game, so users don't constantly have to approve transactions but can still be safe. They can also help enable subscriptions, which would allow many web3 companies to not only bring more users on-chain, but also to create a revenue stream. You can learn more here in a great article by MatchboxDAO on the topic.
Developers are working on bringing these features to mainstream audiences. And to add more incentives, The Ethereum Foundation announced $300K in grants for teams in the space.
Here are a few teams to keep an eye out for 👀:
Patch Wallet: A wallet where you log in with your GitHub/Twitter/Email, no seed phrases required. Patch works great for claiming airdrops and for attestation, as each login is verified and added to the wallet's profile.
Stackup: Infrastructure for smart contract wallets. Developers can build their own wallets using ERC-4337, access bundlers & nodes, and sponsor gasless transactions.
Argent: an account abstraction wallet on Ethereum. Argent features cheap transactions because of zkSync's L2 network, offers users yield options, and implements social wallet recovery.
Starknet: smart contract wallet where transaction fees are paid by a specific token that the Starknet OS handles.
Some of the most skilled developers and teams are working on account abstraction. But from everything they’re doing, what should the result be that best benefits everyone in the ecosystem, and what could that result look like?
What if setting recurring payments for a subscription was as easy as Face ID-approval for a stablecoin transaction? Features like this would not only improve existing wallet UX, but also make experiences feel familiar enough for web2 users to join web3. Similarly, a third party can sponsor gas fees to ensure that apps are easier for users and require less friction.
The fundamental idea of this article is the importance of a seamless user experience in managing wallets and accounts. Rather than scattered across multiple apps, users should be able to manage their assets in one unified platform. If we don’t succeed in building a smooth user experience, then users will default to web2 systems.
One piece of infrastructure that I’m incredibly bullish on is Wallet as a Service (WaaS) from Coinbase. The tool lets developers build web2-like experiences for their users, and uses advanced Multi-Party Computation(MPC) technology – tech that allows a wallet’s private key to be shared among multiple parties. With new custodial wallets and wallet solutions coming from tools like WaaS, Magic Labs, and others, it’s not hard to imagine a world where all login solutions use smart contract wallets behind the scenes.
As much as I want to see wallets evolve, one thing I really hope new wallets emphasize is more unified vocabulary. If certain features of a smart contract wallet seem universal and ways to group or manage those wallets do as well, then language shouldn't deter user activity.
This Dune dashboard highlights that Ethereum has around 2M wallets sending/receiving assets per week, while over 2BN+ use online banking per year, according to Statista. If these stats mean one thing, it's that web3 hasn't matured yet.
In order for web3 to become mainstream, it's crucial that industry standards are agreed upon. ERC-4337 can help address wallet and account issues, and pave the way for a more standardized and accessible future of web3. Let's work together to onboard the next billion users 🚀
Interested in the future of wallets/accounts and want to talk? Send me a DM on Twitter or find me on Farcaster.