三 normalization sometimes (invalid name/domain malformed), the rest are similar but valid

I have s三x.eth and wanted to renew it but it says “Invalid name.” However, when I go to the adraffy.github.io resolver, it resolves fine with no errors. When I try to renew it or when it is listed on OpenSea/ENS Vision, it displays as Invalid domain, shows background color red, the others are blue background, yet very similar.

Seems like some work and some don’t? I can’t see why starting with “0x” is blue, the rest are red. They all use the same unicode: 4E09/U+4E09

Han Script
id: restricted
confuse: none

[invalid domains]

sportsb三t.eth
craftb三三rs.eth
billionair三.eth
三th.eth
三th三r.eth
三th三r三um.eth

[Valid Domains]

0x三thereum.eth
0x三th.eth
0x三th三r三um.eth
0x三th三r.eth

Appreciate all the hard work the ENS team is doing

Is there any possible solution to this problem where some domains are fine with the 三 when starting with the number 0?

Thank you, very helpful to find out why a 0 in the ENS name make it valid while the others without the 0 are invalid.

1 Like

Did you try refreshing the metadata? Some normalized domains still show incorrectly because the metadata is cached by the marketplaces.

2 Likes

All those names are all valid and land in the the romanized Han group.

I assume you’re using the legacy app? I’m not sure why the old ens-validation library allows mixed-script with a digit but shows an error when there’s no digit.

Just an FYI that is not the correct Ethereum symbol. It’s permitted because I couldn’t safely disallow it.

3 Likes

I had notified @raffy about this months ago.

三i三.eth

Etherscan return,

The domain name entered is either not registered on ENS or not currently supported by Etherscan.

app.ens.domains return,

Domain malformed. 三i三.eth is not a valid domain.

You have either added a domain without a TLD such as .eth or you have added unsupported characters.

i三三.eth

Etherscan return,

The domain name entered is either not registered on ENS or not currently supported by Etherscan.

app.ens.domains return,

Domain malformed. i三三.eth is not a valid domain.

You have either added a domain without a TLD such as .eth or you have added unsupported characters.

三三i.eth

Etherscan return,

The domain name entered is either not registered on ENS or not currently supported by Etherscan.

app.ens.domains return,

Domain malformed. 三三i.eth is not a valid domain.

You have either added a domain without a TLD such as .eth or you have added unsupported characters.

三aa.eth

Etherscan return,

The domain name entered is either not registered on ENS or not currently supported by Etherscan.

app.ens.domains return,

Domain malformed. 三aa.eth is not a valid domain.

You have either added a domain without a TLD such as .eth or you have added unsupported characters.

a三a.eth

Etherscan return,

The domain name entered is either not registered on ENS or not currently supported by Etherscan.

app.ens.domains return,

Domain malformed.a三a.eth is not a valid domain.

You have either added a domain without a TLD such as .eth or you have added unsupported characters.

aa三.eth

Etherscan return,

The domain name entered is either not registered on ENS or not currently supported by Etherscan.

app.ens.domains return,

Domain malformed. aa三.eth is not a valid domain.

You have either added a domain without a TLD such as .eth or you have added unsupported characters.

三ric.eth

Etherscan return,

The domain name entered is either not registered on ENS or not currently supported by Etherscan.

app.ens.domains return,

Domain malformed. 1aa三.eth is not a valid domain.

You have either added a domain without a TLD such as .eth or you have added unsupported characters.

∆三e.eth is a valid domain

111三.eth is a valid domain

1三1.eth is a valid domain

a1b三.eth is a valid domain

a1三b.eth is a valid domain

a三1b.eth is a valid domain

三a1b.eth is a valid domain

三a1.eth is a valid domain

i三三1.eth is a valid domain

1aa三.eth is a valid domain

The character—

‘null三null’

or ‘ 三 ‘

三 is uts-46 mappable, Unicode Utilities: Character Properties

When the character 三 is used in combination with ASCII character that is alphabetic only and no numeric characters, returns malformed / invalid.

When the character 三 is used in combination with an ASCII character that is alphabetic + a single numeric characters, returns valid.

When the character 三 is used in combination with ASCII character numeric only and no alphabetic characters, returns malformed / invalid.

When the character 三 is used in combination with ASCII character that is alphabetic only + no numeric characters + some but not all ALT+xxx characters returns valid.

Sequence and order are irrelevant.
No relevant information found about sequence and order of uts-46 characters in unicoode specification manuals.

The issue is that – it results malformed if the string contains

( 三 ) + (alphabetic character) + (alphabetic character)

but is valid if string contains

( 三 ) + ( ascii numeral character) +

or

( 三 ) + ( ascii numeral character) + (alphabetic character)

三 is uts-46 mappable, Unicode Utilities: Character Properties

Either way I don’t believe this character should be allowed in the first place at all.

Thank you for the recommendation. I did try to refresh after the normalization a few months ago. Accessor.eth explained the problem I have with that character in great detail. Looks like it is a problem still in certain patterns of alpha numeric character integration.

Thank you Raffy for all the hard work and explanations. Eventually, if you can safely disallow the character, what will happen with the current domains registered with the 三 character?

Also, will the Ξ be the preferred character to use as the Ethereum “E”? (The Greek Xi character)

I believe will force the label to be Han, so those names will remain valid as long as they’re single script (additionally Han permits ASCII a-z).

Greek Xi (Ξ) is the best we can do until Ethereum get its own Unicode symbol like Bitcoin ().

The best solution I could come up with, since Greek Xi must remain valid in both cases (Ξ and ξ), was to beautify the ξΞ when the label wasn’t Greek, which covered like 99.9% of the cases.

If you register a name with ξ, you should safely be able to use Ξ in all situations (old norm, new norm, DNS, etc.), similar to how raffy.eth can be entered as Raffy.eth

Not Greek:
image

Greek:
image

2 Likes

So is this considered a bug? There shouldn’t be a reason why certain combination of allowed characters would cause a return of a malformed/invalid domain.

That’s not correct though, in fact script-mixing is one of the biggest reasons why the normalization overhaul was done in the first place (lots of spoofing going on). So yes, certain characters can be allowed on their own with other characters in the same script, but not when combined with characters of other scripts (with ASCII 0-9a-z being an exception in some cases).

Also, the old manager app did not yet use the new normalization library, but the new one does. You can see that names with 三 and ASCII 0-9a-z are valid: https://app.ens.domains/1aa三.eth/register

1 Like

This thread was created back in February, but FYI now every one of those domains shows up as valid in the new Manager UI: https://app.ens.domains/三th三r三um.eth

1 Like

Going to tag this on here as it’s the same subject

It’s shit coin season and there is an ideal marketing opportunity for ENS but it can’t be used yet

$cashtag ENS ‘could’ be used as contract names for shit coins as it would be exactly the same as their ticker, plus the contract address would then become a clickable search tag on Twitter

You could easily identify the contract at a glance, this is what ENS is meant to be for

Imagine how many views $pepe.eth would have got if that was it’s contract address ?? Major advertising oppertunity here

But, $cashtage names don’t work fully yet, same with the other normalised names

I can’t get something sent to -x-.eth and a shit coin contract can’t use $name yet either

I know some projects have their ENS and are waiting, do we have a time scale or is the season going to be missed ??

I understand what you are saying. I had brought this issue up in July ‘22 regarding this exact topic.