EIP-7702
How to use EIP-7702 to execute cross-chain transactions
EIP-7702 enables smart account behavior for EOAs by allowing them to execute arbitrary calls via an authorization signature. This is especially useful for cross-chain transactions where the origin chain funds the destination chain execution, but the destination-side call must still reflect the user’s EOA as the msg.sender
.
🚀 Support for EIP-7702 is live on testnets (e.g., Base Sepolia → Sepolia) and will be rolled out to mainnets soon.
When to use EIP-7702?
By default, the Solver is the sender (msg.sender
) of destination chain transactions. This works well for simple “buy” use cases where the action can be routed to the user. But in many other scenarios (e.g. minting, selling, approvals), the contract logic relies on the caller being the user’s EOA.
EIP-7702 solves this by turning any EOA into a smart wallet, allowing relayed calls to preserve the original msg.sender
. This unlocks new capabilities like:
- Delegated execution: destination chain transactions that require the user as
msg.sender
- Cross-chain payment routing: use gas from one chain (e.g., Base) to pay for transactions on another (e.g., Sepolia)
- Batched actions: approvals, minting, or function calls that must originate from the user
Relaying on the destination chain using EIP-7702
You can use EIP-7702 by passing an authorizationList
inside the txs
array during your /quote
API call. The Solver will relay these transactions on the destination chain by passing the authorizationList
while sending a type-4 transaction.
Here’s a complete example: