ERC-8420: AA-Compatible Solver

Abstract

This ERC proposes a general-purpose Solver that coordinates the execution of User Intents while remaining fully backward-compatible with existing smart wallets.

Users submit UserEnvelopeTx objects containing envelopeTx, which carries the wallet’s signed transaction data. Wallets are free to construct envelopeTx according to their existing signing schemes and the transaction-construction policies defined by this ERC. These policies do not require changes to wallet interfaces or signing mechanisms; they only specify how transactions should be constructed and signed to participate in the Solver flow.

The design draws inspiration from related Intent standards, including ERC-7521. ERC-7521 introduces a more fundamental change to wallet architecture, which may add complexity to wallet setup, integration, and upgrades. In contrast, this ERC introduces a shared Solver contract that wallets can independently choose to trust or not, without requiring existing wallets to be upgraded or replaced.

Both approaches offer distinct advantages for Intent adoption. ERC-7521 enables more comprehensive and general-purpose Intent functionality at the wallet level, while this ERC prioritizes deployment simplicity and compatibility with existing infrastructure, potentially enabling faster and broader adoption of Intent-based execution.

Motivation

Intent-based execution commonly separates the party that specifies a desired outcome from the party that determines and submits the execution required to achieve that outcome. This separation allows a Resolver to construct a Solution for a User without requiring the User to specify the complete execution path in advance.

Existing smart wallets, however, generally expose their own execution and authorization interfaces. Requiring each wallet to adopt a common Intent-specific interface would introduce additional integration requirements and would limit the ability of existing wallets to participate in new Intent protocols without modification.

This standard addresses this problem by separating the Solver’s coordination logic from the wallet’s existing execution and authorization logic. The Solver does not need to understand the semantics of an Intent or replace the authorization mechanism of a Sender. Instead, it provides a common execution flow in which:

  1. an Executor can obtain context required for execution;
  2. a Sender can validate an execution envelope using its existing authorization and execution mechanism;
  3. the Sender can explicitly acknowledge the exact execution envelope through a Solver callback; and
  4. the Solver can execute the corresponding Intent through the committed Executor.

The UserEnvelopeTx structure preserves the transaction envelope understood by an existing Sender while allowing the Solver to extract the execution envelope executor || intent from it. This allows existing wallet execution paths to be reused without requiring the wallet to understand the higher-level UserIntent abstraction.

The standard also separates the Solver’s coordination role from the semantics of individual Intents. An Executor is responsible for interpreting and executing its Intent, while the Solver only coordinates Context, Validation, and Execution. This allows different Intent protocols and execution mechanisms to use the same Solver flow without requiring the Solver to implement Intent-specific logic.

Github PR