Why do emoji domains begin with "xn--*" strings?

The xn--5p9h above is the Punycode representation of the 🤝 emoji.

Domain names can only contain a limited set of characters so emoji and foreign character domains are puny encoded — when you type an emoji into a browser, it will look up the punycode of that emoji. In other words, the punycode xn--* string is the actual domain name, and not the emoji rendering.

Before purchasing an emoji domain, we highly recommend you do your own homework on punycodes and unicode homoglyphs. Not only can the same punycode string have multiple emoji representations since how punycode is rendered depends on your browser and device, but multiple punycodes can also render the same emoji due to unicode homoglyphs and 0-width characters — compare 🤝 (IDNA) with 🤝 (Alt)*.

We previously used the punycode library before switching to idna-uts46-hx, which is more browser-compliant.

*Alts in the Namebase Marketplace are simply non-IDNA2008 punycodes.


How did we do?


Powered by HelpDocs (opens in a new tab)