---
title: "Appendix B: IPv6 Address Normalization"
slug: "appendix-b-ipv6-address-normalization"
updated: 2026-03-19T20:49:20Z
published: 2026-03-19T20:50:03Z
canonical: "help.yahooinc.com/appendix-b-ipv6-address-normalization"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://help.yahooinc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Appendix B: IPv6 Address Normalization

Normalized IPv6 addresses are required for upload into DataX. IPv6 addresses must be normalized according to RFC 5952 normalization rules, so that the data can be 100% accurately matched after encryption. If IPv6 addresses are not normalized, a single IP address can be written in multiple valid formats (e.g., 2001:db8:0:0::1 and 2001:0db8::0001).

| Format | Description | Normalized Example |
| --- | --- | --- |
| **Full IPv6 Address** | 128-bit address, maximally compressed per RFC 5952 rules | 2001:db8::1 |

> [!WARNING]
> Important
> 
> - Submitting /64 prefixes or other CIDR blocks is not supported.
> - **IPv4-Mapped IPv6**: Do not submit addresses like ::ffff:192.168.1.1. Please hash the original IPv4 address instead.

## Normalization Rules (RFC 5952)

Normalize IPv6 addresses as follows:

1. **Suppress Leading Zeros:** Leading zeros in each 16-bit group must be removed.
  - 2001:0db8 → 2001:db8
2. **Longest Zero Run (::):** Use :: to replace the longest consecutive sequence of all-zero groups.
  - 2001:db8:0:0:0:0:0:1 → 2001:db8::1
3. **Tie-breaking:** If there are two zero runs of equal length, compress the **first (leftmost)** one.
  - 2001:db8:0:0:1:0:0:1 → 2001:db8::1:0:0:1
4. **No Single Group Compression:** Do not use :: to replace a single 16-bit zero group. Use :0: instead.
  - 2001:db8:0:1:0:0:0:1 → 2001:db8:0:1::1
5. **Lowercase:** All hexadecimal characters must be **lowercase**.
  - 2001:DB8:AAAA::1 → 2001:db8:aaaa::1

## Verify Normalized IPv6 Addresses

The normalized IPv6 address must be verified using SHA256 hashing. The hash input must be the **UTF-8 encoded** normalized string with **no trailing newline**.

**To Verify the Normalized IPv6 Address:**

Run `echo -n "2001:db8::1" | sha256sum` in the terminal. The output must be `5afd19e...1ed536`. If it differs, the normalization or encoding is wrong.

> [!WARNING]
> Important
> 
> Trailing Newline
> 
> - Many echo commands add a \n which completely changes the hash. Always use echo -n.

## Examples of Normalized IPs

The following are examples of normalized IPv6 addresses with their hash results.

| Normalized Value | SHA256 Hash Result |
| --- | --- |
| 2001:db8::1 | 5afd19e856d1c18d17d600dfd2b5f534992333985e126c2a951047102c1ed536 |
| 2001:db8:aaaa:1::1 | a26075760baa14c6db85931695017ae4e20b56b01b017ceacbd5c6fe2f69eecc |
| fe80::202:b3ff:fe1e:8329 | a63b8244f25c80d6c736ddc532c28a17a448543b6b5e9dbff39d5c3187822c97 |
| 2001:db8:0:1::1 | a81588f63cc78f25925f96562007801a6b9bd628529c6812f6b968ff4ef03b81 |
