ERC-7771: Router Proxy

Abstract


The Router Proxy introduces a streamlined approach to managing multiple implementations behind a single proxy, similar to the Diamond Proxy Standard (ERC-2535). Unlike the latter, this method hardcodes module addresses within the proxy’s implementation contract, offering a simpler, more explicit, and gas-efficient mechanism. This design reduces complexity, making it easier to reason about and improving overall efficiency while retaining the flexibility to manage multiple modules.

ERC Pull Request


Hey there.

I really like the idea here about having a proxy router with hardcoded module/facet addresses.

I would like to make clear that this can and has been done using EIP-2535 Diamonds. An EIP-2535 Diamonds implementation can have and use hardcoded module/facet addresses and selectors. The Pendle project is using such a static diamond implementation here: https://etherscan.io/address/0x0000000001e4ef00d069e71d6ba041b0a16f7ea0#code

The EIP-2535 Diamonds standard is really flexible and allows a variety of different implementations. I think it would be useful to have a new standard that standardizes static diamond implementations – a standard that implements EIP-2535 that uses hardcoded facet addresses and selectors. An article that covers the minimum things required to comply with the EIP-2535 Diamonds standard is here: Compliance with EIP-2535 Diamonds Standard