Skip to main content

Bundler3

Structure

Bundler3 is a call dispatcher that enables atomic execution of arbitrary calls with enhanced features for authorization management and callback handling.

bundlers3 plot
  1. The core Bundler3 contract implements multicall(Call[] calldata bundle), where each call is defined by:

    • to: Target address
    • data: Calldata
    • value: Native currency amount
    • skipRevert: Flag to skip reverting if this particular call fails
    • callbackHash: Specifies the hash used for controlling reentrancy callbacks
  2. Adapters all inherit from CoreAdapter, which provides access to the initiator (the original caller) via transient storage. This mechanism allows adapters to enforce strict permission checks (e.g. only acting on behalf of the initiator).

  3. Chain-specific adapters, such as EthereumGeneralAdapter1, extend the base GeneralAdapter1 to support network-specific features (e.g. stETH on Ethereum).

  4. Specialized adapters target specific integrations:

    • ParaswapAdapter for DEX aggregation (buy/sell/swaps)
    • Migration adapters for moving user positions between protocols (Aave, Compound, Morpho, etc.)