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. Also note that the same punycode string may have multiple emoji representations because how punycode is rendered depends on your browser and device (see this example).

For reference, we use https://www.npmjs.com/package/idna-uts46-hx for our punycode converter at Namebase.

Note: we previously used the punycode library before switching to idna-uts46-hx which is more browser-compliant.

How did we do?

Powered by HelpDocs (opens in a new tab)