[TEMP CHECK] ENS invalid name refund proposal

If the names expire will we still be entitled to the refund?

Also, is that the same for testnet names?

If the name expired before 18th June (the date the normalisation proposal passed), then no refund.
If the name expired after 18th June, then it should be in the refund list

No. Test names are for testing purpose and could change depending on the test upgrades so the ownership is not guaranteed.

1 Like

Yeah cool, sounds legit.

It says I’m eligible for 10 names refunded, A) 0.055 and B) 0.056

These are what I registered:

NEWYORK (Circled Letters)
BLOCKCHAIN (Circled Letters)

Im wondering, if I didn’t sell a name and just gifted it to a friend (E.g ‘1‘.eth) am I still eligible for a refund for that name?

Lastly, thank you to all ENS delegates, and Foundational Working Group Stewards. You’re all doing a fantastic job with the DAO.


1 Like

As I said, all the distribution addresses we collected using the date of 18th June. If the name was transferred before the data, your friend will get a refund. If after the date, then you will get the refund.

I suggest checking these 2 files to cross check the refunding address and amount


After today’s metagov meeting, we decided to go with OptionA (total refund amount is 115 ETH). I will coordinate with the steward to aim for the onchain voting at the end of September.

Just to reiterate, this is the canonical list of the refunding addresses.


FYI, none of these refund names contain Unicode 15.1 emoji.

1 Like

I’m pretty certain that these updates have affected some of my emoji Art domains. But not all of them…!

My punks are safe and still valid and working nicely!! :partying_face: And thank god for Legacy ! :joy::heart_eyes:

Just in time to showcase them all at the Beeple Punk event at the end of September.

So keen for it! Can’t wait to bring ENS to the party like nobody has seen before!

If I can suggest … consider using the datafield of the refund transactions to add the word “refund”
this will help avoid tax issues in many places of the world
an alternative smart option is to call the sending contract “ENS_refund_for_invalid_names” in order to clarify the nature of the transactions produced
or consider doing both!

Update (3rd Nov 2023):

After the DAO stewards spotted one negative refund amount in the refund addresses (-0.01669948333 for 0xe5aa8a233b0fe90ff9d68ba93ced601596992533), I re-analysed my queries and found a few errors.
I fixed the problem, reran the query and here are the diffs.

date count sum avg * appears_once > 0.01 ETH diff
27/06/2023 2973 114.00592800017606 0.03834709989915105 6 5
2/11/2023 2970 113.69976766451629 0.03828275005539269 3 5


  • appears_once means that 6 people no longer receive refund while 3 new people now receive refund
  • > 0.01 ETH diff means that 5 people receive more than 0.01 ETH and other 5 less than 0.01 ETH

The new refund address is updated at refund_addresses_021123 - Google Sheets

The Problems

  1. The original query was missing to include ETHRegistrarController4 registration controller which was introduced about the same time I created this query. The negative refund amount was because two renewal transactions(thisandthis made by the controller was not included in some of the query. These missing two transactions resulted in calculating the remaining amount as May-2023 - June-2023 instead of July-2023 - June-2023 for example. After the recalculation this address now receives instead of 0.04748966914 eth instead of -0.01669948333

  2. While fixing issue 1, I also noticed that some of the subsequent queries weren’t filtering event date by 2023-06-18 04:50:00+00 which was the end of the snapshot voting of the Approval of ENS Name Normalization Standard (ENSIP-15). As the result the original query included events happened between 18th June and 27th June when I ran the query.

The Affected addresses

type address old_total new_total diff
only_old 0x563476aa7b6f95c803a1e0115bd0902b4fb54e07 0.008797745527 0 -0.008797745527
only_old 0x41bf836348e4aa14e17d104731a65f84764ea4d8 0.0117206014 0 -0.0117206014
only_old 0xaf738f6c83d7d2c46723b727ce794f9c79cc47e6 0.01255643498 0 -0.01255643498
only_old 0xfb4bb705f6cb453f2f074b7b68a292a2fc2d3ae3 0.01039915335 0 -0.01039915335
only_old 0xca0d40f0363af5ed67585366ea92f679934066df 0.002318379684 0 -0.002318379684
only_old 0x7760200f89dce1def106c7886b07f4f9265fec85 0.007960011394 0 -0.007960011394
only_new 0x1ecd88d5d96efd2cd8a4d2f35bfb67f8ea61a567 0 0.03007973771 0.03007973771
only_new 0x4c4056ae546fc30f34356bf01c886a23241c9908 0 0.002318374726 0.002318374726
only_new 0x3991e3bd4ebaefc64f358a28e9b286fcbe9efad5 0 0.003420080935 0.003420080935
diff_old 0x8bdf6b52959581c0a8f4e99fa71b2225dc691814 0.3168692337 0.1842716597 -0.1325975739
diff_old 0xa5e0ecb5d075e86c3bf5d1b1042e154fee9a4798 0.7676089028 0.4369534242 -0.3306554786
diff_old 0x41bf836348e4aa14e17d104731a65f84764ea4d8 0.0117206014 0 -0.0117206014
diff_old 0xaf738f6c83d7d2c46723b727ce794f9c79cc47e6 0.01255643498 0 -0.01255643498
diff_old 0xfb4bb705f6cb453f2f074b7b68a292a2fc2d3ae3 0.01039915335 0 -0.01039915335
diff_new 0xf01365133118e3b4af61c83b56a7e180a716482a 0.1119770261 0.1602208216 0.04824379547
diff_new 0x72fddd31d88b262706d0e76f9c4efd898fcd418f 0.03826412052 0.05131973866 0.01305561813
diff_new 0xb1e4aa2f8e615493cfe9bcd9b0be1aed86546d12 0.01294040336 0.0364537346 0.02351333124
diff_new 0xe5aa8a233b0fe90ff9d68ba93ced601596992533 -0.01669948333 0.04748966914 0.06418915247
diff_new 0x1ecd88d5d96efd2cd8a4d2f35bfb67f8ea61a567 0 0.03007973771 0.03007973771

The Full Data

I now updated the full data of the previous one (taken 27th June) and the latest one (taken on 11th Nov).

In addition to the refund_address.csv and refund_name.csv, it also includes refund_names_w_events.csv|json which has the full registration/renewal/transfer transaction history.

If you json query tool like jq you can run the following query to see all the transactions related to the specific refund address

cat refund_names_w_events.json | jq '.[0][] | select(.last_owner == "0xe5aa8a233b0fe90ff9d68ba93ced601596992533")| {"time":.event_timestamp.value, event, transaction_hash}'
cat refund_names_w_events.json | jq '.[0][] | select(.last_owner == "0xa5e0ecb5d075e86c3bf5d1b1042e154fee9a4798")| {labelhash,tokenid,"time":.event_timestamp.value, gas_spent, event, last_owner, transaction_hash}'

  "labelhash": "0x5f16aa6db31cf35c0daca314ecbe2ad09d2c7e6b1bc363ea3871c432e0f2e9fb",
  "tokenid": "43009767505211382270326623157405683972581973608649774860485959057366492310011",
  "time": "2022-05-16T17:41:16.000Z",
  "gas_spent": 0.0079375999319523,
  "event": "registered",
  "last_owner": "0xa5e0ecb5d075e86c3bf5d1b1042e154fee9a4798",
  "transactionhash": null
  "labelhash": "0x5f16aa6db31cf35c0daca314ecbe2ad09d2c7e6b1bc363ea3871c432e0f2e9fb",
  "tokenid": "43009767505211382270326623157405683972581973608649774860485959057366492310011",
  "time": "2022-05-16T17:41:16.000Z",
  "gas_spent": 0,
  "event": "transfer",
  "last_owner": "0xa5e0ecb5d075e86c3bf5d1b1042e154fee9a4798",
  "transactionhash": null
1 Like

Love your work ma main man!

When can we see this proposal of refunds be sought through? Thanks.


Do you still not want to repay after two years?


This all sounds very good and voting has gone well through Tally.

NEWS: we have new anti-wash-trading rules in italy, if you bought something like an nft using eth and later you get refunded so you must pay taxes on the difference of value of eth between the day you bought and the day of the refund.
As a result if eth pumps, everyone in italy will end up paying more taxes than the original cost of buying those .eth names declared invalid.
This said, some people is already underwater for this.
Personally I have only one 1 name to be refunded (but it is a little fortune), therefore I am not a squatter and I think I have the right to urge the community to start the refund procedure as soon as possible.
Some people who bought MANY names (obvious squatters, but the system was allowing it so there is nothing to blame them) will end up ruined economically.


These refunds have been sent.

Six transactions containing a total of 2,963 operations.

We used this sheet from @matoken.eth to source the transactions :point_up_2: (Thank you Makoto!)

Here are the 6 hashes:

The following 7 addresses could not be included in the bulk send due to technical complications. We’ll be addressing these with individual remediations (feel free to contact me if you’re one of these 7):

Address Amount
0x98e6a64be8cc47531190c35256c7e3b6f3576949 0.002881603492
0x2a68e5bc6bb3ce0aaa24e5289d9190fe8f6ff5f4 0.03633295496
0x5213c258162baee45ac60ba1b18d1ef675df9f90 0.006198698175
0x741abeaa147948968f2541d660c0048a5be7292c 0.005616167812
0x2a59d61d2e8d58ce5ad76b2a2539c38efe737cb7 0.01009020747
0xd4416b13d2b3a9abae7acd5d6c2bbdbe25686401 0.01353371824
0x05a8aa0ed1e1bc598c23b415f67cd774b530546c 0.002588553187

(A big thank you to @gregskril for his help on this process as well)


There’s also some additional discussion of the refund methodology we chose to use this in this thread:

1 Like

According to Google Sheet, I should have received 0.055 Ethereum, but I only received 0.03 Ethereum.

@keywan_1901 - What’s the wallet address you’re inquiring about?


That wallet received exactly 0.03346028 Eth.
Exactly as the thread and calculations above predicted.

You can confirm by checking the sheet linked above. That wallet is on line 1513.

If you’re unclear on the reasoning or the execution, these two threads contain all the information about the refund discussion, strategy, and the algorithm used to calculate the refund amounts.