Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discussion: UTF-8 support for ENS names #42

Closed
ricmoo opened this issue Oct 25, 2017 · 11 comments
Closed

Discussion: UTF-8 support for ENS names #42

ricmoo opened this issue Oct 25, 2017 · 11 comments
Labels
enhancement New feature or improvement. fixed/complete This Bug is fixed or Enhancement is complete and published.

Comments

@ricmoo
Copy link
Member

ricmoo commented Oct 25, 2017

This issue is intended to be used as a place to discuss the use of UTF-8 ENS names in ethers.js.

The following links are useful to have checked out, if this interests you.

@ricmoo ricmoo added the discussion Questions, feedback and general information. label Oct 25, 2017
@ricmoo ricmoo added enhancement New feature or improvement. next version and removed discussion Questions, feedback and general information. labels Jul 27, 2019
@ricmoo
Copy link
Member Author

ricmoo commented Jul 27, 2019

I have begun the implementation of nameprep, to add full support for UTF-8 to namehash for v5. :)

@rmeissner
Copy link

rmeissner commented Apr 21, 2021

What is the status on this? I am using version 5.1.13 and get an error if I try to resolve 🍯dao.eth. Even if I normalize it beforehand to xn--dao-nc13b.eth it does not work as expected (both are correctly recognized by the ens app). (Edit: Not sure what the ENS app does but apparently they don't normalize the emoji ... same for etherscan ...)

Note: The Current ethers.js namehash restrictions link in the description is broken

@skylarbarrera
Copy link

bumping this, would love to see this added as we rely on this in Rainbow

@ricmoo
Copy link
Member Author

ricmoo commented Jul 9, 2021

@rmeissner I removed the link. The restrictions are no longer there (it used to only allow ascii7). I think the only problem with my current nameprep implementation is that it will reject certain right-to-left names which are valid.

@wmitsuda
Copy link

Some people use emoji inside their primary ENS names, having this implemented would allow them to be properly displayed in Otterscan, so I'd like to show my support for it. (I arrived at this issue while debugging why emoji names were not being resolved)

@brendandebeasi
Copy link

We are getting a lot of feedback from users of our *.eth.xyz profile service that they would like their emoji names to work. Bumping to show support

@ricmoo
Copy link
Member Author

ricmoo commented Dec 21, 2021

I’m working on this now. I believe it is just a matter of updating the A.1 table for string prep and running the ingestion scripts again.

This is highest on my priority list right now. :)

@jhxyz
Copy link

jhxyz commented Jan 7, 2022

Thanks @ricmoo we've collected a bunch of emoji, unicode, and other special-character .eth names that the community is asking for support on! devdotxyz/eth-xyz#22

@Gilgames000
Copy link

Hello there, and thanks for your work on this, @ricmoo! Is there any recent update? I would really like to see support for this coming to Ethers as both us and other dapps that use our name service rely on this library to resolve names, and our users asked for emoji support.

I'm wondering since the homoglyph attack is a possibility what if we had an option to turn on "secure nameprep" (maybe on by default?) so to invalidate names containing confusingly similar characters?

@ricmoo
Copy link
Member Author

ricmoo commented May 12, 2022

Here is the discussions: https://discuss.ens.domains/t/ens-name-normalization/8652/130

Once that discussion is resolved, ethers will jump on board. :)

Homoglyph is only part of the problem; the original specification specified nameprep(for IDNA purposes) which doesn't allow a lot of newer emoji, since it was drafted in 2003... ;)

@ricmoo
Copy link
Member Author

ricmoo commented Aug 19, 2022

The latest ENS name specification is now available in v5.7.0.

This should address and UTF-8 woes, so I can finally close this ancient issue. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or improvement. fixed/complete This Bug is fixed or Enhancement is complete and published.
Projects
None yet
Development

No branches or pull requests

7 participants