Name Wrapper update

I just wanted to give a quick update on the status of the Name Wrapper contract.

@Premm.eth contributed a change that allows for upgrading to a new version of the wrapper. It functions such that the DAO must approve the upgraded version, and then individual users must execute the upgrade; upgrades cannot be forced by either party.

I contributed a change to refactor how subdomain replacement is controlled; instead of a flag on parent domains that prevents overwriting any child domain, there is now a flag on each domain that specifies the parent cannot replace it. This allows people to issue ‘irrevocable’ subdomains without removing their ability to control all subdomains.

We’ve refactored some of the methods that handle subdomain creation/update/replacement, to assume that the subdomain will also be wrapped. This simplifies the API a lot.

Jeff and I have come up with a way to enable fuses to have expirations attached. With the current version of the wrapper, we had the issue that fuses are burned ‘permanently’ but can still be revoked when the second-level domain expires and is reregistered. Integrating expirations for fuses into the wrapper makes this model explicit, and solves several issues we had:

  • Because each name’s fuses now have expiration dates attached, it’s now possible to check if a name is ‘safe’ against interference by parent domain owners by checking just that name’s fuses and expiration.
  • As a result, we no longer need the complex logic for checking a name’s entire hierarchy, and it’s now practical and affordable to check a name’s mutability onchain.
  • Users will now be able to ‘rent’ subdomains by revoking their control over them for a limited period.

The rules around fuses and expiries are as follows:

  1. Every name has fuses and an expiry for those fuses.
  2. If the expiry is in the past, the fuses are cleared (set to their most permissive state)
  3. The expiry can only be increased, not decreased.
  4. The expiry cannot be greater than the parent domain’s expiry.
  5. The expiry on a .eth second level domain cannot be greater than the expiry of the domain itself in the registrar.
  6. Only the owner of the parent domain can set an expiry.

We aim to have the new version of the wrapper available for review some time this week.

24 Likes

Nice–This is A Lot of positive development!

Thank you, @nick.eth, @Premm.eth, Jeff, & Teams.

5 Likes

Great job everyone who is working on this! Really some giga-brain solutions here. Very proud of you all!

To be clear on one thing, the Name Wrapper updates only apply to .eth ENS names correct? These updates do not apply to DNS names imported into ENS right?

Hoping the ENS Youtube channel will go over these changes in some kind of workshop or slideshow with a dev explaining the thinking and possibilities. A part 2 to this one:

ENS Workshop 1: ENS as NFT v2 (aka Name Wrapper)

Though, I’m not sure of what timing is most beneficial. When the new version is review-able? Or, just a workshop after it’s released?

Anyhow, this is all really exciting. Great work everyone. :partying_face:

4 Likes

Very Nice Progress!

3 Likes

DNS names can be wrapped using the wrapper. Second-level domains (Eg, google.com) will be non-transferable, and DNS domains at all levels won’t be able to use fuses.

6 Likes

Will wrapped names be under a new, separate collection on OpenSea?

2 Likes

@aox.eth, Yes.

This is great news! You guys are incredible and the community holds you all in such a high regard. Have you seen / heard some of the things people are building out there ? Some really really “Enspirational” ideas being worked on.
:star_struck::raised_hands:t4::people_hugging::globe_with_meridians:

1 Like