Skip to main content

Delegation Manager

The Delegation Manager is a core component of the Delegation Framework. It validates delegations and triggers executions on behalf of the delegator, ensuring tasks are executed accurately, and securely.

See the delegation flow for a full overview of how delegations are created, validated, and redeemed.

Execution modes

The Delegation Manager processes delegations based on a specified execution mode. When redeeming a delegation using redeemDelegations, you must pass an execution mode for each delegation chain you pass to the method. The Smart Accounts Kit supports the following execution modes, based on ERC-7579:

Execution modeNumber of delegation chains passed to redeemDelegationsProcessing methodDoes user operation continue execution if redemption reverts?
SingleDefaultOneSequentialNo
SingleTryOneSequentialYes
BatchDefaultMultipleInterleavedNo
BatchTryMultipleInterleavedYes

Sequential processing

In Single modes, the Delegation Manager processes delegations sequentially:

  1. For each delegation in the chain, all caveats' before hooks are called.
  2. The single redeemed action is executed.
  3. For each delegation in the chain, all caveats' after hooks are called.

Interleaved processing

In Batch modes, the Delegation Manager processes delegations in an interleaved manner:

  1. For each chain in the batch, and each delegation in the chain, all caveats' before hooks are called.
  2. Each redeemed action is executed.
  3. For each chain in the batch, and each delegation in the chain, all caveats' after hooks are called.

Batch mode allows for powerful use cases, but the Delegation Framework currently does not include any Batch compatible caveat enforcers.