Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions ensips/15.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
description: A standard for ENS name normalization.
description: ENS name normalization.
contributors:
- raffy.eth
ensip:
status: final
created: 2023-04-03
ignoredRules: ["heading:description-of-", "heading:derivation", "heading:appendix:-reference-specifications", "heading:appendix:-additional-resources", "heading:appendix:-validation-tests", "heading:annex:-beautification"]
ignoredRules: ["heading:description-of-", "heading:derivation", "heading:appendix:-reference-specifications", "heading:appendix:-additional-resources", "heading:appendix:-validation-tests", "heading:annex:-beautification", "heading:appendix:-updates"]
---

# ENSIP-15: ENS Name Normalization Standard
Expand All @@ -30,7 +30,7 @@ This ENSIP standardizes Ethereum Name Service (ENS) name normalization process o

## Specification

* Unicode version `16.0.0`
* Unicode version [`17.0.0`](#appendix-updates)
* Normalization is a living specification and should use the latest stable version of Unicode.
* [`spec.json`](https://github.com/adraffy/ens-normalize.js/blob/main/derive/output/spec.json) contains all [necessary data](#description-of-specjson) for normalization.
* [`nf.json`](https://github.com/adraffy/ens-normalize.js/blob/main/derive/output/nf.json) contains all [necessary data](#description-of-nfjson) for [Unicode Normalization Forms](https://unicode.org/reports/tr15/) NFC and NFD.
Expand Down Expand Up @@ -493,3 +493,12 @@ Follow [algorithm](#algorithm), except:
* Replace `3BE (ξ) GREEK SMALL LETTER XI` with `39E (Ξ) GREEK CAPITAL LETTER XI` if the label isn't *Greek*.
* Example: `normalize("‐Ξ1️⃣") [2010 39E 31 FE0F 20E3]` is `"-ξ1⃣" [2D 3BE 31 20E3]`
* Example: `beautify("-ξ1⃣") [2D 3BE 31 20E3]"` is `"-Ξ1️⃣" [2D 39E 31 FE0F 20E3]`

## Appendix: Updates

| Unicode | [Release](https://www.unicode.org/history/publicationdates.html#Release_Dates) | Updated | [SHA-256 of `spec.json`](https://github.com/adraffy/ens-normalize.js/blob/main/derive/data/releases.json)
| :-: | :-- | :-- | :--
| `15.0.0` | 2022-09-13 | 2023-02-21 | `962316964553fce6188e25a5166a4c1e906333adf53bdf2964c71dedc0f8e2c8`
| `15.1.0` | 2023-09-12 | 2024-01-25 | `1f6d3bdb7a724fe3b91f6d73ab14defcb719e0f4ab79022089c940e7e9c56b9c`
| `16.0.0` | 2024-09-10 | 2024-09-14 | `4b3c5210a328d7097500b413bf075ec210bbac045cd804deae5d1ed771304825`
| `17.0.0` | 2025-09-09 | 2025-09-18 | `4febc8f5d285cbf80d2320fb0c1777ac25e378eb72910c34ec963d0a4e319c84`