[EP5] [Executable] Set the temporary premium start price to $100,000

Status: Executed.

Summary

Increases the start price for the temporary premium added when names expire from $2,000 to $100,000.

Abstract

When a name expires, it goes through a 90 day grace period, after which it becomes available for general registration. To prevent it becoming a race to register, a ‘temporary premium’ is attached, starting at $2000 and diminishing to 0 over 28 days. Done properly this results in a dutch auction for the name.

When the premium was set, $2000 was roughly the 98th percentile of all auction prices for the short name auction, and seemed like a reasonable starting price. Today, we’re seeing multiple reports of names, particularly 3 character names, being snapped up by bots the moment they become available at the maximum premium.

Long-term we can improve the mechanism by setting the initial premium based on the base price of the name (so 3 letter names start off more expensive than 5+ letter names), and by introducing a nonlinear pricing curve (for example, having the price diminish by 1% per hour for 28 days). In the short term, however, I’d like to propose setting the initial premium to a much higher value, which we can do with a simple transaction from the DAO account.

Research of current trends shows:

  • 2,798 names have been bought during the temporary premium period so far.
  • Of these, 340 (12%) were purchased the moment they became available.
  • Registrations of names during the temporary premium period have been on the increase since the DAO launched in November.
  • 12 names have been purchased at a premium and flipped on OpenSea; the most valuable of these, punk.eth, went for $85,636.

Accordingly, I propose increasing the temporary premium from its current value of $2,000 to a new value of $100,000. This will ensure that the start price exceeds the secondary market resale value of almost all released domains, and corresponds to a rate of decrease of just under $150/hr, meaning that less valuable domains will still have a multi-hour period during which people can purchase them before the premium expires.

In parallel, work should be initiated on a new nonlinear premium model, so that high initial premiums can be combined with a slow decrease towards 0, allowing both high and low value names to be bid on fairly.

Specification

  1. Deploy a new instance of the LinearPremiumPriceOracle with the initial premium set to 100,000 USD and the period set to 28 days, with other pricing variables identical to the current oracle.
  2. Call setPriceOracle on controller.ens.eth, passing in the address of the new price oracle contract.

Code

TBD

19 Likes

More information including stats and graphs justifying the decision can be found in this thread: Increasing the temporary premium start price

4 Likes

In regards to nonlinear decay, instead of using some complex math, we could potentially just have multiple tiers of linear decay based on dates to facilitate similar effects of larger decreases earlier and finer ones later?

ie:
Day 0-10 is $200/hr
Day 10-20 is $50/hr
Day 20+ is $10/hr until 0

2 Likes

@cory.eth suggested this on the other thread, too, and I agree it’s an option if the math for an exponential is too costly - but I’d rather do it “properly” if we can.

3 Likes

Do you think having multiple tiers like that could create new sniping vectors? Like if everyone knows that Day 0-10 it goes down $200/hr and then it significantly and sharply levels off, do you think multiple people may try to grab the name right at that moment?

4 Likes

Hmm… Don’t think so since it’s just the rate of decay

3 Likes

full support, lets implement asap

2 Likes

Full support, quite useful update.

Whatever linear or non-linear model one may deploy, bots will likely be coded to find the most optimal flipping mechanism. Yes, a non-linear stratified model will surely be better than the linear decay model at present but it won’t be the most efficient one since knowledge of a deterministic model is enough of a giveaway. What you want is a non-linear + randomised model (Metaplex studios have a somewhat relatable version of the ideal randomisation deployed in their ‘Fair Mint Protocol’). When the thread opens on the model issue, I’ll drop by. Hopefully I won’t miss out.

1 Like

Compiling some stuff together here since the EP5 proposal is now live on Snapshot:

There was a lot of discussion about this on Twitter as well, my most recent thoughts on this are here:
https://twitter.com/serenae_fansubs/status/1478853162333261833
https://twitter.com/serenae_fansubs/status/1479181126304518151

Also see this response that I put to a related question earlier today here on the forums:

In short, I didn’t “get it” at first until Nick graciously explained everything. It’s very easy to look at this proposal on the surface and make kneejerk assumptions. Nick also put this thread out on Twitter as an explainer, that I recommend reading:
https://twitter.com/nicksdjohnson/status/1480276674860118016

3 Likes

Hey Nick, this long term plan does not sound that hard to implement unless I misunderstand something. Why not go with this instead of first going through a stop-gap solution of a fixed $100k premium?

1 Like

If you can come up with a well-unit-tested fixed-point implementation of an exponentially decaying premium in the next 5 days, I’ll happily vote for it!

1 Like

I don’t want to rush anything through either, but at the same time, if we are able to improve this proposal with a non-linear decay that would be amazing.

2 Likes

I shared this proposal with the /r/ethfinance group and got some excellent feedback from /u/interweaver that I wanted to pass along here for discussion:

I’m actually not sure I’m in favor of this. On paper it makes sense, because certainly many names are worth more than $2k. However, as we saw with the old Ethereum gas price, this will require people to pay the maximum they are willing and able to pay for the name, rather than slightly more than what the next-highest bidder is willing to pay . I.e., people will be forced to significantly overpay, because they don’t know what that next lowest bidder will be willing to spend. Currently, at least the maximum someone would lose over what they would have needed to spend is $2k, if nobody else happened to want the name but they really wanted it. If multiple parties want it at $2k, then it goes to whoever can get the tx in first, which is somewhat annoying, like an NFT mint, but at least also somewhat fair. If that price is raised to $100k, then people might be losing tens of thousands of dollars in overpayment. Good for ENS’s treasury perhaps, but bad for users.

A better mechanism would be to openly solicit bids prior to the 90 day grace period expiring (perhaps during the whole grace period, or up to a day beforehand, with 10-minute extensions like on OS so you wouldn’t have a sniping issue), and then just hand it to the highest bidder at that time. Yes, implementing this would be more work than just raising a number in a system that already exists. But if they really want to improve the system so that it finds the highest bidder without overbidding, they need something like this.

Edit: Just my opinion of course. A vote in favor would also make sense in several ways. Cast it as you see fit, and thanks as always, Phiz, for canvassing your constituents for thoughts!

Just for the sake of a clean discussion, if you wish to respond to me or the ENS community, it would be fine to respond here, if you wish to exchange ideas with /u/interweaver it might be best to meet him where he is.

1 Like

This isn’t quite accurate - people will estimate what they think the next highest bidder is willing to pay, and bid somewhere between that and their own maximum. But yes, a Dutch auction is not game-theoretically optimal.

This completely ignores MEV; in a situation where names routinely go for more than the maximum premium, people will still have to employ a similar bidding strategy, but with the majority of the cost going to miners via tips.

Increasing the premium now does not preclude a new system later - but given that the problem exists today, it makes sense to at least adjust the parameters on the current system so it can go back to serving its intended purpose, before starting work on a replacement.

I’m personally not of the opinion that an English auction as described is a good idea; aside from adding a lot of complexity to the code, it also imposes significant gas costs on users, who have to submit multiple bid transactions, and lose their money regardless of whether they win the name orn ot.

3 Likes

Thanks for your response Nick. My biggest takeaway from this is that a solution that works now doesn’t preclude a more advanced solution in the future.

4 Likes

Why the 5 days rush?

3 Likes

Just a thought— wouldn’t it be much easier if:

At the time of expiration; ENS Immediately assumes custody of the expired domain.

Immediately at the time of expiration; a 168 hour timer (7 full calendar days) begins allowing the previous registrant to extend the registration time of the expired domain to remain registered in his or her name. Standard registrant prices per length of time to be registered will still apply with a 30% tax of the registering fee to be added in the total to reclaim the domain.

From the start of the 168 hour post expiration time period; for each hour that passes 2% of previous registrant total (registration fee Including the 30% then 2% of that total is added for every hour that passes without receiving payment from previous registrant)

   regFee = baseFee(regTime)
regFee(0.30)
numHours=Total number of hour passed since expiration

totalDue=regFee(0.30)[1+(0.02/numHours)]^(24•7)

totalDue=Amount you must pay to reclaim expired domain if completed within seven days from the expiration.

during this 7 day period:
A sealed auction takes place. Bidders may place bids on the expired domain that the previous registrant so far has failed to re-register, but previous registrant still has the seven days or 168 hours to complete the registration extension of said expired domain. Only the bidder during this time period / sealed auction is able to see their bid amount and their bid only. If the previous owner fails to re-register the expired domain the seven days , bids will become public in the order and time and amount will be displayed in a table that shows clear and concise values and the highest bidder will assume the lead bid and is obligated to purchase the domain by staking the amount into the contract. if no other bids are placed until the auction is complete after 30 days from the day of expiration, the high bidder will assume custody and control over the registered name. If you so happen to change your mind about acquiring the domain that you have the placed your staked bid into the payment contract, you may withdraw your bid with a 25% fee of your max bid plus gas fee. When a bid exceeds the previously placed bid amount, that amount is immediately staked and bound for payment unless a newly placed bid occurs exceeding the max bid. The previous max bid is then released from its staked payment contract back to the bidder. The new max bid becomes the new amount that is staked and bound for the payment contract by the new high bidder.

2 Likes

Implementing this method will provide the community a fair and reasonable opportunity to assume custody and control of expired ENS Domains. For I see this as a snatch and grab bought proof implementation that is inclusive for all community members and or those who are attempting to acquire a ENS domain for the first time. @nick.eth I see what you’re going for and don’t get me wrong I think it’s a good idea but I believe that that will Exclude a huge amount of people from the competition of acquiring these domains. Now if we were to implement what you are Suggesting it would only enable the ENS community to be inclusive to those of which and only to those who know how to program and code bots, this again creating an adverse and unfair advantage.

This right now is pinnacle moment in time where this has got to be done right. This literally could be a make or break the project for ENS domains. I know that if I were trying to include myself into a community and that community already had an unfair at bandage over me trying to be a part of the community then I wouldn’t wanna be a part of that community at all. especially a community that runs on the decisions of delegates and the use of a DAO.

Why would anyone want to take part in a community where my ability to participate fairly was taken away from me before even having the opportunity to be a part of the community.

2 Likes

I’m in favor of this being a temporary solution and an improvement over the current situation.

I have doubts on whether the Dutch auction format will be the right long term solution, but at the same time I see problems in other proposals such as the English auction or sealed bids as well.

I am leaning towards the view that very specific second level ENS names being a nice to have and favoring whatever action that minimizes value ended up being in the hands of bots, squatters and miners.

Maybe broader adaptations of subdomains and / or other TLDs play a bigger part for ENS down the line.

1 Like