Following the July audit, I am very happy to announce that today we have deployed the new suite of ENS contracts to the Goerli test network. This is an important step for the ENS protocol to finally release the new suite of contracts to mainnet, which powers the next version of our app as well various community projects that are also in the works.
The new contracts that have been deployed are:
- NameWrapper
- New .eth Registrar Controller
- New Reverse Registrar
- New Public Resolver
- Exponential Price Curve Oracle
- StaticMetadataService
Discovery mechanisms
As usual these contracts can be discovered using ENS directly:
- NameWrapper -
ens.resolver(namehash('eth')).interfaceImplementer('0x019a38fe')
- New .eth Registrar Controller -
ens.resolver(namehash('eth')).interfaceImplementer('0x612e8c09')
- New Reverse Registrar -
ens.owner(namehash('addr.reverse'))
- New Public Resolver -
ens.resolver(namehash('resolver.ens.eth')).addr()
- Exponential Price Curve Oracle -
ethController.prices()
- StaticMetadataService -
nameWrapper.metadataService()
Addresses Sepolia 30/6/2023
- NameWrapper - 0x0635513f179D50A207757E05759CbD106d7dFcE8
- New .eth Registrar Controller - 0xFED6a969AaA60E4961FCD3EBF1A2e8913ac65B72
- Reverse Registrar - 0xA0a1AbcDAe1a2a4A2EF8e9113Ff0e02DD81DC0C6
- New Public Resolver - 0x8FADE66B79cC9f707aB26799354482EB93a5B7dD
- Exponential Price Curve Oracle - 0x6810dbce73c67506f785a225f818b30d8f209aab
Addresses Mainnet 29/3/2023
- NameWrapper - 0xd4416b13d2b3a9abae7acd5d6c2bbdbe25686401
- New .eth Registrar Controller - 0x253553366da8546fc250f225fe3d25d0c782303b
- New Reverse Registrar - 0xa58e81fe9b61b5c3fe2afd33cf304c454abfc7cb
- New Public Resolver - 0x231b0ee14048e9dccd1d247744d114a4eb5e8e63
- Exponential Price Curve Oracle - 0x7542565191d074ce84fbfa92cae13acb84788ca9
Addresses Goerli 14/3/2023
- NameWrapper - 0x114D4603199df73e7D157787f8778E21fCd13066
- New .eth Registrar Controller - 0xCc5e7dB10E65EED1BBD105359e7268aa660f6734
- New Reverse Registrar - 0x4f7A657451358a22dc397d5eE7981FfC526cd856
- New Public Resolver - 0xd7a4F6473f32aC2Af804B3686AE8F1932bC35750
- Exponential Price Curve Oracle - 0xE4354bCf22e3C6a6496C31901399D46FC4Ac6a61
- Static Metadata Service - 0x269eb6AeDeEa030B96354Bc73f0A09eae3546e23
Addresses Goerli 3/3/2023
NameWrapper - 0x23d86f0bf4900978B191378B134519371Da52f75New .eth Registrar Controller - 0x5642D2E447567672723512a0D7b2E85994BB2FEbNew Reverse Registrar - 0x4f7A657451358a22dc397d5eE7981FfC526cd856New Public Resolver - 0x342cf18D3e41DE491aa1a3067574C849AdA6a2AdExponential Price Curve Oracle - 0xE4354bCf22e3C6a6496C31901399D46FC4Ac6a61Static Metadata Service - 0x269eb6AeDeEa030B96354Bc73f0A09eae3546e23
Addresses Goerli 31/1/2023
NameWrapper - 0x060f1546642E67c485D56248201feA2f9AB1803CNew .eth Registrar Controller - 0x603A4F2e7615d0099244496883062bA2eFBbeaf0New Reverse Registrar - 0x9a879320A9F7ad2BBb02063d67baF5551D6BD8B0New Public Resolver - 0x19c2d5D0f035563344dBB7bE5fD09c8dad62b001Exponential Price Curve Oracle - 0x446C8f1ce718D100a2018B887416cDd4A213E95cStatic Metadata Service - 0x3848564e209f23351EDD1997c95468e819f47dCa
Addresses Goerli 13/1/2023
NameWrapper - 0xEe1F756aCde7E81B2D8cC6aB3c8A1E2cE6db0F39New .eth Registrar Controller - 0xb7A1f9e633fdeaAa2ec44bE00a61a7Db9a733D70New Reverse Registrar - 0x9a879320A9F7ad2BBb02063d67baF5551D6BD8B0New Public Resolver - 0x2800Ec5BAB9CE9226d19E0ad5BC607e3cfC4347EExponential Price Curve Oracle - 0x446C8f1ce718D100a2018B887416cDd4A213E95cStatic Metadata Service - 0x3848564e209f23351EDD1997c95468e819f47dCa
Addresses Goerli 9/2022
NameWrapper - 0x582224b8d4534F4749EFA4f22eF7241E0C56D4B8New .eth Registrar Controller - 0x9C51161bA2FB02Cc0a403332B607117685f34831New Reverse Registrar - 0xD5610A08E370051a01fdfe4bB3ddf5270af1aA48New Public Resolver - 0xE264d5bb84bA3b8061ADC38D3D76e6674aB91852Exponential Price Curve Oracle - 0x446C8f1ce718D100a2018B887416cDd4A213E95cStatic Metadata Service - 0x9DAfDe161D690d9e18f8021c392B0dBCBf0Cf8cB
Addresses Ropsten
NameWrapper - 0xF82155e2a43Be0871821E9654Fc8Ae894FB8307CNew .eth Registrar Controller - 0xa5627AB7Ae47063B533622C34FEBDb52d3281dF8New Reverse Registrar - 0x806246b52f8cB61655d3038c58D2f63Aa55d4edENew Public Resolver - 0x13F0659Ee6bb7484C884FEeFb7F75C93951ef837Exponential Price Curve Oracle - 0x0e765d28FABf9E219770CAb07D64967451026bD7Static Metadata Service - 0x3bAa5F3ea7bFCC8948c4140f233d72c11eBF0bdB
Ropsten is no longer being updated since it has been deprecated by Infura, please use Goerli.
Developer Details
We are no longer using a different reverse resolver for setting your reverse name, it now uses the PublicResolver. The .eth controller will now be a controller of the NameWrapper and not a controller of the Base Registrar contract (.eth owner). This is because all registrations will now be wrapped by default and the registration functions on the .eth controller go through the Wrapper, which then call the Base Registrar.
The new controller now lets you set additional records in the register function, meaning you can register and create your records at the same time. It uses resolver.multicall underneath, so you can encode the transactions in the same way. It also optionally allows you to set your reverse record
On the discovery mechanisms, we have added the NameWrapper interface to the .eth resolver and the address can be discovered by calling interfaceImplementer()
with the wrapper id 0x019a38fe
.
The new contracts have not been hooked up to our V2 app (app.ens.domains), so you will largely be unable to interact with these contracts using our UI. We will announce when the V3 app has been deployed on testnet, and once that happens we welcome the community to help us thoroughly test the new app and contracts
Next steps
There are a few things that need to be done before we can deploy these to mainnet, a thorough testing on testnet, internally as well as in the community. Once we are happy with that, we will be in a position to deploy the contracts to mainnet and activate them via a DAO wide vote.
Executable proposal has been posted: [Draft] [Executable] Activate new .eth controller and new Reverse Registrar