EIP-7702 FAQs
What is EIP-7702?
EIP-7702 is a proposal that allows EOAs to become smart accounts. It is going live in the Pectra hard fork on Ethereum Mainnet on May 7, but it is already live on some other chains like BSC Mainnet and Odyssey Testnet.
How does EIP-7702 differ from ERC-4337?
In short, EIP-7702 allows for a way for EOAs to become smart accounts, while ERC-4337 creates a standard for smart accounts to plug into a standardized set of relayers and gas sponsorship modules (paymasters). Refer to the ERC-4337 vs EIP-7702 guide for more details.
Is EIP-7702 compatible with ERC-4337?
Yes, EIP-7702 is compatible with ERC-4337. They cover different responsibilities. ERC-4337 is a standard for smart accounts to plug into a standardized set of relayers and gas sponsorship modules (paymasters), while EIP-7702 allows EOAs to become smart accounts. Refer to the ERC-4337 vs EIP-7702 guide for more details.
Does Pimlico support EIP-7702?
Yes, Pimlico supports EIP-7702 by allowing an eip7702Auth
object to be included in eth_sendUserOperation
and eth_estimateUserOperationGas
requests. You can read more about how to use it on the relevant reference pages for eth_sendUserOperation and eth_estimateUserOperationGas.
Which chains are supported by Pimlico for EIP-7702?
Pimlico supports EIP-7702 on Ethereum Mainnet (including Sepolia), BSC Mainnet, OP-Stack chains (Base, Optimism, Zora, and others), and Odyssey Testnet.
How does an EOA transition to smart account under EIP-7702?
By submitting a set code transaction (transaction type 4) that includes an authorization_list
.
How does EntrPoint v0.8 prevent frontrunning for EIP-7702 user operations?
The smart account factory is able to make the check require(msg.sender == entryPoint.senderCreator());
to ensure only the EntryPoint's senderCreator is calling it.
In addition, the userOpHash now also depends on the delegate address so users also sign over the 7702Auth
object (source)
Is it possible to turn an EOA into a smart account under EIP-7702 for all chains?
Yes, as per the spec, by signing over a chain ID of 0, it is possible to make an authorization tuple that is valid for all chains and can be applied on all chains that support EIP-7702. With this, it is possible to for instance generate an ephemeral private key, sign over the 7702Auth
object with it, discard the private key and then use the same 7702Auth
object on all chains that support EIP-7702, even if the chain comes out many years later.