Extend ENS DAO to EIP-4824

Simple summary

The EIP-4824 standard defines common interfaces for DAOs via daoURI, akin to tokenURI for NFTs. This proposal will extend ENS DAO to EIP-4824 by deploying a new registration contract through a contract interaction with the EIP-4824 factory maintained by DAOstar.

Rationale

Adopting the EIP-4824 standard will enrich the on-chain information availability of ENS governance contracts, making it easier for existing and future DAO tools to seamlessly interact with the contracts. A specific example is enabling members to interact with the ENS governance contracts through different front-end interfaces, potentially across multiple chains. Some of the tools that are digesting or committed to digesting this enriched information include Snapshot, Tally, DAOhaus, Etherscan, DeepDAO, and other members of DAOstar One.

Note that adopting the standard does not require any parameter changes to ENS’s existing DAO contracts, nor is there any cost besides gas to call the factory contract. The proposal does not in any way change the way that ENS’s governance works.

DAOstar is a public goods project supported by the Ethereum Foundation, Gnosis, Aragon, Radicle, MolochDAO, MetaCartel Ventures, The Graph, and many other members of DAOstar One.

Governance action

By voting yes, you agree that ENS DAO will (1) upgrade to EIP-4824 by calling the EIP-4824 registration contract located at 0x37df3fc47c1c3a2acafd2dad9c1c00090a8655bc, setting the ENS Governor and the MetaGovernance WG Multisig as its admin and Joshua Tan (thelastjosh.eth) of DAOstar as its manager. This makes selection of future managers easier, not having to go through full ENS governance. No funds will be transferred.

By voting no, nothing happens.

Technical details

To simplify adoption, we will pre-populate endpoints for ENS DAO based on its Snapshot instance via our prebuilt Snapshot integration. These endpoints can be edited at will by the selected manager, by the admins, or by another vote of the DAO itself.

EIP4824 Registration Factory Contract

Each registration contract contains the registration metadata for one single DAO.

Registration Metadata

The registration contract exposes a daoURI view function which returns the URI containing the EIP4824 compliant registration JSON document.

Roles & Access Control

Upon deployment the registration contract is initialized with a DAO address and an optional manager address. The DAO address should be the contract that has the ability to execute arbitrary on chain transactions as instructed by the DAO members through the governance process. For ENS, this is the Governor contract on mainnet at 0x323A76393544d5ecca80cd6ef2A560C6a395b7E3.

Admin Role is granted to the DAO address on initialization. This role allows the address to grant and revoke roles.

Manager Role is granted to the DAO address, and an additional manager address if the value is set in the initialization function. This role allows the address to update the DAO URI but not to modify roles.

During registration, admin roles are granted to the ENS Governor at 0x323A76393544d5ecca80cd6ef2A560C6a395b7E3 and the MetaGovernance WG multi-sig at 0x91c32893216dE3eA0a55ABb9851f581d4503d39b. A manager role is granted to Joshua Tan (thelastjosh.eth) of DAOstar.

Deployment Details

The registration factory contract is deployed to nearly all EVM chains. The mainnet address is 0x37dF3fC47C1c3A2acaFd2Dad9c1C00090a8655Bc. The factory uses a clone proxy pattern with a template registration contract deployed to 0x4aCd31Edc93adB1Cf08FFBCf4097bd61f4A824f6. New clones are deployed to predictable addresses using the message sender and a bytes32 value combined as a salt.

Transaction Details

The proposed transaction involves a bundle of two contract calls.

Call 1 - Summon new registration instance and set the initial DAO URI

Call 2 - Grant admin role of the registration contract to the MetaGov WG multisig.

Simulation Results

Call 1

Given a salt of 0x42 and a msg.sender of the ENS Governor, the registration contract is deployed to 0x5297b9bd83cd50c9e37458f0d964f89a07473900, setting the ENS Governor as an admin and Joshua Tan of DAOstar (thelastjosh.eth) as a manager.

Call 2

The function grantRole is called on the new registration contract with the default admin role 0x0000000000000000000000000000000000000000000000000000000000000000 and the MetaGovernance WG multisig (0x91c32893216dE3eA0a55ABb9851f581d4503d39b) as the role recipient.

Risks

The proposal is extremely low risk. It involves calling a factory that will deploy a new, standalone registration contract on behalf of ENS. The sole purpose of that contract is to publish a daoURI field on behalf of the main ENS DAO contract(s).

Team

DAOstar, the coalition of organizations that authored EIP-4824, is led by Joshua Tan, executive director of Metagov and Isaac Patka, summoner at Moloch, with support from Michael Zargham (CEO of Block Science), Eyal Eithcowich (CEO of DeepDAO), Fabien (CEO of Snapshot) and Ivan Fartunov (head of partnerships at Aragon), Kei Kreutler (co-founder of Gnosis Guild), Auryn Macmillan (co-founder of Gnosis Guild), Primavera De Filippi (researcher at Harvard/CNRS), and many others.

Current EIP-4824 DAO Frameworks

  • Moloch v2 / DAOHaus
  • Moloch v3 / DAOHaus
  • Gnosis Safe
  • DAOstack
  • Aragon V3
  • DAODAO (Cosmos)
  • Superdao
  • KALI
  • And others

“DAO DAO is an enthusiastic supporter of the DAOstar standard, which is making all DAOs more legible and composable regardless of which DAO tools they choose to use!" - Jake Hartnell, Founder of DAODAO

“EIP-4824 is necessary to make DAOs standardized and interoperable.” - Superdao (Twitter)

“Aragon OSX is ready to comply with the [EIP-4824] standard. It will make our DAOs more visible and measurable in blockchain explorers and other tooling. It was also quite easy to become 4824 compliant—the daoURI can be populated without much effort and with the data present in our subgraph database.” - Ivan Fartunov, Head of Ecosystem at Aragon

Conclusion and Next Steps

This proposal will upgrade ENS DAO to EIP-4824 by deploying a new registration contract through a contract interaction with the EIP-4824 factory maintained by DAOstar. It is extremely low risk, benefits ENS DAO by upgrading it to the ecosystem standard, and also positions ENS as a leader on standards for the ecosystem.

As next steps, we will be hosting community discussions in this thread. This will be followed by a GitHub drafting of the proposal, before it goes onto a Snapshot vote. If approved via Snapshot it will go for an on-chain vote.

3 Likes

FYI, we presented a short version of this proposal to last last week’s MetaGovernance WG, and revised it based on feedback. Just wanted to tag @katherine.eth for any additional takes or comments! :pray:

Also, I’m the Josh (thelastjosh.eth, to be specific :smiley:) named as manager above: I’m standards lead at DAOstar and the executive director of Metagov. Also the guy behind this old post in the forums: Understanding and coding the ENS constitution

1 Like

I believe this is incorrect; the contract able to execute arbitrary transactions is the timelock, at wallet.ensdao.eth.

Can you elaborate on what the manager can do, and where the metadata will be hosted?

Thanks for noting, @nick.eth ! In that case, the registration will be summoned by wallet.ensdao.eth (0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7), setting it as an admin and deploying the registration contract to 0xc4f4474f8cd63091d416d04d2b95fa1a0f01a2f1

The manager can only modify the daoURI and not the roles [there are only two actions possible in the registration contract: (1) changing daoURI and (2) changing the role structure].

The main daoURI will be hosted on IPFS, while the underlying membersURI, proposalsURI, and activityLogURI endpoints will be centrally hosted on AWS Lambda. governanceURI will simply point to Welcome to ENS DAO - ENS Documentation. The endpoints can be edited at will by a manager or admin. For reference, here are the subgraphs and endpoints we built for Aave DAO.

Draft proposal: [Draft] [Executable] Extend ENS DAO to EIP 4824