Home
DEFEATED
Ended Jul 16 at 7:06 PM UTC

[Executable] Enable L2 Reverse Registrars and new .eth registrar controller

By
Votes
256.43Kfor
1.51Magainst
10.79Kabstain
26.72%Quorum
Skip to Votes

Abstract

This proposal enables five chain-specific reverse resolvers for L2 EVM networks, and one default reverse resolver as a fallback mechanism. The five chains are Arbitrum, Base, Linea, OP Mainnet and Scroll.

This proposal also enables a new .eth registrar controller and sets the reverse record of some currently un-named ENS contracts.

Motivation

The current implementation of reverse resolution is limited to Ethereum Mainnet and assumes that every entity (a generic smart contract or user account) has the same address across every EVM chain. This has been falling out of line with reality given the rise in smart contract accounts, indicating that reverse resolution should be resolved via a namespace for each chain, rather than a single reverse namespace for the Ethereum ecosystem at large.

This functionality defined formally in ENSIP-19, combined with ENSIP-11, enables “L2 Primary Names,” meaning developers can build end-to-end ENS experiences without forcing their users to transact on Ethereum Mainnet.

To support optionally setting the default reverse record at registration time, a new .eth registrar controller must also be enabled. Since new controllers have significant overhead, we are also taking advantage of this opportunity to add a referrer field for registrations and renewals. This field is emitted unchanged from the registration and renewal events and allows clients to convey information about the source of a registration or renewal for potential DAO-based referral reward schemes (not defined in this proposal).

Specification

Description

Batch transaction for ENS DAO execution

Transactions Summary

This proposal contains 16 transaction(s) to be executed by the ENS DAO Timelock.

#ContractFunctionDescription
1registry.ens.ethsetResolverCall setResolver on registry.ens.eth
2registry.ens.ethsetSubnodeRecordSet Arbitrum reverse namespace
3registry.ens.ethsetSubnodeRecordSet Base reverse namespace
4registry.ens.ethsetSubnodeRecordSet Linea reverse namespace
5registry.ens.ethsetSubnodeRecordSet Optimism reverse namespace
6registry.ens.ethsetSubnodeRecordSet Scroll reverse namespace
7ETH RegistraraddControllerAuthorise new controller on registrar
8Reverse RegistrarsetControllerAuthorise new controller on reverse registrar
9Default Reverse RegistrarsetControllerAuthorise new controller on new default reverse registrar
10.eth ResolversetInterfaceSet new controller interface to new controller on .eth resolver
11Reverse RegistrarsetDefaultResolverSet default resolver to new public resolver on reverse registrar
12Reverse RegistrarsetNameForAddrSet primary name for DNSSEC contract
13Reverse RegistrarsetNameForAddrSet primary name for registrar
14Reverse RegistrarsetNameForAddrSet primary name for root
15Reverse RegistrarsetNameForAddrSet primary name for new controller
16Reverse RegistrarsetNameForAddrSet primary name for default reverse registrar

Detailed Transaction Information

Transaction 1: Call setResolver on registry.ens.eth

Target: registry.ens.eth Address: 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e Function: setResolver

Parameters:

  • bytes32 node: namehash("reverse")0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34
  • address resolver: 0xA7d635c8de9a58a228AA69353a1699C7Cc240DCF

Encoded Calldata:

0x1896f70aa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34000000000000000000000000a7d635c8de9a58a228aa69353a1699c7cc240dcf

Transaction 2: Set Arbitrum reverse namespace

Target: registry.ens.eth Address: 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e Function: setSubnodeRecord

Parameters:

  • bytes32 node: namehash("reverse")0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34
  • bytes32 label: labelhash("8000a4b1")0x7d8e29b968b7788e83efa746345c315e0cf10df6950259a7cb05ce0149b8b6e3
  • address owner: wallet.ensdao.eth0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7
  • address resolver: 0x4b9572C03AAa8b0Efa4B4b0F0cc0f0992bEDB898
  • uint64 ttl: 0

Encoded Calldata:

0x5ef2c7f0a097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34a7f8a095a00b663580c29f964c4bfc4ce8f41776d9ea5b70e2e08e69327a77bc000000000000000000000000fe89cc7abb2c4183683ab71653c4cdc9b02d44b70000000000000000000000004b9572c03aaa8b0efa4b4b0f0cc0f0992bedb8980000000000000000000000000000000000000000000000000000000000000000

Transaction 3: Set Base reverse namespace

Target: registry.ens.eth Address: 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e Function: setSubnodeRecord

Parameters:

  • bytes32 node: namehash("reverse")0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34
  • bytes32 label: labelhash("80002105")0x4056cb788b3af93d9486e35f4d0aff6b21a4da32161ef55acba5a78d69dad5b6
  • address owner: wallet.ensdao.eth0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7
  • address resolver: 0xc800DBc8ff9796E58EfBa2d7b35028DdD1997E5e
  • uint64 ttl: 0

Encoded Calldata:

0x5ef2c7f0a097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d3472c29f4186361a46935e4e9c3af71d1cf73cac00186fceb1cd1945ed9ed3dec1000000000000000000000000fe89cc7abb2c4183683ab71653c4cdc9b02d44b7000000000000000000000000c800dbc8ff9796e58efba2d7b35028ddd1997e5e0000000000000000000000000000000000000000000000000000000000000000

Transaction 4: Set Linea reverse namespace

Target: registry.ens.eth Address: 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e Function: setSubnodeRecord

Parameters:

  • bytes32 node: namehash("reverse")0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34
  • bytes32 label: labelhash("8000e708")0x44495acbb270e33daa2b6b957b8713b55ab4a023300855e3adeb370f8bfcd47a
  • address owner: wallet.ensdao.eth0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7
  • address resolver: 0x0Ce08a41bdb10420FB5Cac7Da8CA508EA313aeF8
  • uint64 ttl: 0

Encoded Calldata:

0x5ef2c7f0a097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34f5b2aa07eebc1b04c9923c2e20c5988f7ec95c4150e7fb00a49f74cf73ff795a000000000000000000000000fe89cc7abb2c4183683ab71653c4cdc9b02d44b70000000000000000000000000ce08a41bdb10420fb5cac7da8ca508ea313aef80000000000000000000000000000000000000000000000000000000000000000

Transaction 5: Set Optimism reverse namespace

Target: registry.ens.eth Address: 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e Function: setSubnodeRecord

Parameters:

  • bytes32 node: namehash("reverse")0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34
  • bytes32 label: labelhash("8000000a")0xf66cf533d101dfb2f2352e61965e14aa7e9c4164b3bfc91cbe188645e0f16336
  • address owner: wallet.ensdao.eth0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7
  • address resolver: 0xF9Edb1A21867aC11b023CE34Abad916D29aBF107
  • uint64 ttl: 0

Encoded Calldata:

0x5ef2c7f0a097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d3477f44888a7cd760c9d34db42bba63325958f70077f99de6be6b318dd388d22c2000000000000000000000000fe89cc7abb2c4183683ab71653c4cdc9b02d44b7000000000000000000000000f9edb1a21867ac11b023ce34abad916d29abf1070000000000000000000000000000000000000000000000000000000000000000

Transaction 6: Set Scroll reverse namespace

Target: registry.ens.eth Address: 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e Function: setSubnodeRecord

Parameters:

  • bytes32 node: namehash("reverse")0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34
  • bytes32 label: labelhash("80082750")0x2e83a9aa4cc1622acc9e36e8853598634e92fa0eb10aec9b07fc68664b2ad87e
  • address owner: wallet.ensdao.eth0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7
  • address resolver: 0xd38bf7c18c25AC1b4ce2CC077cbC35b2B97f01e7
  • uint64 ttl: 0

Encoded Calldata:

0x5ef2c7f0a097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34fc94dc633606a32d73e903a0aa85e12fbe1cabc6e53ee69c1893547fda6d9691000000000000000000000000fe89cc7abb2c4183683ab71653c4cdc9b02d44b7000000000000000000000000d38bf7c18c25ac1b4ce2cc077cbc35b2b97f01e70000000000000000000000000000000000000000000000000000000000000000

Transaction 7: Authorise new controller on registrar

Target: ETH Registrar Address: 0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85 Function: addController

Parameters:

  • address controller: 0x59E16fcCd424Cc24e280Be16E11Bcd56fb0CE547

Encoded Calldata:

0xa7fc7a0700000000000000000000000059e16fccd424cc24e280be16e11bcd56fb0ce547

Transaction 8: Authorise new controller on reverse registrar

Target: Reverse Registrar Address: 0xa58E81fe9b61B5c3fE2AFD33CF304c454AbFc7Cb Function: setController

Parameters:

  • address controller: 0x59E16fcCd424Cc24e280Be16E11Bcd56fb0CE547
  • bool enabled: true

Encoded Calldata:

0xe0dba60f00000000000000000000000059e16fccd424cc24e280be16e11bcd56fb0ce5470000000000000000000000000000000000000000000000000000000000000001

Transaction 9: Authorise new controller on new default reverse registrar

Target: Default Reverse Registrar Address: 0x283F227c4Bd38ecE252C4Ae7ECE650B0e913f1f9 Function: setController

Parameters:

  • address controller: 0x59E16fcCd424Cc24e280Be16E11Bcd56fb0CE547
  • bool enabled: true

Encoded Calldata:

0xe0dba60f00000000000000000000000059e16fccd424cc24e280be16e11bcd56fb0ce5470000000000000000000000000000000000000000000000000000000000000001

Transaction 10: Set new controller interface to new controller on .eth resolver

Target: .eth Resolver Address: 0x30200E0cb040F38E474E53EF437c95A1bE723b2B Function: setInterface

Parameters:

  • bytes32 node: namehash("eth")0x58665280491fc90c59d3e71704f32f95343423627fb87cf300bb02544c671cdb
  • bytes4 interfaceID: 0xe4f37f79
  • address implementer: 0x59E16fcCd424Cc24e280Be16E11Bcd56fb0CE547

Encoded Calldata:

0xe59d895d93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4aee4f37f790000000000000000000000000000000000000000000000000000000000000000000000000000000059e16fccd424cc24e280be16e11bcd56fb0ce547

Transaction 11: Set default resolver to new public resolver on reverse registrar

Target: Reverse Registrar Address: 0xa58E81fe9b61B5c3fE2AFD33CF304c454AbFc7Cb Function: setDefaultResolver

Parameters:

  • address resolver: 0xF29100983E058B709F3D539b0c765937B804AC15

Encoded Calldata:

0xc66485b2000000000000000000000000f29100983e058b709f3d539b0c765937b804ac15

Transaction 12: Set primary name for DNSSEC contract

Target: Reverse Registrar Address: 0xa58E81fe9b61B5c3fE2AFD33CF304c454AbFc7Cb Function: setNameForAddr

Parameters:

  • address addr: 0x0fc3152971714E5ed7723FAFa650F86A4BaF30C5
  • address owner: wallet.ensdao.eth0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7
  • address resolver: 0xF29100983E058B709F3D539b0c765937B804AC15
  • string name: dnssec.ens.eth

Encoded Calldata:

0x7a806d6b0000000000000000000000000fc3152971714e5ed7723fafa650f86a4baf30c5000000000000000000000000fe89cc7abb2c4183683ab71653c4cdc9b02d44b7000000000000000000000000f29100983e058b709f3d539b0c765937b804ac150000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e646e737365632e656e732e657468000000000000000000000000000000000000

Transaction 13: Set primary name for registrar

Target: Reverse Registrar Address: 0xa58E81fe9b61B5c3fE2AFD33CF304c454AbFc7Cb Function: setNameForAddr

Parameters:

  • address addr: 0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85
  • address owner: wallet.ensdao.eth0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7
  • address resolver: 0xF29100983E058B709F3D539b0c765937B804AC15
  • string name: registrar.ens.eth

Encoded Calldata:

0x7a806d6b00000000000000000000000057f1887a8bf19b14fc0df6fd9b2acc9af147ea85000000000000000000000000fe89cc7abb2c4183683ab71653c4cdc9b02d44b7000000000000000000000000f29100983e058b709f3d539b0c765937b804ac15000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000117265676973747261722e656e732e657468000000000000000000000000000000

Transaction 14: Set primary name for root

Target: Reverse Registrar Address: 0xa58E81fe9b61B5c3fE2AFD33CF304c454AbFc7Cb Function: setNameForAddr

Parameters:

  • address addr: 0xaB528d626EC275E3faD363fF1393A41F581c5897
  • address owner: wallet.ensdao.eth0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7
  • address resolver: 0xF29100983E058B709F3D539b0c765937B804AC15
  • string name: root.ens.eth

Encoded Calldata:

0x7a806d6b000000000000000000000000ab528d626ec275e3fad363ff1393a41f581c5897000000000000000000000000fe89cc7abb2c4183683ab71653c4cdc9b02d44b7000000000000000000000000f29100983e058b709f3d539b0c765937b804ac150000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c726f6f742e656e732e6574680000000000000000000000000000000000000000

Transaction 15: Set primary name for new controller

Target: Reverse Registrar Address: 0xa58E81fe9b61B5c3fE2AFD33CF304c454AbFc7Cb Function: setNameForAddr

Parameters:

  • address addr: 0x59E16fcCd424Cc24e280Be16E11Bcd56fb0CE547
  • address owner: wallet.ensdao.eth0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7
  • address resolver: 0xF29100983E058B709F3D539b0c765937B804AC15
  • string name: controller.ens.eth

Encoded Calldata:

0x7a806d6b00000000000000000000000059e16fccd424cc24e280be16e11bcd56fb0ce547000000000000000000000000fe89cc7abb2c4183683ab71653c4cdc9b02d44b7000000000000000000000000f29100983e058b709f3d539b0c765937b804ac1500000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000012636f6e74726f6c6c65722e656e732e6574680000000000000000000000000000

Transaction 16: Set primary name for default reverse registrar

Target: Reverse Registrar Address: 0xa58E81fe9b61B5c3fE2AFD33CF304c454AbFc7Cb Function: setNameForAddr

Parameters:

  • address addr: 0x283F227c4Bd38ecE252C4Ae7ECE650B0e913f1f9
  • address owner: wallet.ensdao.eth0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7
  • address resolver: 0xF29100983E058B709F3D539b0c765937B804AC15
  • string name: default.reverse.ens.eth

Encoded Calldata:

0x7a806d6b000000000000000000000000283f227c4bd38ece252c4ae7ece650b0e913f1f9000000000000000000000000fe89cc7abb2c4183683ab71653c4cdc9b02d44b7000000000000000000000000f29100983e058b709f3d539b0c765937b804ac150000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001764656661756c742e726576657273652e656e732e657468000000000000000000

Votes
256.43Kfor
1.51Magainst
10.79Kabstain
26.72%Quorum
0x5bfc...83900x5bfc...8390voted against
221.71K
0x89ed...aedc0x89ed...aedcvoted against
189.31K
0xb8c2...67d50xb8c2...67d5voted for
157.28K
0x2b88...7d120x2b88...7d12voted against
122.78K
0xe52c...d7260xe52c...d726voted against
110.75K
0x5346...42cf0x5346...42cfvoted against
106.25K
0x9831...67440x9831...6744voted against
105.18K
0x1d54...63590x1d54...6359voted against
100.12K
0x8393...07800x8393...0780voted against
64.93K
incorrect call data
0xd5d1...cf2c0xd5d1...cf2cvoted for
64.48K
0x54be...7ab60x54be...7ab6voted against
62.64K
Incorrect calldata
0x8787...ea520x8787...ea52voted against
60.3K
0xb352...8b1b0xb352...8b1bvoted against
60K
0xa786...77c60xa786...77c6voted against
56.88K
0xc027...614e0xc027...614evoted against
50K
Call data is incorrect according to Blockful. Procedurally, voting no and waiting for resubmission. https://discuss.ens.domains/t/executable-enable-l2-reverse-registrars-and-new-eth-registrar-controller/20969/10
0x2d7d...b05e0x2d7d...b05evoted against
46.35K
submitted with incorrect calldata - voting against
0xa8b4...28e80xa8b4...28e8voted against
40.51K
0xbce3...776f0xbce3...776fvoted against
35.08K
0x1f3d...05910x1f3d...0591voted against
27.62K
Calldata incorrect: https://discuss.ens.domains/t/executable-enable-l2-reverse-registrars-and-new-eth-registrar-controller/20969/10
0x2e11...75010x2e11...7501voted against
20.4K
0x7ae9...0c0b0x7ae9...0c0babstained
10.78K
0x035e...17d30x035e...17d3voted for
10.73K
0x1d92...26770x1d92...2677voted for
10K
0xf342...33290xf342...3329voted against
9.97K
0x4aa5...df660x4aa5...df66voted against
9.3K
0x4dc9...865a0x4dc9...865avoted for
7.05K
0x3335...81e10x3335...81e1voted against
4.62K
0x60db...8d770x60db...8d77voted for
3.54K
0xac50...c0390xac50...c039voted against
2K
0x179a...92850x179a...9285voted against
1.97K
0x30c7...c7020x30c7...c702voted against
1.8K
0x8da4...81e40x8da4...81e4voted for
1.73K
0x7f77...1caa0x7f77...1caavoted for
1.14K
0x386d...b2e50x386d...b2e5voted against
400
0x7cda...2fed0x7cda...2fedvoted against
342
0x0253...d11a0x0253...d11avoted for
246
0x0579...40480x0579...4048voted against
239
0xcb84...17850xcb84...1785voted for
227
0x80e7...54de0x80e7...54deabstained
4
0x0579...ca090x0579...ca09voted against
2
0x768e...caa40x768e...caa4voted for
1
0x4d9b...c7f50x4d9b...c7f5voted against
1
0x2f2f...f78a0x2f2f...f78avoted for
1
0x3fb1...4c8a0x3fb1...4c8avoted against
1
0x4d32...bbfa0x4d32...bbfaabstained
1
0xbac8...13b30xbac8...13b3voted for
0
I’m voting YES on this proposal as it significantly enhances ENS functionality across L2s by implementing chain-specific reverse resolution as defined in ENSIP-19. This aligns ENS with the growing reality of multi-chain deployments and smart contract accounts that do not share the same address across chains. Enabling L2 primary names will help developers build seamless ENS-integrated dApps without forcing mainnet interactions. I also support the introduction of a new registrar controller with optional reverse record setting and a referrer field, which opens up exciting possibilities for referral-based ecosystem incentives in the future.
0x2dab...ec620x2dab...ec62voted against
0
0x3a1f...21dc0x3a1f...21dcvoted for
0
0xb929...bee20xb929...bee2voted against
0
0x0057...15c80x0057...15c8voted against
0
0x6bbb...b38b0x6bbb...b38bvoted against
0
0xb986...21750xb986...2175voted against
0
0xd999...17db0xd999...17dbvoted for
0
0x2bff...38ae0x2bff...38aevoted for
0
0xefa9...66b10xefa9...66b1voted for
0
0x418e...e0a40x418e...e0a4voted against
0
0x1e7e...65d40x1e7e...65d4voted for
0
0x09cf...91b70x09cf...91b7voted for
0
0xf6dc...963a0xf6dc...963avoted for
0
0x9086...31fc0x9086...31fcvoted for
0
0x995d...34db0x995d...34dbvoted for
0
0xaa93...0b960xaa93...0b96voted against
0
0xd8de...ae410xd8de...ae41voted for
0
0xa8e1...f37c0xa8e1...f37cvoted for
0
0x477e...238b0x477e...238bvoted for
0
0x72b4...86580x72b4...8658voted for
0
0xc3a2...e6ee0xc3a2...e6eevoted for
0
0x475e...e10c0x475e...e10cvoted for
0
0x6446...d1610x6446...d161voted for
0
0x0d36...624f0x0d36...624fvoted for
0
go on
0x1210...57a10x1210...57a1voted for
0
plan to go
0x2aeb...d5590x2aeb...d559voted for
0
okay go ahead
0xffd9...d6230xffd9...d623voted for
0
0x7e1c...6b3e0x7e1c...6b3evoted for
0
okok
0xfff3...a9400xfff3...a940voted for
0
0xc680...42ab0xc680...42abvoted for
0
gooooooooooo
0xbe6c...1ec40xbe6c...1ec4voted for
0
0x5bcd...b98c0x5bcd...b98cvoted for
0
gogo
0x8ee8...a9470x8ee8...a947voted for
0