Concept: For what EIP-7702 enables on Stable and the security considerations, see EIP-7702.
Prerequisites
- Understanding of EOA vs. smart contract accounts (EOAs have no code by default).
- Familiarity with EVM transaction types (EIP-2718).
Overview
EIP-7702 introduces a new transaction type (0x04) that carries an authorizationList. Each authorization designates a smart contract whose code the EOA will execute for that transaction. The flow is:
- Choose or deploy a delegate contract: a standard Solidity contract implementing the logic you want EOAs to use. You can use a deployed contract or deploy your own. Use an audited contract whenever possible.
- Sign an authorization: the EOA owner signs a message authorizing the delegate contract.
- Submit an EIP-7702 transaction: the transaction includes the authorization, and the EOA runs the delegate’s code during execution.
Use case: batch transactions
The steps below walk through this flow usingMulticall3 as the delegate contract. Multicall3 is a widely deployed utility contract that aggregates multiple calls into a single transaction. By designating Multicall3 as the EIP-7702 delegate, an EOA can batch arbitrary contract interactions (token transfers, approvals, contract reads, or any combination) into one atomic transaction. Batch payments are one example: instead of sending ten separate transactions for a payroll run, the EOA executes them all at once.
Step 1: Use Multicall3 as a delegate contract
Multicall3 is deployed at 0xcA11bde05977b3631167028862bE2a173976CA11 on Stable. Since it’s already deployed and widely used, you don’t need to deploy your own delegate. Signing an EIP-7702 authorization grants the delegate full execution authority over your EOA.
Step 2: Sign an authorization
The EOA owner signs an authorization that designates the delegate contract. This authorization is included in the EIP-7702 transaction.Step 3: Submit an EIP-7702 transaction
Combine the authorization with a call toMulticall3.aggregate3. This example batches three USDT0 transfers in a single transaction.
Multicall3.aggregate3. The delegation persists until explicitly changed or cleared. While this example shows batch payments, the same pattern works for any combination of contract calls.
Use case: spending limits
A delegate contract can enforce per-transaction or daily caps on an EOA without account migration.Use case: session keys
Session keys allow a dApp to execute transactions on behalf of an EOA within scoped permissions: a time window and an allowed set of target contracts. This is useful for dApps where frequent on-chain interactions would otherwise require repeated wallet approvals.Important considerations
- Persistent delegation: the delegation persists until the EOA explicitly changes or clears it. It is not limited to a single transaction.
- Gas costs: EIP-7702 transactions have slightly higher base gas due to authorization processing, offset when the delegate batches multiple calls.
- Use audited delegates: a malicious delegate contract can drain the EOA’s assets. Only delegate to contracts that have been audited.
Key takeaways
- EIP-7702 lets EOAs execute smart contract logic without migrating to a new account type.
- On Stable, EIP-7702 enables batch payments, spending limits, and scoped session keys on existing EOAs.
- The delegation persists until explicitly changed. Always use an audited delegate contract.
Next recommended
Subscribe and collect
Apply EIP-7702 to recurring subscription payments with a SubscriptionManager.
EIP-7702 concept
Understand the delegation model before you ship it.
EIP-7702 reference
Look up the
0x04 transaction format and authorization fields.
