Learn

Motivation and design behind the ERC-6900 standard.

The standard

ERC-6900 seeks to foster a growing ecosystem of both smart account and plugin developers by standardizing basic functions and interfaces. At a high level, it does this by standardizing how accounts and plugins interact with each other, as well as the pre-installation requirements for plugins.

More specifically, the standard focuses on two key goals:

  • Provide standards for designing plugins for smart contract accounts.

  • Provide standards for how compliant accounts should interact with plugins.

To learn more about the standard and its goals, read this blog post.

Design goals

ERC-6900 is designed to enable developers across the ecosystem to build interoperable and secure smart account components. It is built and continues to be developed around a clear set of goals:

  • Standardize nomenclature, terms, definitions, and interfaces

  • Compatibility with but no dependence on ERC-4337

  • Maximize flexibility for dApp developers to become plugin developers while providing constraints to minimize security risks (optimize for extensibility and security)

  • Eliminate plugin developer lock in into specific account implementations

  • Reduce fragmented development efforts that would be unique to particular implementations or ecosystems

  • Minimize complexity and ability to land in undefined account states

  • Be as non-prescriptive as possible in the functionality enabled by the standard

Read more about the standard's architecture at Ethereum Magicians.

Standardizing plugins

Plugin designers following the standard can work with three standardized components:

  • Validation functions ensure the validity of external calls to the smart account.

  • Execution functions are smart contracts that specify the execution logic for functions within a plugin.

  • Hooks specify more fine-grained actions and validations that can be designed to occur pre- or post-validation, and pre- or post-execution.

Standardizing interfaces

The standard also builds on earlier work by the Android developer community to standardize the interface between smart accounts and plugins. Each compliant plugin will incorporate a manifest that establishes various functions and hooks that need to be added to the smart account on installation. It will also specify aspects of the plugin (metadata, dependencies and permissions) that are necessary to constrain the plugin’s ability to act on the smart account.

Last updated