I think that for simplicity we should set impartial rules and adhere to them; err on the side of no false-negatives, rather than no false-positives.
Sorry if this was blocked on me, I forgot about this and was only reminded the other evening in Discord.
I split the names into a few categories: output.json
{
not_ensip1: 203, // not ENSIP-1
wrong_pure_emoji: 208, // just emoji but wrong form => REFUND
braille_spacer: 62, // spoof
small_caps: 373, // now invalid => REFUND
arabic_an: 772, // now mapped => REFUND
single_script: 3239, // 90%? REFUND but contains spoofs
latin_like: 174, // 2+ of (Latin, Greek, Cyrl), mostly spoofs
all_invalid: 2780, // 90%? REFUND but contains spoofs
unknown: 208
}
However, some of the names still require case-by-case inspection:
-
investors’
— trailing apostrophe -
δyδx
— Latin + Greek but otherwise okay -
ʕθᴥθʔ
— face-like name -
22ӏ22
— looks like22122
in many fonts -
sᴇʙᴀsᴛɪᴀɴ
— looks like small caps but normals
-
ⲟpensea
— spoof using Coptic script
I think you can safely remove braille_spacer
, not_ensip1
, and the bulk of latin_like
(~400 names). I’d error on the side of caution and refund the remainder.
@nick @raffy @matoken.eth
I bought that ETHEREUM.eth as collectible and to use it for the creation of an “elective” pfp, for maybe “reselling subnames” one day connected to it
not maliciously
very honestly I don’t see how it could be maliciously used. It isn’t a name with mixed chars.
raffy app was giving green lights
I had several ethereum.eth variations with some artistic shapes, all of them using chars of the same family, no weird thing nor tricks nor bullshit.
some have been excluded and I couldn’t renew them, that one was already mine, I forgot to renew it, and I bought it back at premium, not without pain. I was the previous owner and I bought it again.
Since the interface allowed me to buy it I was pretty in peace with it, the other names were excluded but this one was still accepted.
IT MEANS IT WAS A GOOD NAME NOT EXCLUDED
and that’s the point, when I realized raffy excluded a new series of chars I found impossible to renew some of the special ethereum.eth versions I had (an example is that weird font that messes up completely the writing, often used in cyberpunk situations - I forgot the name)
in few words I was really collecting some of the nicest version of ethereum.eth with pure sequences of special chars.
All of them impossible to be confused.
Now things are becoming embarrassing.
(not to mention that I will have to pay 26% of taxes next year for it if it is not recognized as some kind of token I can resell)
it was a straight name with all chars of the same family…
why do you consider it malicious?
I just saw this final debate and I am going to sleep shocked lol
I know there are people who bought tons of names, so basically some of them may be even more affected than me. Very honestly I don’t know what to say.
The logic thing had to be to allow only straight alphabet and then add later other special chars one by one after checking them, discussing them, and voting them.
This process instead was approached backwards. We al know it was an error, but you can’t judge the people because your feeling is “maybe they wanted to scam someone”
Also the word malicious is very likely inappropriate in many situations, since a lot of people have no idea of how encoding works. I am a dev, I know how it works, but I know it much better now after following raffy’s research. We all underestimated the encoding problem. Don’t say it is not true.
I am so malicious I am doxxing myself.
it was the best name ever
now I have no name and no 15eth
lol
it is a pure small-cap with chars of the same family, no tricks
remember many people really bought as collectibles
as raffy noted: smallcaps don’t have S
so I can imagine many people would tend to put a normal S to complete a smallcaps word if they need an S
it is not necessarily a malicious attitude
…but it wasn’t my case anyway!
if it makes you feel better check the few names I had and you excluded and didn’t allow me to renew, and you will see I always had pretty straight things
but anyway who can judge who is good and who is bad?
many of us really approached the problem as an artistic opportunity
(those who registered zero length dividers actually look a bit scammy lol but still I would refund everyone and close this chapter once and for all: error done => error fixed)
And after that if you’ll get scammed go to the police
Refund everyone or refund no one.
Or become the scammers.
The name ᴇᴛʜᴇʀᴇᴜᴍ.eth
was valid, and now it isn’t, and should be refunded. I don’t think anyone was suggesting otherwise.
I apologize that small-caps were removed however I believe it was for the best.
I agree with you that it’s very hard to decide intent and the line between creative and malicious is very subjective.
After trying to follow you while digging in the encoding mess I consider you one of the few planetary experts. IF you suggest to remove smallcaps or anything else I don’t even ask you why. The important is to build a bulletproof machine. Properly because it is a complex problem.
But yes my EHTEREUM.eth made me feel pretty elitary!
Hey @cypherparty,
Sorry that one was deemed invalid buy the new standard. If you are refunded the full premium paid as described here, do you feel okay about the outcome in general?
if I get back the money… in few words I won’t be affected. I had dreams/visions but who cares.
I understand the reason and I consider it logic. Things must be bulletproof.
As I said if I’d have a time machine I would go back in time and suggest to start with simple latin alphabet and vote one by one any further chars the community would like to add.
But thinking retrospectively is always easier.
I doxxed myself because Makoto associated the words “questionable/scam” to the name I registered and lost.
actually I will be affected if the refund happens the next year and not this one, since I will have to refile my tax report, and next year I will have to explain what are those eth incoming, and maybe pay the taxes onthem too. We’ll see. I’ll pay a lawyer to know better. Once I see things moving.
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.
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:
NFT‘s
‘Ethereum
‘Bitcoin
‘000‘
‘1‘
11‘11
‘6‘9‘
‘420‘
‘SpaceX
‘Money
McDonald‘s
‘911‘
NEWYORK (Circled Letters)
BLOCKCHAIN (Circled Letters)
Inteḻ
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.
Regards
Yuyi.eth
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.
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!! And thank god for Legacy !
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 |
NOTES:
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
-
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 asMay-2023 - June-2023
instead ofJuly-2023 - June-2023
for example. After the recalculation this address now receives instead of 0.04748966914 eth instead of -0.01669948333 -
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
0xe5aa8a233b0fe90ff9d68ba93ced601596992533
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
}
...
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?