[EP3.5] [Executable] Activate new .eth Controller and Reverse Registrar

[EP3.5] [Executable] Activate new .eth Controller and Reverse Registrar

Status Executed
Discussion Thread Discuss
Votes Onchain, passed
Authors Jeff Lau, Nick Johnson


With the new Name Wrapper, we will add a new .eth controller that allows registering wrapped names directly as well as registering with multiple records and adding a reverse record in 1 transaction. This will reduce the transactions required from 4 to 2 (for adding records + reverse). This will be added as a controller to the NameWrapper, and the NameWrapper will be added as the new controller of the existing .eth Base Registrar.

We will also replace the current reverse registrar with a new reverse registrar which allows the new controller to set the reverse on registration, as well as adds support for the owner of contract to retrospectively claim their reverse node.


New instances of the Name Wrapper, Reverse Registrar, and .eth registrar controller have been deployed to mainnet at these addresses:

  • NameWrapper: 0xD4416b13d2b3a9aBae7AcD5D6C2BbDBE25686401
  • ReverseRegistrar: 0xa58E81fe9b61B5c3fE2AFD33CF304c454AbFc7Cb
  • ETHRegistrarController: 0x253553366Da8546fC250F225fe3d25d0C782303b
  • PublicResolver: 0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63

They have been configured, and ownership has been transferred to the DAO.The new Public Resolver is set as the default resolver on the reverse registrar.

This executable proposal will execute the following calls to complete the contract upgrades:

  1. Call registrar.addController(newNameWrapperAddress)
  2. Call ens.setSubnodeOwner(namehash('reverse'), labelhash('addr'), newReverseRegistrarAddress)
  3. Call setInterface on the resolver for .eth with the interface IDs and contract addresses of the new .eth registrar controller and namewrapper. This is used as part of the discovery mechanism by the ENS manager app and others in order to locate the new contracts.


Address Value Function Argument Value
0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85 addController controller 0xD4416b13d2b3a9aBae7AcD5D6C2BbDBE25686401
0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e setSubnodeOwner node 0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34
labelhash 0xe5e14487b78f85faa6e1808e89246cf57dd34831548ff2e6097380d98db2504a
owner 0xa58E81fe9b61B5c3fE2AFD33CF304c454AbFc7Cb
0x30200e0cb040f38e474e53ef437c95a1be723b2b setInterface node 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae
interfaceId 0x019a38fe
implementer 0xD4416b13d2b3a9aBae7AcD5D6C2BbDBE25686401
0x30200e0cb040f38e474e53ef437c95a1be723b2b setInterface node 0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae
interfaceId 0x612e8c09
implementer 0x253553366Da8546fC250F225fe3d25d0C782303b

EP 3.5 passed and will be executed after a 2-day timelock.


This has now been executed.