Introducing: ERC-7579

Standardizing a minimal baseline for modular smart account interoperability

Kurt Larsen
Rhinestone

--

Smart accounts are gaining adoption with many new implementations being built in a modular fashion. These modular smart accounts (hereafter just smart accounts) move functionality to external contracts called modules to increase the speed of feature development, future-proof themselves, and allow for customization by developers and users. However, these smart accounts are built in vastly different ways, creating vendor lock-in and ecosystem fragmentation.

In collaboration with ZeroDev, Biconomy and OKX and with valuable feedback from many individuals deeply involved in the space, we propose ERC-7579, which outlines the minimally required interfaces and behavior for modular smart accounts and modules to ensure interoperability across different account implementations. The goal of ERC-7579 is to achieve smart account interoperability with minimal impact on the implementation logic of the account so that smart account vendors can innovate and compete, while also allowing for a flourishing, multi-account-compatible module ecosystem.

The need for standardization

There are several reasons why standardizing smart accounts is extremely beneficial to the ecosystem. The most important of these are:

  • Interoperability for modules to be used across different smart accounts
  • Interoperability for smart accounts to be used across different wallet applications and SDKs
  • Preventing vendor lock-in for smart account users and application developers

The current landscape

Currently there are 6 different modular accounts being used in production, with more being built. However, these accounts follow quite different architectures and interfaces and have very different requirements for how modules are used. This means that currently, there is no practical way of building modules for all accounts that does not involve a significant technical lift, such as by extending accounts with additional “manager” components.

To solve this problem, ERC-6900 was released in April 2023 to standardize smart account and module interfaces. While the authors of ERC-7579 support the objective of ERC-6900 to standardize modular accounts, we believe it goes beyond the minimum requirements for modular smart account interoperability. Specifically, ERC-6900 wraps significant complexity into the account standard, adding opinionated security measures. However, this complexity and large scope with specific design choices inhibits account vendor flexibility and innovation.

ERC-7579, on the other hand, is minimally prescriptive to allow account and module interoperability without compromising innovation and experimentation for account and module developers. This approach allows developers to make their own trade-offs around complexity and security and for accounts to compete on various angles such as cost, security and complexity to build on top of.

Nonetheless, we think that many components of ERC-6900 should not go to waste, such as the permissions system through a manifest. These concepts will continue to push the ecosystem forward and we believe standardization around them can happen in the form of an extension to ERC-7579 (see below).

Our approach

While smart accounts have developed rapidly through the course of this year, we do not think that they have reached their final state yet and probably aren’t even close. The need to allow builders to keep innovating on smart account architectures is fundamentally at odds with the idea of standardizing accounts for the much-needed interoperability. Therefore, we believe that a standard should be as un-opinionated and minimal as possible, standardizing just enough to alleviate some of the problems we are faced with today but allowing the space to be pushed forward by smart account innovators.

As a result, our approach to this proposal has been twofold:

  1. Take learnings from existing smart accounts that have been used in production and from building interoperability layers between them
  2. Ensure that the interfaces are as minimal and open to alternative architectures as possible

Extensions

As hinted above, it is very likely that standardization will need to continue to happen for smart accounts and modules. This standardization might also happen for a subset of smart accounts or modules, such as, for example, further standardizing security safeguards around module usage. To encompass this, we suggest using a rough extension schema that allows for future ERCs to extend the behavior of ERC-7579. There are already some examples of this for other ERCs, such as ERC-2612. This schema is very loose and ultimately it is up to the community and individual builders to decide whether or how to adhere to future standards but our proposal is the following:

Future standards that are meant to be extensions to ERC-7579 should be launched and labeled as such. For example, an ERC might use the title “[FEATURE] Extension for ERC-7579”. Further, future standards should adhere to the incremental module type IDs introduced in this standard, by using the next unused module type ID. While it could make sense to define this extension system more rigorously in the future, we believe that it is anyways up to the community to accept or reject future standardizations, so defining rigid rules is likely not needed.

In an attempt to provide an example of such an extension and how it can be structured, we have modified the title and wording of the previously released ERC-7484 to now be an extension to ERC-7579.

Conclusion

After careful consideration and feedback from the community, we have decided to launch ERC-7579, a minimal standard for smart accounts that allows account builders to continue to innovate on many fronts, while also making it easier to build on top of and across these accounts. We are very excited for the further development that this unlocks for the modular smart account ecosystem and are looking forward to further input from the community. To join the discussion and contribute, check out the Ethereum Magicians Thread and join the Modular Contract Account Standards telegram group.

We would also like to, in no particular order, thank Filipp, Taek, Vectorized, Greg, Felix, Eric, Elim, Sachin, Ankur, Ross, Kristof, Jayden, Wilson and the rest of the OKX team for their support and feedback.

--

--