Handling name expiries more gracefully

May 4 marks 1 year since the permanent registrar was deployed, and the point at which all names from the legacy registrar that haven’t yet been renewed start expiring. Right now that’s some 300k domains (see our renewals dashboard here). Those domains have a 90 day grace period, extending the final date they can renew to August 2nd. After that, any that haven’t been renewed will become available for registration by anyone.

We’re doing everything we can to notify as many people as possible about their expiring domains - expect to see more news around this soon - but inevitably many will choose not to renew, or be unaware that they need to, despite our best efforts.

The result is likely to be a bit of a free-for-all on August 2nd, with interested users paying excessive gas prices and clogging the network in order to secure popular names for themselves. This effectively degrades to a first-price auction, but with users paying the value of the name to miners, instead of the ENS system, and clogging up the network into the bargain. We can also expect this to continue to a smaller degree as other popular names that were registered more recently come up for renewal, and bots snap them up for resale on secondary marketplaces.

We believe we have a viable alternative to this, and we’d like the community’s input on whether you think it’s a good idea.

In short, we’d like to introduce dynamic pricing on registrations of names that have been registered before. The price for a new registration would be rent_price + reregistration_premium, where rent_price is the standard rental price for the selected registration duration, computed as it is currently, and reregistration_premium is an additional amount that decays over time. This effectively creates a “Dutch Auction” on reregistration of names, ensuring that at the moment they expire they are priced unaffordably high, with the price diminishing over time until someone considers them worth buying. Names that are not desirable would decay back to costing effectively the same as a new name, over time.

This creates a fair market where anyone can register a name if it’s valuable to them, and eliminates incentives to spam the network or game the system in order to extract a premium on the resale market.

The formula for reregistration_premium is still up in the air; one easy option is an asymptotic function such as base_fee/((now - expiry_time) / interval). With base_fee set to a year’s rent and interval set to a week, this would mean that initially the price is unaffordably high, decaying to the same as a year’s rent after a week (so a 5 character domain, normally $5/year, would cost $10 for the first year), and with the premium halving each week thereafter ($7.50 after 2 weeks, $6.25 after 3, etc).

We’re acutely aware that this is another pricing change, which ENS has seen quite a few of over its 3-year history, and arguably also constitutes another auction, which is why we’re putting it to the community. What do you think of this? Are there alternatives that work better at avoiding the issue we see looming?

1 Like

tl;dr: I support any fees that secure the long-term funding of the ENS foundation and directly go into further development and marketing/mainstream adoption efforts

Hi Nick,

I’ve been following ENS since it was first announced and it’s still so great to see how thoroughly you guys discuss these topics and how you ask the community for their feedback, I truly appreciate that!

From my perspective, these are the (rather obvious?) paradigms of ENS:

  1. Usage and User Experience should be as simple and as convenient as possible.
  2. Number one metric is real world adoption
  3. The ENS foundation needs a continuous income stream (ideally rather independent of the current ETH-dollar price) to ensure long term development of the project and to make sure that competitors don’t overtake

Based on these paradigms, here are some thoughts and questions regarding your proposal:
I fully agree that we should not produce a situation where the network is clogged up. Fees that ENS users pay should go straight into further development of ENS, not to miners.

Is it correct that the proposed dynamic pricing would only apply to domains that weren’t renewed during the grace period and that already expired? So this would have no affect on the general renewal process? Also, should this dynamic pricing hold for all domains that weren’t renewed during the grace period in the future or should it only be applied for the batch in August 2020 (and correspondingly in January/February 2021 when the next batches of domains expire)?

On one hand side, it is true that ENS had some pricing changes in the past and that another one would be not optimal. On the other hand, broad mainstream adoption is not there yet, so my feeling is that most of the current ENS domain users/holders are early supporters who would be ok with another change. So rather than having a look at how often we have to adapt, we have to check if the overall process of registering domains improves. In other words: Historic changes within this ENS process might just not be relevant to completely new users in the future.

When I read you proposal, I have mixed feelings: It looks reasonable and fair, although I have pointed out in the past that there is no such thing as absolute fairness (even with such a dynamic pricing system, you’re again in favor if you have a lot of money while ‘how much a person needs a domain’ is not only defined by how much money that person is willing to spend but also how much research effort that person is willing to invest in when and how certain domains expire).

At the same time, it feels like this dynamic pricing is trying to solve an issue that we thought we already solved by introducing yearly rental fees. It further feels like when we had such a dynamic pricing, in most cases it might not be even necessary and relevant, consider the following the scenarios:

a. You own a very valuable domain that you would like to keep for whatever reason. You would simply not let it expire and to be honest, if you did, it would be just careless and your own fault. With the possibility of renewing a domain for the next 100 years and with the grace period there are enough tools to make sure you don’t lose a domain you really want to keep. Here, the dynamic pricing would not create a real benefit for such a careless domain holder.
b. If you have a domain that you don’t want any longer, you would either sell it before it expires or just let it expire. This means that the dynamic pricing would be relevant for people who want to re-register the domain. While I am writing this, I see that the initial approach (fixed yearly rental fees based on a domains length) was maybe not specific enough: A shorter name is not ‘always’ more valuable than a longer one by default, so this would speak for a dynamic pricing!

However, ‘if’ the secondary markets work efficiently enough, the dynamic pricing might be not so relevant in the long run, because a potential buyer would already buy it on the secondary market. An exception where this efficient market could fail is the case if the seller on the secondary market asks for a very high price that is higher than a potential buyer would pay for during the Dutch auction.

While I personally prefer not to overpay for a certain domain (obviously), a dynamic pricing might be good for paradigm #3, the continuous ENS foundation cashflow. I know of completely different ethereum based projects (e.g. like https://somniumspace.com/) that sell NFTs (schematically similar to the ENS names) and this project even earns a small percentage everytime the owner of the NFT changes on https://opensea.io/ .

I know that the idea of ENS was from the beginning to make sure that squatters don’t take over the system but I always insist on the fact that there is large grey-area between squatters and legit users: Just think you are a shop owner and you have been using an ENS domain for years for your website and suddenly someone offers a large amount of money for that domain and you want eventually to sell it. In the moment we introduced yearly renewal fees and in the moment we introduce dynamic pricing we raise prices on the secondary market ourselves, because the inherent monetary value of that particular domain increases (someone who paid a bunch of money during registration would probably want to have his costs covered in case he intends to sell it on the secondary market).

The reason for this lengthy elaboration is that altough I don’t want to overpay for a domain, I am more than happy if the money I have to pay goes directly into further ENS development and adoption.

Btw. can you share any numbers of how much funds you have left at the moment at what’s your burn rate? Ethereum prices are so low that I’m always a bit concerned that you have enough funds for the future (as you could read from my above text :wink: ).
Right now we don’t have the exact numbers from the yearly renewal fees, but it will be very interesting to see if this income can cover your costs already.

Oh and just a last one: If you decide to introduce such a dynamic pricing, it’s also a question on how you market this. If you write a detailed documentation next to the ‘register’ button, it might scare off new users due to the complexity. But if you just display the current price next to the domain of interest, the user would simply see “buy the domain now for price X” (so it would be a one-click solution for the user) and next to it you could have a small link to a detailed description saying “why is the price decreasing over time?”

@nick.eth: Is there a difference if one renews a domain before May 4 as compared to if one renews it during the grace period? (between May 4 and August 2)

Yes, that’s right.

It’d apply to any expiring domain at any time.

The dynamic pricing isn’t intended to benefit people who let their domains expire; it’s intended to ensure that those domains don’t get snapped up by people who build automated systems and engage in front-running and overpayment for gas.

While it doesn’t hurt to improve cashflow, the main purpose of this is simply to make redistribution of expired names more equitable and less on favour of people with the resources to build automated systems.

We’ll be sharing more about our finances and current situation publicly soon.

Definitely. My thought was that it would be broken into two parts: rental fee and “registration premium” in the UI.

No.

Dont know if this option was considered,
What about implementing a gas limit to cap the gas that can be used for the renewal.
Or maybe an even more restrictive fixed gas price, which if any other gwei is used, the tx will revert.

I know gas prices are dynamic, and that might come into play if we see a spike during that time.
Perhaps it can be updated by the team if there is a need for it.

This was tried a lot back when ICOs were the rage. It doesn’t prevent gaming the system - it encourages people to spam thousands of transactions at the fixed gas price, instead, because the more transactions they have, the higher the chance that theirs is the one that gets mined first.

1 Like

@nick.eth

Has there been an update since this thread on what’s planned for avoiding a high-gas-price-bot-dominated free-for-all on August 2nd? (Sorry if I missed it.)

I’m curious what the “unaffordably high” starting price might be in this proposal, and exactly how it would decay over time. What does now refer to in the formula? Would that make the price change every second? It’s possible that this question is answered already by the pseudocode in the post and I just didn’t understand it.

It seems like a pretty equitable approach from what I understand.

Thanks for the prompt! We’ve settled on a linear price premium that decreases over time for names that are recently expired. The premium starts at $2000 USD the moment the name expires, and decreases linearly to $0 over a period of 28 days.

Based on our stats from the short name auction, $2000 is greater than the price that 99% of domains went for, so it should prevent all but a few names from being sniped via high gas prices the moment they expire. That combined with the 28 day period should give people plenty of time to obtain the name when they believe it’s worthwhile to them.

2 Likes

Thanks for the reply! That sounds like a good approach. Does linearly mean it updates essentially every second, or would the price only update once a day or at a specific interval?

Every second - or rather, every block.

1 Like

Now released! https://medium.com/the-ethereum-name-service/new-decaying-price-premium-for-newly-released-names-72080a650c15

Hello - I brought a number of names back in 2017 using Metamask. I think transferred each name purchased to individual wallet addresses on MEW (both owner and resolver). I did not renew the names so they have today been released (or subject to premium price).

Question - I would like to claim back the original eth that I steaked in 2017…but I am not sure what is meant by “owners wallet”…Is this the MEW wallet that I transferred the name too - or the original metamask wallet that I used to pay for the original steaking fee…