• © Goverland Inc. 2026
  • v1.0.3
  • Privacy Policy
  • Terms of Use
ENSENSby0x51050ec063d393217B436747617aD1C2285Aeeeeraffy.eth

[EP3.7] [Social] Approval of ENS Name Normalization Standard (ENSIP-15)

Voting ended over 2 years agoSucceeded

Abstract

This is a vote to approve ENSIP-15: Normalization Standard.

Motivation

EP3.7 Motivation

  • Normalization isn't enforced on-chain.
  • There is no code for the DAO to execute.
  • Approval for ENSIP-15 should be confirmed through a social vote.

ENSIP-15 Motivation

  • Since ENSIP-1 (originally EIP-137) was finalized in 2016, Unicode has evolved from version 8.0.0 to 15.0.0 and incorporated many new characters, including complex emoji sequences.
  • ENSIP-1 does not state the version of Unicode.
  • ENSIP-1 implies but does not state an explicit flavor of IDNA processing.
  • UTS-46 is insufficient to normalize emoji sequences. Correct emoji processing is only possible with UTS-51.
  • Validation tests are needed to ensure implementation compliance.
  • The success of ENS has encouraged spoofing via the following techniques:
    1. Insertion of zero-width characters.
    2. Using names which normalize differently between algorithms.
    3. Using names which appear differently between applications and devices.
    4. Substitution of confusable (look-alike) characters.
    5. Mixing incompatible scripts.

Specification

  • Replace ENSIP-1 § Name Syntax "UTS-46 algorithm" with link to ENSIP-15.
  • Agree to normalize names according to ENSIP-15 for a safer end-user experience.
    • Examples:

      1. image
      2. image
      3. image
    • Libraries implementing ENSIP-15:

      1. Javascript — adraffy/ens-normalize
      2. Javascript — ensdomains/eth-ens-namehash
      3. Python — namehash/ens-normalize-python
    • Web Frameworks using ENSIP-15:

      1. Javascript — ethers/ethers.io
      2. Javascript — web3/web3.js
      3. Javascript — wagmi-dev/viem
  • Names visible to the end-user should be beautified for a more consistent appearance.
    • For example, these labels are the same:

image

Voting

This vote is a single choice vote. You may vote for one of the following options:

  • For
  • Against
  • Abstain

By voting For this proposal, you are voting in favor of approving ENSIP-15.

Off-Chain Vote

For
1.92M ENS100%
Against
4.69 ENS0%
Abstain
3.55 ENS0%
Download mobile app to vote

Timeline

Jun 13, 2023Proposal created
Jun 13, 2023Proposal vote started
Jun 18, 2023Proposal vote ended
Jun 19, 2024Proposal updated