Developers
March 16, 2023
Unless you check new ERCs everyday (in which case, good for you), you probably haven’t noticed this new ERC known as ERC-6492, innocuously named "Signature Validation for Predeploy Contracts.” As this post is going to argue, ERC-6492 is critical to the wide adoption of account abstraction and smart contract wallets in general.
We will now explain the issue that ERC-6492 addresses, briefly touch on the technicalities of how ERC-6492 solves the problem, and end by explaining why it’s critical for key ecosystem projects such as Ethers and SIWE to adopt this new standard.
Terminology
For brevity, I will be using the following pairs of terms interchangeably, even though it’s not technically accurate:
The Context
As I explained in a previous post, AA wallets are mostly compatible with existing DApps since AA transactions look no different than normal transactions from the perspective of the DApps, except for some edge cases.
Signature validation is a different story, however. As you know, many DApps require some form of signing; OpenSea for instance requires the user to sign a message before they can “log into” the DApp.
Since smart contract wallets have the flexibility to support different signing schemes, there isn’t a universal way to validate signatures by a smart contract wallet. Instead, there’s a standard ERC-1271 which defines a standard function isValidSignature on a smart contract wallet so that the verifier (e.g. OpenSea) can call the function to validate the signature, without needing to know specifically what signing scheme the wallet uses.
This is all fine and good, and in fact ERC-1271 as a standard enjoys wide adoption. Most popular DApps today, including OpenSea, already support it.
The Issue
With the rise of ERC-4337, smart contract wallets are becoming increasingly commonplace. One key optimization that ERC-4337 implements is counterfactual deployment—namely, that we can compute the address of the account before the underlying smart contract is actually deployed. As a result, a user can “create” an ERC-4337 wallet without paying the deployment cost, so they can start receiving assets, signing into DApps, etc. Only when the user sends their first transaction is the contract actually deployed.
While counterfactual deployment is normally very desirable, it becomes an issue when the user needs to sign messages.
isValidSignature on the wallet contract.Consequences
So what does this mean for the users? It means that it’s impossible to validate signatures from ERC-4337 wallets until they are deployed. Therefore, for a new ERC-4337 wallet that has not sent any transactions, it’s impossible to, say, sign into OpenSea or any DApp that uses SIWE.
This is very bad because users who are new to Web3 want to sign into DApps and look around before they spend any money on gas. Forcing a user to pay some gas to deploy their wallets before they can see a DApp would be a major step backwards comparing to the EOA experience today, where you can sign into DApps even from an empty account.
Solution
ZeroDev first encountered this problem when we were developing our WalletConnect integration and realized that we couldn’t sign into OpenSea until we deployed the wallet, which led to a lengthy discussion with many smart people in the 4337 ecosystem. Eventually, Ivo from Ambire came up with a great solution that turned into ERC-6492.
On a high level, ERC-6492 works by using a UniversalSigValidator contract that validates a signature as such:
UniversalSigValidator would then proceed to simulate the contract deployment and call isValidSignature on it to validate the signature.eth_call, which essentially simulates the transaction without actually executing it on-chain.ecrecover.Next Steps
So who needs to implement ERC-6492? In short, it’s whoever that needs to verify signatures, which is mostly DApps.
However, DApps don’t write everything from scratch. In fact, there are a few libraries that most DApps use for handling signatures, so if these libraries adopt ERC-6492, DApps would get to support ERC-6492 “for free.” Some of these key libraries are:
If you want to see the space move towards AA and smart contract wallets, there are a few things you can do:

This post announces the launch of the ZeroDev Go SDK and a dedicated User Operation Builder API, making ZeroDev the first smart account provider to offer native, high-performance support for sending UserOps directly from a Go backend.

This blog post, the second in a series, analyzes the impact of EIP-7702 (slated for Pectra, April 2025) on DApp developers. EIP-7702 allows an existing EOA (Externally Owned Account) to "upgrade" into a smart account while keeping its original address, bringing AA benefits like gas sponsorship and passkeys to existing users.

This blog post addresses two major challenges of the ERC-4337 standard after two years in production: high transaction costs (UserOps are $\sim$2x more expensive than regular transactions) and slow transaction latency (often adding 2–3 seconds to execution time).
If your team is blocked on account UX, gas, or chain complexity, ZeroDev gives you a practical place to start.
