Skip to main content

What names are allowed?

Which characters can go in an ENS name, why some are rejected, and how to check — the plain guide to normalisation (ENSIP-15).

ENS App and Explorer are on the Sepolia testnet. Features may change before mainnet.

Not every string of characters can be an ENS name. The rules come from a standard called normalisation (ENSIP-15), which every wallet and app applies the same way: it decides which characters are allowed, and makes sure two names that look the same really are the same.

The rules at a glance

  • Always safe: lowercase letters, digits, and hyphens, such as mywallet.eth and nick-01.eth.

  • Also allowed: letters from most of the world's writing systems, and emoji. 💩.eth is a valid name.

  • Capitals are fine to type, but don't exist in names. Everything is lowercased: TEST.eth and test.eth are the same name, stored as test.eth.

  • Not allowed: spaces, almost all punctuation, and invisible characters.

  • Length: a .eth name needs at least three characters before the .eth.

What gets rejected, and why

The rules exist to stop names that could deceive. Unicode contains many characters that look identical (a Cyrillic "о" and a Latin "o", say), and without strict rules, nick.eth written with a look-alike letter could be a completely different name to the one you think you're sending to. So normalisation rejects:

  • Spaces and punctuation: full stops separate the parts of a name, called labels (sub, name and eth in sub.name.eth); no other punctuation is allowed inside a label.

  • Invisible characters — zero-width characters that could hide inside a name.

  • Mixing alphabets to deceive: a label cannot combine letters from alphabets that imitate each other, such as a Cyrillic letter dropped into a Latin word.

  • A few placement rules: an underscore can only appear at the start of a label, and the third and fourth characters cannot both be hyphens (that pattern is reserved by DNS).

You don't need to memorise any of this: the ENS App and ENS Explorer apply the rules for you, so you can't register or create a non-normalised name through them.

A Latin letter a and a Cyrillic letter a side by side, looking identical

Subnames follow the same rules

A subname like alice.yourname.eth is a valid ENS name in its own right, and each part between the dots follows the same character rules above. The three-character minimum is a registration rule for .eth names — subname labels can be shorter.

How to check a name

  • Inspecting an existing name? Open it in ENS Explorer and check the Token Info tab. The Normalization row shows a green ✓ Normalized pill for valid names and a red ⊗ Not Normalized pill for names that fail the rules. See What's on the name page in ENS Explorer?

Four steps from a typed name to onchain records: user input, normalisation, namehash, ENS contracts

Common questions

Why won't the app accept the name I typed?

A character in it isn't allowed: most often a space, a punctuation mark, or an invisible character that came along when you pasted the name. Retype it by hand and try again.

Are emoji really allowed?

Yes, but only proper, fully-formed emoji from the allowed set. Variants of the same emoji normalise to a single form, so two visually identical emoji names can't exist side by side.

Explorer shows a name as ⊗ Not Normalized. What does that mean?

The name contains characters the rules reject. It still exists on the blockchain and can hold records, but wallets and apps that apply the rules refuse it, so you cannot reliably send to it. Explorer flags it so you know before you deal with it.

Can a not-normalised name be fixed?

No. Whether a name is allowed is a property of its characters, not a setting: you can't normalise an existing name. The only path is registering a different, valid name.

Did this answer your question?