Skip to content

Add EIP-7702 Batch Delegation Support #49

Description

@TobiWo

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 eliminationBatchDelegator 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

  1. PoC for WalletSigner on hoodi
  2. Validate gas savings and UX empirically
  3. Investigate Ledger whitelist process for custom delegate contracts in parallel
  4. Existing EOA path remains the default fallback

References

Additional information

No response

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions