ENS Logo

[EP1.5] [Executable] Change to Exponential Premium Price Oracle

Note: This was previously numbered EP9.


In the past we deployed the Linear Premium Oracle as a way to create a distribution mechanism that did not involve gas auctions and bots. This was largely successful and those who wanted a recently expired name could participate in the dutch auction and not have to compete on gas or with bots. Recently with the popularity of ENS increasing, the demand and the price people are willing to pay for these premium names has increased. In response to this TNL quickly drafted a short-term solution to raise the premium to 100k, which we felt was the upper limit for what a linear price decay curve could handle.

There are a couple reasons for this:

  1. On a linear curve, if the price is too high the price decreases too fast and the UX is bad for a user who wants an exact price (especially at the lower end of the curve)
  2. If you extend the time period out, the premium lasts for too long. E.g. If we made it 1 million USD and we wanted a similar price decay speed as 100k, we would need to run it for 10 months, which seems unreasonable.

We can see from the data below, even with the new 100k premium, we have already had a 5-7 domains go for maximum, or close to maximum premium. If a domain sells for the actual premium, it means the dutch auction is not doing its job and so we need to deploy a long-term solution for dealing with premium pricing.

RowLabelEvent TimestampPremium
1bbc2022-01-30 17:46:03 UTC100230.75321837279
2mets2022-02-04 17:16:22 UTC100082.49847319399
3fbi2022-02-05 06:02:31 UTC99894.00632472485
4fly2022-02-04 18:49:00 UTC99747.22640247621
5ups2022-02-05 07:46:24 UTC98822.14747808539
6dog2022-02-06 16:19:05 UTC92950.09208752771
7ubs2022-02-01 15:31:35 UTC89633.15081063367
8ubi2022-02-19 17:06:17 UTC72161.56328771653
9punks2022-02-16 00:15:44 UTC59153.166146336
10omg2022-02-24 16:05:57 UTC33214.42499419019

The long-term solution would be to change the actual curve to something that could start at a very high price, would decrease rapidly at the beginning and slow down at the end so you have better UX for users. And therefore this proposal is to deploy an exponential price curve, that does exactly this. This would allow fairer bidding on both high and low priced names.

Contract Code



Call setPriceOracle on controller.ens.eth, passing in the address of the deployed ExponentialPremiumPriceOracle (TBD).

๐Ÿ‘ท Executable
Last Modified
2 months ago