UTS-46 Non-compliant Emoji

Cloudflare should puny-decode before resolving with ENS. I’ll talk to them about this.

We will definitely need to carefully evaluate new versions of the standard before rolling them out.

1 Like

I see the following:

  • 🏳️‍🌈.eth == 1f3f3 fe0f 200d 1f308 2e 65 74 68
  • xn--og8hvo.eth == 78 6e 2d 2d 6f 67 38 68 76 6f 2e 65 74 68 == 🏳🌈.eth

This is the IDNA step, but then there’s NFC, but this was an off-by-one bug in my decompression code. Thanks!

Ⓜ️Ⓜ️Ⓜ️.eth now goes to mmm.eth
1f238 now correctly maps to 7533


Have you entered your flag variants into my resolver demo?

These all resolve to the same thing.


Due to how many conflicts this causes with previously registered names, this behavior has been changed in my library and emoji are no longer upgraded. Essentially, ZWJ is optional, which results in multiple names for many emoji.

I think the example Nick shows me was:

  1. 😵💫😵💫😵💫.eth0x372973309f827B5c3864115cE121c96ef9cB1658
  2. 😵💫😵💫😵💫.eth0x0033AAdE458d0b39Ce0B1Ba2581859F2D5855555

These render identically for me on Windows+Firefox but look separate on my Mac:

Additionally, if these two examples represent AAA and BBB, then also AAB, ABA, ABB, BAA, BAB, BBA are valid, eg. 😵‍💫😵‍💫😵‍💫.eth

1 Like