<?xml version="1.0" encoding="UTF-8"?>
<rfc ipr="trust200902"
     docName="draft-gavcave-ipv6-emoji-notation-00"
     category="exp"
     submissionType="independent"
     version="3">

  <front>
    <title abbrev="EN6">Emoji-Based Notation for IPv6 Addresses</title>

    <seriesInfo name="Internet-Draft" value="draft-gavcave-ipv6-emoji-notation-00"/>

    <author fullname="GavCave" surname="GavCave">
      <address>
        <email>gavcave@example.com</email>
      </address>
    </author>

    <date year="2026" month="April"/>

    <area>Internet</area>
    <workgroup>Network Working Group</workgroup>

    <keyword>IPv6</keyword>
    <keyword>emoji</keyword>
    <keyword>address notation</keyword>

    <abstract>
      <t>
        This document defines an alternative textual representation of
        IPv6 addresses using Unicode Emoji characters (hereinafter
        "Smileys") in place of hexadecimal digits. The proposed format,
        known as EmojiNotation6 (EN6), aims to make IPv6 addresses more
        expressive, more human-friendly, and significantly more fun at
        parties.
      </t>
      <t>
        Additionally, this document specifies a MANDATORY
        content-classification prefix using the AUBERGINE character
        (U+1F346) for addresses serving adult content, hereafter
        referred to as the "Eggplant Requirement".
      </t>
    </abstract>
  </front>

  <middle>

    <section anchor="introduction">
      <name>Introduction</name>
      <t>
        The IPv6 addressing architecture, as defined in
        <xref target="RFC4291"/> and <xref target="RFC8200"/>, relies
        on hexadecimal notation
        separated by colons. The canonical form is defined in
        <xref target="RFC5952"/>. While technically efficient, this
        format has proven to be:
      </t>
      <ul>
        <li>Emotionally cold,</li>
        <li>Impossible to remember,</li>
        <li>Completely devoid of personality,</li>
        <li>A frequent cause of existential dread among junior network
            engineers.</li>
      </ul>
      <t>
        This document proposes a mapping of the 16 hexadecimal digits
        (0-F) to 16 carefully selected emoji characters, producing
        addresses that are visually distinctive, emotionally engaging,
        and Instagram-ready.
      </t>
    </section>

    <section anchor="conventions">
      <name>Conventions and Definitions</name>
      <t>
        The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
        "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",
        "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are
        to be interpreted as described in BCP 14
        <xref target="RFC2119"/> <xref target="RFC8174"/> when, and
        only when, they appear in all capitals, as shown here.
      </t>
      <t>
        The author was mildly sleep-deprived during the writing of
        this specification.
      </t>
    </section>

    <section anchor="mapping">
      <name>Emoji Hexadecimal Mapping Table</name>
      <t>
        Each hexadecimal digit SHALL be replaced by its corresponding
        emoji from the <xref target="UNICODE"/> standard as follows:
      </t>

      <table anchor="hex-emoji-table">
        <name>Emoji Hexadecimal Mapping</name>
        <thead>
          <tr><th>Hex</th><th>Unicode</th><th>Description</th><th>Rationale</th></tr>
        </thead>
        <tbody>
          <tr><td>0</td><td>U+1F600</td><td>Grinning Face</td><td>Because zero should at least be happy about it</td></tr>
          <tr><td>1</td><td>U+1F525</td><td>Fire</td><td>The loneliest number, but lit</td></tr>
          <tr><td>2</td><td>U+1F30D</td><td>Earth Globe</td><td>The Internet is global after all</td></tr>
          <tr><td>3</td><td>U+1F3B5</td><td>Musical Note</td><td>Three is the magic number</td></tr>
          <tr><td>4</td><td>U+1F431</td><td>Cat Face</td><td>The Internet was built for cats</td></tr>
          <tr><td>5</td><td>U+2B50</td><td>Star</td><td>Five-star rating</td></tr>
          <tr><td>6</td><td>U+1F3B2</td><td>Game Die</td><td>A standard die has six faces</td></tr>
          <tr><td>7</td><td>U+1F308</td><td>Rainbow</td><td>Seven colors in a rainbow</td></tr>
          <tr><td>8</td><td>U+1F680</td><td>Rocket</td><td>To infinity and beyond octet boundaries</td></tr>
          <tr><td>9</td><td>U+1F355</td><td>Pizza</td><td>Best enjoyed in slices of nine</td></tr>
          <tr><td>A</td><td>U+1F48E</td><td>Gem Stone</td><td>A is for precious</td></tr>
          <tr><td>B</td><td>U+1F984</td><td>Unicorn</td><td>As mythical as a fully documented network</td></tr>
          <tr><td>C</td><td>U+1F3B8</td><td>Guitar</td><td>C major chord</td></tr>
          <tr><td>D</td><td>U+1F409</td><td>Dragon</td><td>Here be dragons</td></tr>
          <tr><td>E</td><td>U+26A1</td><td>High Voltage</td><td>E for Energy</td></tr>
          <tr><td>F</td><td>U+1F52E</td><td>Crystal Ball</td><td>The future of networking</td></tr>
        </tbody>
      </table>

      <t>
        The colon separator (:) SHALL be replaced by the HANDSHAKE
        emoji (U+1FAF1, hereinafter referred to as the "Bro Separator").
      </t>
      <t>
        The double-colon compression (::) SHALL be represented by the
        SLEEPING FACE emoji (U+1F634), indicating "nothing interesting
        here".
      </t>
    </section>

    <section anchor="examples">
      <name>Address Representation Examples</name>

      <section anchor="example-standard">
        <name>Standard Address</name>
        <t>Traditional notation:</t>
        <artwork><![CDATA[
    2001:0db8:85a3:0000:0000:8a2e:0370:7334
]]></artwork>
        <t>EN6 notation (expanded, per mapping in
           <xref target="hex-emoji-table"/>):</t>
        <artwork><![CDATA[
  Hex:  2     0    0    1    :    0    d       b       8
  EN6:  Globe Grin Grin Fire Bro  Grin Dragon  Unicorn Rocket

  Hex:  8      5    a   3    ::
  EN6:  Rocket Star Gem Note Sleep

  Hex:  8      a   2     e    :    0    3    7       0
  EN6:  Rocket Gem Globe Volt Bro  Grin Note Rainbow Grin

  Hex:  7       3    3    4
  EN6:  Rainbow Note Note Cat
]]></artwork>
      </section>

      <section anchor="example-loopback">
        <name>Loopback Address</name>
        <t>Traditional notation:</t>
        <artwork><![CDATA[
    ::1
]]></artwork>
        <t>EN6 notation:</t>
        <artwork><![CDATA[
    Sleep Fire     (U+1F634 U+1F525)
]]></artwork>
      </section>

      <section anchor="example-linklocal">
        <name>Link-Local Address</name>
        <t>Traditional notation:</t>
        <artwork><![CDATA[
    fe80::1
]]></artwork>
        <t>EN6 notation:</t>
        <artwork><![CDATA[
    Crystal Volt Rocket Grin Sleep Fire
    (U+1F52E U+26A1 U+1F680 U+1F600 U+1F634 U+1F525)
]]></artwork>
      </section>
    </section>

    <section anchor="eggplant">
      <name>The Eggplant Requirement (MANDATORY)</name>

      <section anchor="eggplant-rationale">
        <name>Rationale</name>
        <t>
          Current IPv6 addressing provides no mechanism to identify the
          nature of content served by a host at the network layer. This
          document addresses this critical gap for one specific content
          category.
        </t>
      </section>

      <section anchor="eggplant-spec">
        <name>Specification</name>
        <t>
          Any IPv6 address assigned to a server, CDN node, reverse
          proxy, or any network-facing device whose PRIMARY purpose is
          the distribution of adult or sexually explicit content MUST
          include the AUBERGINE prefix (U+1F346) prepended to the EN6
          address.
        </t>
        <t>The format SHALL be:</t>
        <artwork><![CDATA[
    U+1F346 <EN6 address>
]]></artwork>
        <t>Example:</t>
        <artwork><![CDATA[
    Aubergine Crystal Volt Rocket Grin Sleep Globe Gem Cat Globe
    (U+1F346  U+1F52E U+26A1 U+1F680 U+1F600 U+1F634
              U+1F30D U+1F48E U+1F431 U+1F30D)
]]></artwork>
      </section>

      <section anchor="eggplant-compliance">
        <name>Compliance</name>
        <ul>
          <li>
            Registrars assigning IPv6 blocks to entities operating
            adult content platforms MUST enforce the Eggplant
            Requirement at the time of allocation.
          </li>
          <li>
            DNS resolvers SHOULD display a brief warning
            ("U+1F346 detected in address -- content may not be
            suitable for all audiences") when resolving an
            Eggplant-prefixed address.
          </li>
          <li>
            Parental control software MAY use the presence of
            U+1F346 as a filtering signal, which, for once, would
            actually be trivially easy to implement.
          </li>
          <li>
            Any attempt to use U+1F346 for non-adult content (e.g.,
            an actual eggplant recipe website) MUST be submitted for
            review to the newly created IANA Eggplant Disambiguation
            Committee (IEDC).
          </li>
        </ul>
      </section>

      <section anchor="eggplant-penalties">
        <name>Penalties for Non-Compliance</name>
        <t>
          Operators serving adult content without the U+1F346 prefix
          SHALL be subject to:
        </t>
        <ul>
          <li>Public shaming on the NANOG mailing list,</li>
          <li>A 30-day mandatory assignment of only IPv4 addresses in
              the 169.254.0.0/16 range,</li>
          <li>Revocation of coffee privileges at IETF meetings.</li>
        </ul>
      </section>
    </section>

    <section anchor="compression">
      <name>Compression Rules</name>

      <section anchor="zero-compression">
        <name>Zero Compression</name>
        <t>
          Consecutive groups of U+1F600 U+1F600 U+1F600 U+1F600
          (all-zero quartets) MAY be replaced by a single U+1F634
          (SLEEPING FACE).
        </t>
        <t>
          Only one U+1F634 is permitted per address. Use of multiple
          U+1F634 SHALL be interpreted as the operator being actually
          asleep and the address MUST be considered invalid.
        </t>
      </section>

      <section anchor="leading-zero">
        <name>Leading Zero Suppression</name>
        <t>
          Leading U+1F600 (Grinning Face) characters within a quartet
          MAY be omitted.
        </t>
        <artwork><![CDATA[
    Grin Grin Fire Globe  ->  Fire Globe
    (U+1F600 U+1F600 U+1F525 U+1F30D  ->  U+1F525 U+1F30D)
]]></artwork>
      </section>
    </section>

    <section anchor="security">
      <name>Security Considerations</name>
      <ul>
        <li>
          The Eggplant Requirement provides a new, highly visible
          layer of content classification at the addressing level.
          However, it relies on operator honesty, which historically
          has not been the strongest attribute of the internet.
        </li>
        <li>
          An attacker could theoretically prepend U+1F346 to any
          address to trigger parental control filters, effectively
          denial-of-service-ing legitimate services. This is known as
          an "Eggplant Injection Attack" (EIA).
        </li>
        <li>
          Emoji rendering varies across platforms. An address that
          appears as a friendly U+1F431 (Cat Face) on iOS may render
          as a terrifying feline on Samsung devices. This is
          considered a feature, not a bug.
        </li>
        <li>
          Autocorrect systems on mobile devices may substitute emoji
          during manual address entry, potentially routing traffic to
          unintended destinations. Operators are advised not to
          configure BGP sessions via iMessage.
        </li>
      </ul>
    </section>

    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests the following from IANA:</t>
      <ul>
        <li>
          Registration of the EN6 address format in the "IPv6 Address
          Text Representations" registry.
        </li>
        <li>
          Creation of the "Emoji-Hex Mapping Table" registry.
        </li>
        <li>
          Establishment of the IANA Eggplant Disambiguation Committee
          (IEDC), with at least one member who can keep a straight
          face.
        </li>
        <li>
          Reservation of the U+1F346 prefix for content classification
          purposes. Future prefixes under consideration include
          U+1F3B0 (gambling), U+1F9C0 (French government services),
          and U+1F480 (deprecated services).
        </li>
      </ul>
    </section>

  </middle>

  <back>

    <references>
      <name>References</name>

      <references>
        <name>Normative References</name>

        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>

        <reference anchor="RFC4291" target="https://www.rfc-editor.org/info/rfc4291">
          <front>
            <title>IP Version 6 Addressing Architecture</title>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <date month="February" year="2006"/>
          </front>
          <seriesInfo name="RFC" value="4291"/>
          <seriesInfo name="DOI" value="10.17487/RFC4291"/>
        </reference>

        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>

        <reference anchor="RFC8200" target="https://www.rfc-editor.org/info/rfc8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>

      </references>

      <references>
        <name>Informative References</name>

        <reference anchor="RFC5952" target="https://www.rfc-editor.org/info/rfc5952">
          <front>
            <title>A Recommendation for IPv6 Address Text Representation</title>
            <author fullname="S. Kawamura" initials="S." surname="Kawamura"/>
            <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
            <date month="August" year="2010"/>
          </front>
          <seriesInfo name="RFC" value="5952"/>
          <seriesInfo name="DOI" value="10.17487/RFC5952"/>
        </reference>

        <reference anchor="UNICODE" target="https://www.unicode.org/versions/latest/">
          <front>
            <title>The Unicode Standard</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>

      </references>
    </references>

    <section anchor="acknowledgments" numbered="false">
      <name>Acknowledgments</name>
      <t>
        The author would like to thank the Unicode Consortium for
        making this possible, the IETF for its tradition of April 1st
        RFCs that inspired this work, and his cat (U+1F431, hex value
        4) for walking across the keyboard at a critical moment during
        drafting.
      </t>
    </section>

  </back>
</rfc>
