Skip to main content

What are homoglyphs and lookalike ENS names?

A homoglyph is a character that looks like another. Two ENS names can look identical but point at different wallets. How to tell them apart.

A homoglyph is a character that looks like another character but is not the same one. A Cyrillic е draws the same as a Latin e, and an invisible joiner draws nothing at all. So two ENS names can look identical on screen and be different names, owned by different people, pointing at different wallets. Scammers register lookalikes of well-known names and wait for someone to send funds without checking.

Good to know

  • The ENS App refuses most lookalikes when you register. That protects the names you make, not the names you are sent.

  • A lookalike of a well-known name, offered to you out of the blue, is almost certainly a fake.

  • ENS support cannot reverse a transaction sent to a lookalike. Check the name before you send.


How to check a name

Type the name into the search bar at app.ens.domains. Type it out rather than pasting it: pasting carries whatever characters were in the message you copied from, and typing gives you the name you meant. Open the name and compare what the App shows (the owner, and the ETH address the name points at) with what you were sent. If they do not match, the name you were sent is a different name.

Reading the characters yourself

To see exactly which characters a name is made of, run it through a Unicode analyser. Here you do want the original: copy the name exactly as it was given to you, rather than typing it out.

  1. Copy the full name from wherever you found it.

  2. Paste it into a Unicode analyser, such as fontspace.com/unicode/analyzer. It breaks the name into characters and labels each one.

  3. Read the labels. Every character should be a plain Latin letter, a digit 0–9, a hyphen, or an emoji you recognise. Reject the name if you see Zero-Width Joiner, Variation Selector, Cyrillic, Greek, Armenian or any other non-Latin script, Small Capital, or Arabic-Indic Digit mixed with ordinary digits.

If the analyser shows only plain Latin letters and ordinary digits, the name is what it looks like.

A Unicode analyser breaking vitalik.eth into Latin letters
The same name, with an extra Zero Width Joiner row

Check any name someone sent you with a request for funds, and any name you have already paid and are unsure about. The transaction cannot be reversed, but the check tells you what happened.


Why two identical-looking names are different names

Every character has a number, called a code point. The Latin e is U+0065 and the Cyrillic е is U+0435. Your screen draws them the same way; the computer treats them as unrelated. ENS works on the code points, so ens.eth and еns.eth are two separate registrations with their own owners, records and wallet addresses. There is no bug to fix and nothing to reverse, because the two names were never the same name.

A Unicode analyser breaking ens.eth into Latin letters
The same name, with its first letter Cyrillic instead

Types of homoglyph

These are the five kinds an analyser will flag.

Type

What it looks like

Analyser flag

Zero-Width Joiner

Invisible character between letters

"Zero-Width Joiner"

Variation Selector

Invisible character after a letter

"Variation Selector"

Cross-script confusable

Cyrillic е instead of Latin e, and so on

"Cyrillic", "Greek", "Armenian"

Small capital

ɴ instead of n

"Latin Letter Small Capital"

Digit-set swap

Arabic ٤ or Persian ۴ instead of Latin 4

"Arabic-Indic Digit" or "Extended Arabic-Indic Digit"

Zero-Width Joiners are invisible characters made for building emoji. Slipped between the letters of a name, they create a separate name that draws identically. Variation Selectors are invisible too; the ENS App strips them, but a name registered through a contract or a third-party tool can still carry one. Confusables are letters from other alphabets with Latin twins; there are more of these than any other type. Small capitals such as ɴ and sit in their own Unicode block. Arabic and Persian digits look like Latin digits to most readers and turn up regularly in support tickets.


Common questions

Does the ENS App stop these names being registered?

The ENS App stops you from creating an invalid name: it strips variation selectors, converts capitals to lowercase and blocks many lookalike characters. It cannot stop someone else registering a lookalike directly through a contract or a third party.

A marketplace shows a warning next to a name. Is it a scam?

Not necessarily. Marketplaces and block explorers flag any name that contains unusual characters, with a warning triangle or an asterisk. The flag means unusual characters, not scam: plenty of genuine emoji names trip it. Run the name through an analyser before acting either way.

What else gives a lookalike away?

Offer: a name that copies a well-known one and is pushed at you unprompted is a warning on its own. Source: a name sent by direct message, comment or unsolicited message gets extra scrutiny. Branding: a name copying a public figure or project that does not appear on their own verified channels is almost certainly fake. Check the channels you already trust, not the one pushing the name at you.

Where can I see every confusable character?

The Unicode Consortium publishes its full confusables list at util.unicode.org, and the ens-normalize project publishes the characters ENS treats as confusable at adraffy.github.io.

Did this answer your question?