Description
Summary
Each validator operation (consolidation, withdrawal, exit, credential switch) currently requires an individual EIP-1559 transaction to the system contract. For users managing 50+ validators, this means dozens of transactions split across multiple batches, each requiring separate nonce management, receipt monitoring, and retry logic. Additionally, the EIP-7002 spec notes that EOA callers always overpay system contract fees.
Proposal
Add an optional EIP-7702 code path that delegates the user's EOA to a BatchDelegator contract, enabling all validator requests to be submitted in a single type 0x04 transaction.
Key benefits:
- Atomicity — all operations in a batch succeed or fail together
- Gas savings — one base transaction cost instead of one per validator
- Predictable fees — same-block inclusion avoids inter-block fee escalation
- Fee overpayment elimination —
BatchDelegator can staticcall the fee getter to pay exact amounts
- Simplified orchestration — single transaction to monitor instead of N individual replacements
- Reduced Ledger interaction — one auth tuple + one signature instead of N signatures
Scope
| Component |
Description |
BatchDelegator contract |
Solidity contract with executeBatch(), deployed per network. Requires audit. |
| Transaction construction |
Type 0x04 transactions with authorizationList and ABI-encoded batch calldata |
| Signer support |
WalletSigner via ethers.js authorize(). LedgerSigner supported at hardware level but subject to Ledger's delegate contract whitelist. |
| Dual-path orchestration |
New single-tx path alongside existing multi-batch path |
| CLI |
--eip7702 flag or auto-detection of existing delegation |
Constraints
- EIP-7825 (Fusaka) introduces a ~16.78M per-transaction gas cap, limiting batch size to ~80 requests per transaction
- Ledger devices enforce a whitelist for delegate contracts — custom contracts require Ledger approval
BatchDelegator needs a security audit before mainnet use
Approach
- PoC for
WalletSigner on hoodi
- Validate gas savings and UX empirically
- Investigate Ledger whitelist process for custom delegate contracts in parallel
- Existing EOA path remains the default fallback
References
Additional information
No response
Description
Summary
Each validator operation (consolidation, withdrawal, exit, credential switch) currently requires an individual EIP-1559 transaction to the system contract. For users managing 50+ validators, this means dozens of transactions split across multiple batches, each requiring separate nonce management, receipt monitoring, and retry logic. Additionally, the EIP-7002 spec notes that EOA callers always overpay system contract fees.
Proposal
Add an optional EIP-7702 code path that delegates the user's EOA to a
BatchDelegatorcontract, enabling all validator requests to be submitted in a single type0x04transaction.Key benefits:
BatchDelegatorcanstaticcallthe fee getter to pay exact amountsScope
BatchDelegatorcontractexecuteBatch(), deployed per network. Requires audit.0x04transactions withauthorizationListand ABI-encoded batch calldataWalletSignervia ethers.jsauthorize().LedgerSignersupported at hardware level but subject to Ledger's delegate contract whitelist.--eip7702flag or auto-detection of existing delegationConstraints
BatchDelegatorneeds a security audit before mainnet useApproach
WalletSigneron hoodiReferences
Additional information
No response