RFC 9361
ICANN Trademark Clearinghouse (TMCH) Functional Specifications
ICANN Trademark Clearinghouse (TMCH) Functional Specifications ๐
- RFC 9361 ๐ฆ, a Request for Comments
- Stream: Independent Submission โจ
- Author: G. Lozano, ICANN ๐
- Category: Informational ๐ธ
- Date: March 2023 ๐
- ISSN: 2070-1721 ๐
- Obsoletes / Updates: the title block doesn't list anything this one obsoletes or updates ๐ซถ
Abstract
okay so this doc lays out the requirements, the architecture, and the interfaces between the ICANN Trademark Clearinghouse (TMCH) and Domain Name Registries, and also between the TMCH and Domain Name Registrars. The whole point is to get domain names provisioned and managed during the Sunrise and Trademark Claims Periods ๐ฅ
Status of This Memo
This document is not an Internet Standards Track specification. It's published for informational purposes ๐
This is a contribution to the RFC Series, independent of any other RFC stream. The RFC Editor chose to publish it at their discretion, and they make no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not candidates for any level of Internet Standard, see Section 2 of RFC 7841 ๐
Information about the current status of this document, any errata, and how to give feedback on it can be found at https://www.rfc-editor.org/info/rfc9361 ๐ง
Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved โจ
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as in effect on the date this document was published. Please read these carefully, because they spell out your rights and restrictions with respect to this document ๐
Table of Contents ๐
1. Introduction
2. Terminology
3. Glossary
4. Architecture
4.1. Sunrise Period
4.2. Trademark Claims Period
4.3. Interfaces
4.3.1. hv
4.3.2. vd
4.3.3. dy
4.3.4. tr
4.3.5. ry
4.3.6. dr
4.3.7. yd
4.3.8. dv
4.3.9. vh
4.3.10. vs
4.3.11. sy
4.3.12. sr
4.3.13. vc
4.3.14. cy
4.3.15. cr
5. Process Descriptions
5.1. Bootstrapping
5.1.1. Bootstrapping for Registries
5.1.1.1. Credentials
5.1.1.2. IP Addresses for Access Control
5.1.1.3. ICANN TMCH Trust Anchor
5.1.1.4. TMDB PGP Key
5.1.2. Bootstrapping for Registrars
5.1.2.1. Credentials
5.1.2.2. IP Addresses for Access Control
5.1.2.3. ICANN TMCH Trust Anchor
5.1.2.4. TMDB PGP Key
5.2. Sunrise Period
5.2.1. Domain Name Registration
5.2.2. Sunrise Domain Name Registration by Registries
5.2.3. TMDB Sunrise Services for Registries
5.2.3.1. SMD Revocation List
5.2.3.2. TMV Certificate Revocation List (CRL)
5.2.3.3. Notice of Registered Domain Names (NORDN)
5.2.4. Sunrise Domain Name Registration by Registrars
5.2.5. TMDB Sunrise Services for Registrars
5.3. Trademark Claims Period
5.3.1. Domain Registration
5.3.2. Trademark Claims Domain Name Registration by Registries
5.3.3. TMDB Trademark Claims Services for Registries
5.3.3.1. Domain Name Label (DNL) List
5.3.3.2. Notice of Registered Domain Names (NORDN)
5.3.4. Trademark Claims Domain Name Registration by Registrars
5.3.5. TMDB Trademark Claims Services for Registrars
5.3.5.1. Claims Notice Information Service (CNIS)
5.4. Qualified Launch Program (QLP) Period
5.4.1. Domain Registration
5.4.2. TMDB QLP Services for Registries
5.4.2.1. Sunrise List (SURL)
6. Data Format Descriptions
6.1. Domain Name Label (DNL) List
6.2. SMD Revocation List
6.3. List of Registered Domain Names (LORDN) File
6.3.1. LORDN Log File
6.3.1.1. LORDN Log Result Codes
6.4. Signed Mark Data (SMD) File
6.5. Trademark Claims Notice (TCN)
6.6. Sunrise List (SURL)
7. Formal Syntax
7.1. Trademark Claims Notice (TCN)
8. IANA Considerations
9. Security Considerations
10. Privacy Considerations
11. References
11.1. Normative References
11.2. Informative References
Acknowledgements
Author's Address
1. Introduction โจ
Domain Name Registries can run in special modes for certain periods, which lets Trademark Holders protect their rights while a Top-Level Domain (TLD) is being introduced ๐ฆ
Along with the introduction of new generic TLDs (gTLDs), two special modes came into effect:
- Sunrise Period: the Sunrise Period gives Trademark Holders an early chance to register domain names that match their marks, before names are open to the general public ๐
- Trademark Claims Period: the Trademark Claims Period comes right after the Sunrise Period and lasts for at least the first 90 days of an initial operating period of general registration. During it, anyone trying to register a domain name that matches a mark recorded in the ICANN Trademark Clearinghouse (TMCH) gets a notification showing the relevant mark information ๐
This document describes the requirements, the architecture, and the interfaces between the ICANN TMCH and Domain Name Registries (called "Registries" in the rest of the document), as well as between the ICANN TMCH and Domain Name Registrars (called "Registrars" in the rest of the document). It covers provisioning and managing domain names during the Sunrise and Trademark Claims Periods ๐
For any date and/or time indications, Coordinated Universal Time (UTC) applies โฐ
2. Terminology ๐
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. Bestie, these capitals are doing a lot of work, so keep an eye on them ๐
XML is case sensitive. Unless stated otherwise, XML specifications and examples in this document MUST be interpreted in the character case presented, so you can build a conforming implementation ๐ง
"tmNotice-1.0" is short for "urn:ietf:params:xml:ns:tmNotice-1.0". The XML namespace prefix "tmNotice" is used, but implementations MUST NOT depend on it. Instead they should use a proper namespace-aware XML parser and serializer to interpret and output the XML documents ๐ซถ
Extensible Markup Language (XML) 1.0, as described in [W3C.REC-xml-20081126], and XML Schema notation, as described in [W3C.REC-xmlschema-1-20041028] and [W3C.REC-xmlschema-2-20041028], are used in this specification ๐
3. Glossary โจ
okay so this is the glossary bit, and it's lowkey my favourite because it's where all the acronyms get explained ๐ง here's the tea:
- Backend Registry Operator: an entity that manages (a part of) the technical infrastructure for a Registry Operator. The Registry Operator may also be the Backend Registry Operator. ๐
- CA: Certification Authority. See [RFC5280]. ๐
- CNIS: Claims Notice Information Service. This service provides Trademark Claims Notices (TCNs) to Registrars. ๐ฌ
- CRC32: Cyclic Redundancy Check. This algorithm is used in the ISO 3309 standard and in Section 8.1.1.6.2 of ITU-T recommendation V.42. ๐งฎ
- CRL: Certificate Revocation List. See [RFC5280]. ๐
- CSV: Comma-Separated Values. See [RFC4180]. ๐
- datetime: Date and time. The date and time are specified following the standard specification "Date and Time on the Internet: Timestamps". See [RFC3339]. ๐ฐ๏ธ
- DN: Domain Name. See [RFC8499]. ๐
- DNL: Domain Name Label. The DNL is an A-label or a Non-Reserved LDH (NR-LDH) label. See [RFC5890]. ๐ท๏ธ
- DNL List: a list of DNLs that are covered by a PRM. ๐
- DNROID: DN Repository Object IDentifier. This identifier is assigned by the Registry to each DN object that unequivocally identifies said DN object. For example, if a new DN object is created for a name that existed in the past, the DN objects will have different DNROIDs. ๐
- DNS: Domain Name System. See [RFC8499]. ๐บ๏ธ
- Effective Allocation: a DN is considered effectively allocated when the DN object for the DN has been created in the SRS of the Registry and has been assigned to the effective user. A DN object in status
pendingCreateor any other status that precedes the first time a DN is assigned to an end user is not considered an effective allocation. A DN object created internally by the Registry for subsequent delegation to another Registrant is not considered an effective allocation. ๐ฏ - EPP: Extensible Provisioning Protocol. See [RFC8499]. ๐ ๏ธ
- FQDN: Fully Qualified Domain Name. See [RFC8499]. ๐งพ
- HTTP: Hypertext Transfer Protocol. See [RFC9110]. ๐ธ
- HTTPS: HTTP over TLS (Transport Layer Security). See [RFC9110]. ๐
- ICANN TMCH: a central repository for information to be authenticated, stored, and disseminated, pertaining to the rights of TMHs. The ICANN TMCH is split into two functions: TMV and TMDB (see below). There could be several entities performing the TMV function but only one entity performing the TMDB function. ๐๏ธ
- ICANN TMCH-CA: the Certification Authority (CA) for the ICANN TMCH. This CA is operated by ICANN. The public key for this CA is the trust anchor used to validate the identity of each TMV. ๐
- IDN: Internationalized Domain Name. See [RFC8499]. ๐
- Lookup Key: a random string of up to 51 characters from the set
[a-zA-Z0-9/]to be used as the lookup key by Registrars to obtain the TCN using the CNIS. Lookup keys are unique and are related to one DNL only. ๐๏ธ - LORDN: List of Registered Domain Names. This is the list of effectively allocated DNs matching a DNL of a PRM. Registries will upload this list to the TMDB (during the NORDN process). ๐
- Matching Rules: some trademarks entitled to inclusion in the TMDB include characters that are impermissible in the DNS as a DNL. The TMV changes (using the ICANN TMCH Matching Rules [MatchingRules]) certain DNS-impermissible characters in a trademark into DNS-permissible equivalent characters. โ๏ธ
- NORDN: Notification of Registered Domain Names. This is the process by which Registries upload their recent LORDN to the TMDB. ๐ค
- PGP: Pretty Good Privacy. See [RFC4880]. ๐
- PKI: Public Key Infrastructure. See [RFC5280]. ๐ฐ
- PRM: Pre-Registered Mark. A mark that has been pre-registered with the ICANN TMCH. โญ
- QLP Period: Qualified Launch Program Period. During this optional period, a special process applies to DNs matching the Sunrise List (SURL) and/or the DNL List to ensure that TMHs are informed of a DN matching their PRM. ๐
- Registrant: See the definition of Registrant in [RFC8499]. ๐
- Registrar: Domain Name Registrar. See [RFC8499]. ๐
- Registry: Domain Name Registry, Registry Operator. See [RFC8499]. A Registry Operator is the contracting party with ICANN for the TLD. ๐ข
- SMD: Signed Mark Data. A cryptographically signed token issued by the TMV to the TMH to be used in the Sunrise Period to apply for a DN that matches a DNL of a PRM. See [RFC7848]. An SMD generated by an ICANN-approved Trademark Validator (TMV) contains both the signed token and the TMV's PKIX certificate. โ๏ธ
- SMD File: a file containing the SMD (see above) and some human-readable data. The latter is usually ignored in the processing of the SMD File. See Section 6.4. ๐
- SMD Revocation List: the SMD Revocation List is used by Registries (and optionally by Registrars) during the Sunrise Period to ensure that an SMD is still valid (i.e., not revoked). The SMD Revocation List has a similar function as CRLs used in PKI. ๐ซ
- SRS: Shared Registration System. See [ICANN-GTLD-AGB-20120604]. ๐๏ธ
- Sunrise Period: during this period, DNs matching a DNL of a PRM can be exclusively obtained by the respective TMHs. For DNs matching a PRM, a special process applies to ensure that TMHs are informed on the effective allocation of a DN matching their PRM. ๐
- SURL: Sunrise List. The list of DNLs that are covered by a PRM and are eligible for Sunrise. ๐
- TCN: Trademark Claims Notice, Claims Notice, Trademark Notice. A Trademark Claims Notice consists of one or more Trademark Claims and is provided to prospective Registrants of DNs. ๐
- TCNID: Trademark Claims Notice Identifier. An element of the Trademark Claims Notice (see above), identifying said TCN. The Trademark Claims Notice Identifier is specified in the element
<tmNotice:id>. ๐ชช - TLD: Top-Level Domain Name. See [RFC8499]. ๐
- TMDB: Trademark Clearinghouse Database. This serves as a database of the ICANN TMCH to provide information to the gTLD Registries and Registrars to support Sunrise or Trademark Claims services. There is only one TMDB in the ICANN TMCH that concentrates the information about the "verified" trademark records from the TMVs. ๐๏ธ
- TMH: Trademark Holder. The person or organization owning rights on a mark. ๐
- TMV: Trademark Validator, Trademark Validation organization. An entity authorized by ICANN to authenticate and validate registrations in the TMDB, ensuring the marks qualify as registered, are court-validated marks, or are protected by statute or treaty. This entity would also be asked to ensure that proof of use of marks is provided, which can be demonstrated by furnishing a signed declaration and one specimen of current use. ๐ง
- Trademark, Mark: marks are used to claim exclusive properties of products or services. A mark is typically a name, word, phrase, logo, symbol, design, image, or a combination of these elements. For the scope of this document, only textual marks are relevant. ๐
- Trademark Claims, Claims: provides information to enhance the understanding of the trademark rights being claimed by the TMH. ๐ฌ
- Trademark Claims Period: during this period, a special process applies to DNs matching the DNL List to ensure that TMHs are informed of a DN matching their PRM. For DNs matching the DNL List, Registrars show a TCN to prospective Registrants that has to be acknowledged before effective allocation of the DN. ๐
- UTC: Coordinated Universal Time. This is maintained by the Bureau International des Poids et Mesures (BIPM). See [RFC3339]. โฑ๏ธ
4. Architecture ๐๏ธ
4.1. Sunrise Period ๐
SMD hand over (out-of-band)
..............................................
: :
: .'''''''''''''''''''. :
: . ICANN TMCH . :
: ..................... :
v . . :
.------------. . .-------------. . hv .-----.
| Registrant | . | TMV |<---------->| TMH |
'------------' . '-------------' . vh '-----'
| . | ^ \ .
| . | | \.
tr | . vs | | dv \
| . | vd | .\
v . v v . \
.-----------. sr . .---------. . \
.->| Registrar |<..........| | . \
: '-----------' . | | . \
: | sy . | T | . \
: ry | .------------| M | . vc \
: | | . | D | . \
: v v . | B | . v
: .-----------. . yd | | . .---------------.
: | Registry |---------->| | . | ICANN TMCH-CA |
: '-----------' . '---------' . '---------------'
: ^ . . | :
: | ''''''''''''''''''' | :
: | cy | :
: cr '-----------------------------------------' :
:......................................................:
Figure 1: Architecture of the Sunrise Period ๐ผ๏ธ
Figure 1 depicts the architecture of the Sunrise Period, including all the actors and interfaces. It's giving full cast energy, bestie ๐ญ
4.2. Trademark Claims Period ๐
.''''''''''''''.
. ICANN TMCH .
................
. .
.------------. . .-------. . hv .-----.
| Registrant | . | TMV |<----------->| TMH |
'------------' . '-------' . vh '-----'
| . ^ .
| . | dv .
tr | . vd | .
v . v .
.-----------. dr . .-------. .
| Registrar |<--------| | .
'-----------' . | T | .
ry | . | M | .
v . | D | .
.----------. dy . | B | .
| Registry |<------->| | .
'----------' yd . '-------' .
. .
''''''''''''''
Figure 2: Architecture of the Trademark Claims Period ๐ผ๏ธ
Figure 2 depicts the architecture of the Trademark Claims Period, including all the actors and interfaces. Same cast, different vibe ๐
4.3. Interfaces ๐
The subsections below contain short descriptions of each interface to provide an overview of the architecture. More detailed descriptions of the relevant interfaces are in Section 5. ๐ง
4.3.1. hv ๐ค
The TMH registers a mark with a TMV via the hv interface. โ๏ธ
After successful registration of the mark, the TMV makes a Signed Mark Data (SMD) File available (see Section 6.4) to the TMH to be used during the Sunrise Period. ๐
The specifics of the hv interface are beyond the scope of this document. ๐
4.3.2. vd ๐๏ธ
After successful registration of the mark, the TMV ensures the TMDB inserts the corresponding DNLs and marks information into the database via the vd interface. ๐พ
The specifics of the vd interface are beyond the scope of this document. ๐ซถ
4.3.3. dy ๐
bestie, during the Trademark Claims Period the Registry grabs the newest DNL List from the TMDB over the dy interface at regular intervals ๐. The protocol on dy is HTTPS ๐.
This interface is not relevant during the Sunrise Period, so you can ignore it then ๐ .
4.3.4. tr ๐ฆ
The Registrant talks to the Registrar over the tr interface ๐ฌ.
The specifics of the tr interface are beyond the scope of this document ๐.
4.3.5. ry ๐ธ
The Registrar talks to the Registry over the ry interface. The ry interfaces are typically implemented in EPP โจ.
4.3.6. dr ๐ง
During the Trademark Claims Period, the Registrar grabs the TCN from the TMDB (which then gets shown to the Registrant over the tr interface) through the dr interface. The protocol for fetching the TCN is HTTPS ๐.
This interface is not relevant during the Sunrise Period ๐.
4.3.7. yd ๐ซถ
During the Sunrise Period, the Registry tells the TMDB, over the yd interface, about every DN that's effectively allocated ๐ฃ.
During the Trademark Claims Period, the Registry tells the TMDB over the yd interface about every DN that's effectively allocated and matched an entry in the DNL List the Registry downloaded earlier when the DN was created ๐ฏ.
The protocol on the yd interface is HTTPS ๐.
4.3.8. dv ๐
The TMDB tells the TMV, over the dv interface, about every effectively allocated DN that matches a mark registered by that TMV ๐.
The specifics of the dv interface are beyond the scope of this document ๐.
4.3.9. vh ๐
The TMV tells the TMH over the vh interface after an effectively allocated DN matches a PRM of this THM ๐.
The specifics of the vh interface are beyond the scope of this document ๐.
4.3.10. vs ๐
The TMV asks the TMDB to add revoked SMDs to the SMD Revocation List ๐.
The specifics of the vs interface are beyond the scope of this document ๐.
This interface is not relevant during the Trademark Claims Period ๐ .
4.3.11. sy ๐
During the Sunrise Period, the Registry fetches the most recent SMD Revocation List from the TMDB over the sy interface at regular intervals. The protocol on the sy interface is HTTPS ๐.
This interface is not relevant during the Trademark Claims Period ๐ .
4.3.12. sr โญ
During the Sunrise Period, the Registrar may fetch the most recent SMD Revocation List from the TMDB over the sr interface. The protocol on the sr interface is the same as on the sy interface (see above), i.e., HTTPS ๐.
This interface is not relevant during the Trademark Claims Period ๐ .
4.3.13. vc ๐
The TMV registers its public key and asks to revoke an existing key with the ICANN TMCH-CA over the vc interface ๐.
The specifics of the vc interface are beyond the scope of this document, but it involves personal communication between the operators of the TMV and the operators of the ICANN TMCH-CA ๐ฃ๏ธ.
This interface is not relevant during the Trademark Claims Period ๐ .
4.3.14. cy ๐ฅ
During the Sunrise Period, the Registry fetches the most recent TMV CRL file from the ICANN TMCH-CA over the cy interface at regular intervals. The TMV CRL is used to validate TMV certificates. The protocol on the cy interface is HTTPS ๐.
This interface is not relevant during the Trademark Claims Period ๐ .
4.3.15. cr ๐ท
During the Sunrise Period, the Registrar optionally fetches the most recent TMV CRL file from the ICANN TMCH-CA over the cr interface at regular intervals. The TMV CRL is used to validate TMV certificates. The protocol on the cr interface is HTTPS ๐.
This interface is not relevant during the Trademark Claims Period ๐ .
5. Process Descriptions โจ
5.1. Bootstrapping ๐ฅพ
5.1.1. Bootstrapping for Registries
5.1.1.1. Credentials ๐
Each Registry Operator gets authentication credentials from the TMDB, to be used:
- during the Sunrise Period to fetch the SMD Revocation List from the TMDB over the sy interface (Section 4.3.11),
- during the Trademark Claims Period to fetch the DNL List from the TMDB over the dy interface (Section 4.3.3), and
- during the NORDN process to notify the LORDN to the TMDB over the yd interface (Section 4.3.7).
Note: Credentials are created per TLD and handed to the Registry Operator ๐งพ.
5.1.1.2. IP Addresses for Access Control ๐ก๏ธ
Each Registry Operator MUST provide the TMDB with all IP addresses that will be used to:
- fetch the SMD Revocation List over the sy interface (Section 4.3.11),
- fetch the DNL List from the TMDB over the dy interface (Section 4.3.3), and
- upload the LORDN to the TMDB over the yd interface (Section 4.3.7).
This access restriction MAY be applied by the TMDB on top of HTTP Basic access authentication (see [RFC7617]). For credentials to be used, see Section 5.1.1.1 ๐.
The TMDB MAY limit the number of IP addresses accepted per Registry Operator ๐ฆ.
5.1.1.3. ICANN TMCH Trust Anchor ๐
Each Registry Operator MUST fetch the PKIX certificate [RFC5280] of the ICANN TMCH-CA (Trust Anchor) from <https://ca.icann.org/tmch.crt>, to be used:
- during the Sunrise Period to validate the TMV certificates and the TMV CRL.
5.1.1.4. TMDB PGP Key ๐๏ธ
The TMDB MUST provide each Registry Operator with the public portion of the PGP Key the TMDB uses, to be used:
- during the Sunrise Period to perform integrity checking of the SMD Revocation List fetched from the TMDB over the sy interface (Section 4.3.11), and
- during the Trademark Claims Period to perform integrity checking of the DNL List fetched from the TMDB over the dy interface (Section 4.3.3).
5.1.2. Bootstrapping for Registrars
5.1.2.1. Credentials ๐
Each ICANN-Accredited Registrar gets authentication credentials from the TMDB, to be used:
- during the Sunrise Period to (optionally) fetch the SMD Revocation List from the TMDB over the sr interface (Section 4.3.12), and
- during the Trademark Claims Period to fetch TCNs from the TMDB over the dr interface (Section 4.3.6).
5.1.2.2. IP Addresses for Access Control ๐ก๏ธ
Each Registrar MUST provide the TMDB with all IP addresses that will be used to:
- fetch the SMD Revocation List over the sr interface (Section 4.3.12), and
- fetch TCNs over the dr interface (Section 4.3.6).
This access restriction MAY be applied by the TMDB on top of HTTP Basic access authentication (for credentials to be used, see Section 5.1.2.1) ๐.
The TMDB MAY limit the number of IP addresses accepted per Registrar ๐ฆ.
5.1.2.3. ICANN TMCH Trust Anchor ๐
Registrars MAY fetch the PKIX certificate of the ICANN TMCH-CA (Trust Anchor) from <https://ca.icann.org/tmch.crt>, to be used:
- during the Sunrise Period to (optionally) validate the TMV certificates and TMV CRL.
5.1.2.4. TMDB PGP Key ๐๏ธ
Registrars MUST receive the public portion of the PGP Key the TMDB uses from the TMDB administrator, to be used:
- during the Sunrise Period to (optionally) perform integrity checking of the SMD Revocation List fetched from the TMDB over the sr interface (Section 4.3.12).
5.2. Sunrise Period ๐
5.2.1. Domain Name Registration ๐
.------------. .-----------. .----------.
| Registrant | | Registrar | | Registry |
'------------' '-----------' '----------'
| | |
| Request DN | |
| registration | |
| (with SMD) | |
|---------------->| Check DN availability |
| |---------------------------->|
| | |
| | DN unavailable .-------------.
| DN unavailable |<--------------------( DN available? )
|<----------------| no '-------------'
| | | yes
| | DN available |
| |<----------------------------|
| | |
| | Request DN registration |
| | (with SMD) |
| |---------------------------->|
| | |
| | .------------------------------.
| | | DN registration validation / |
| | | SMD validation |
| | '------------------------------'
| | |
| Registration |.-----------. Error .----------------------.
| error || TRY AGAIN |<-----( Validation successful? )
|<----------------|| / ABORT | no '----------------------'
| |'-----------' | yes
| | |
| | DN registered |
| DN registered |<----------------------------|
|<----------------| |
| | |
Figure 3: Domain Name Registration during the Sunrise Period
Figure 3 shows a synchronous DN registration workflow (usually called first come first served) โก.
5.2.2. Sunrise Domain Name Registration by Registries ๐ง
Registries MUST perform a minimum set of checks to verify each DN registration during the Sunrise Period when a registration request comes in over the ry interface (Section 4.3.5). If any of these checks fail, the Registry MUST abort the registration. Each of these checks MUST be performed before the DN is effectively allocated ๐ซ.
For asynchronous registrations (e.g., auctions), the minimum set of checks MAY be performed when the intermediate object (e.g., a DN application) used for DN registration is created. If the minimum set of checks is performed when creating the intermediate object (e.g., a DN application), a Registry MAY effectively allocate the DN without performing the minimum set of checks again ๐๏ธ.
When performing the minimum set of checks, Registries MUST verify that:
- an SMD has been received from the Registrar, along with the DN registration,
- the certificate of the TMV has been correctly signed by the ICANN TMCH-CA (the certificate of the TMV is contained within the SMD),
- the datetime when the validation is done is within the validity period of the TMV certificate,
- the certificate of the TMV is not listed in the TMV CRL file specified in the CRL distribution point of the TMV certificate,
- the signature of the SMD (signed with the TMV certificate) is valid,
- the datetime when the validation is done is within the validity period of the SMD based on
<smd:notBefore>and<smd:notAfter>elements, - the SMD has not been revoked, i.e., is not contained in the SMD Revocation List, and
- the leftmost DNL of the DN being effectively allocated matches one of the label (
<mark:label>) elements in the SMD. For example, if the DNxn--mgbachtv.xn--mgbh0fbis being effectively allocated, the leftmost DNL would bexn--mgbachtv๐.
These procedures apply to all DN effective allocations at the second level, as well as to all other levels subordinate to the TLD that the Registry accepts registrations for ๐ .
5.2.3. TMDB Sunrise Services for Registries ๐
5.2.3.1. SMD Revocation List ๐ฅ
Okay so the TMDB MUST publish a brand new SMD Revocation List twice a day, by 00:00:00 and 12:00:00 UTC ๐โจ
Registries MUST refresh to the latest version of the SMD Revocation List at least once every 24 hours ๐๐
Note: The SMD Revocation List will be the same regardless of the TLD. If a Backend Registry Operator manages the infrastructure of several TLDs, the Backend Registry Operator could refresh the SMD Revocation List once every 24 hours, and the SMD Revocation List could be used for all the TLDs managed by the Backend Registry Operator. ๐ธ
.----------. .------.
| Registry | | TMDB |
'----------' '------'
| |
.----------------. |
| Periodically, | |
| at least | |
| every 24 hours | |
'----------------' |
| |
|----------------------------------------------------->|
| Download the latest SMD Revocation List |
|<-----------------------------------------------------|
| |
| |
Figure 4: Update of the SMD Revocation List
Figure 4 shows the whole vibe of the Registry going to the TMDB to grab the latest SMD Revocation List, and it's always the Registry that starts it ๐ฆ
5.2.3.2. TMV Certificate Revocation List (CRL) ๐
Registries MUST refresh their local copy of the TMV CRL file at least once every 24 hours, using the CRL distribution point specified in the TMV certificate ๐
Operationally, the TMV CRL file and CRL distribution point are the same for all TMVs and (at publication of this document) are located at <http://crl.icann.org/tmch.crl> ๐
Note: The TMV CRL file will be the same regardless of the TLD. If a Backend Registry Operator manages the infrastructure of several TLDs, the Backend Registry Operator could refresh the TMV CRL file once every 24 hours, and the TMV CRL file could be used for all the TLDs managed by the Backend Registry Operator. ๐ซถ
.----------. .---------------.
| Registry | | ICANN TMCH-CA |
'----------' '---------------'
| |
.----------------. |
| Periodically, | |
| at least | |
| every 24 hours | |
'----------------' |
| |
|-------------------------------------------->|
| Download the latest TMV CRL file |
|<--------------------------------------------|
| |
| |
Figure 5: Update of the TMV CRL File
Figure 5 is basically the same energy as Figure 4, except this time the Registry is downloading the latest TMV CRL file ๐ง
5.2.3.3. Notice of Registered Domain Names (NORDN) ๐ฌ
The Registry MUST send a LORDN file containing DNs effectively allocated to the TMDB (over the yd interface; see Section 4.3.7) ๐
The effective allocation of a DN MUST be reported by the Registry to the TMDB within 26 hours of the effective allocation of such DN โฐ
The Registry MUST create and upload a LORDN file in case there are effective allocations in the SRS that have not been successfully reported to the TMDB in a previous LORDN file ๐
Based on the timers used by TMVs and the TMDB, the RECOMMENDED maximum frequency to upload LORDN files from the Registries to the TMDB is every 3 hours โจ
It is RECOMMENDED that Registries try to upload at least two LORDN files per day to the TMDB, with enough time in between, in order to have time to fix problems reported in the LORDN file ๐
The Registry SHOULD upload a LORDN file only when the previous LORDN file has been processed by the TMDB and the related LORDN Log file has been downloaded and processed by the Registry ๐
The Registry MUST upload LORDN files for DNs that are effectively allocated during the Sunrise or Trademark Claims Periods (same applies to DNs that are effectively allocated using applications created during the Sunrise or Trademark Claims Periods in case of using asynchronous registrations) ๐
The yd interface (Section 4.3.7) MUST support at least one (1) and MAY support up to ten (10) concurrent connections from each IP address registered by a Registry Operator to access the service ๐ธ
The TMDB MUST process each uploaded LORDN file and make the related log file available for Registry download within 30 minutes of the finalization of the upload โก
.----------. .------. .-----. .-----.
| Registry | | TMDB | | TMV | | TMH |
'----------' '------' '-----' '-----'
| | | |
.------------------. | | |
| Periodically | | | |
| upload LORDN | | | |
| file | | | |
'------------------' | | |
| | | |
.--------->| Upload LORDN | | |
| |-------------------->| | |
| | | | |
| | .-------------------------. | |
| | | Verify each domain name | | |
| | | in the uploaded file | | |
| | | (within 30') | | |
| | '-------------------------' | |
| | | ._____.| |
| | Download Log file | | END || |
| |<--------------------| '-----'| |
| | | ^ | |
| .-----------------. .---------------. | | |
| | Check whether | / everything fine \ no | | |
| | Log file | ( (i.e., no errors )---' | |
| | contains errors | \ in Log file )? / | |
| '-----------------' '---------------' | |
| | | yes | |
| .---------------. | | |
| / everything fine \ yes | | |
|( (i.e., no errors )-----. | Notify TMVs | |
| \ in Log file )? / | | on the LORDN | |
| '---------------' | | pre-registered | |
| | no v | with said TMV | |
| .----------------. .------. |--------------->| |
'-| Correct Errors | | DONE | | | |
'----------------' '------' | | Notify each |
| | | affected TMH |
| | |-------------->|
| | | |
Figure 6: Notification of the Registered Domain Name
Figure 6 is the whole notification saga: the Registry uploads, the TMDB checks, the Registry grabs the log and fixes any errors, and then the TMVs and TMHs get the news ๐จโจ
The format used for the LORDN is described in Section 6.3 ๐
5.2.4. Sunrise Domain Name Registration by Registrars ๐งพ
Registrars MAY choose to run the checks for verifying DN registrations, as performed by the Registries (see Section 5.2.2), before sending the command to register a DN ๐
5.2.5. TMDB Sunrise Services for Registrars ๐ฆ
The processes described in Sections 5.2.3.1 and 5.2.3.2 are also available for Registrars to optionally validate the SMDs received ๐ซถ
5.3. Trademark Claims Period ๐
5.3.1. Domain Registration ๐
.------------. .-----------. .----------. .------.
| Registrant | | Registrar | | Registry | | TMDB |
'------------' '-----------' '----------' '------'
| Request DN | | |
| registration | | |
|--------------->| Check DN availability | |
| |--------------------------->| |
| | DN unavailable .-------------. |
| DN unavailable |<-------------------( DN available? ) |
|<---------------| no '-------------' |
| | DN available | yes |
| |<---------------------------| |
| | Request lookup key | |
| |--------------------------->| |
| |.__________. .---------. |
| || CONTINUE | / Does DN \ |
| || NORMALLY |<--------( match DNL ) |
| |'----------' no \ of PRM? / |
| | '---------' |
| | Lookup key | yes |
| |<----------------------------' |
| | |
.-----. | | Request TCN |
|ABORT| | Display |---------------------------------------->|
'-----' | Claims | Return TCN |
^ | Notice |<----------------------------------------|
| no |<---------------| |
| .------. yes | |
'-( Ack? )----------->| Register DN (with TCNID) | |
'------' |--------------------------->| |
| Registration | Error .----------------------. |
| error |<-------------( Validation successful? ) |
|<---------------| no '----------------------' |
| | | yes |
| | DN registered | |
| DN registered |<---------------------------| |
|<---------------| | |
Figure 7: Domain Name Registration during the Trademark Claims Period
Figure 7 is the Trademark Claims registration dance, and it's a synchronous DN registration workflow (usually called first come first served) ๐๐ฅ
5.3.2. Trademark Claims Domain Name Registration by Registries โจ
okay so during the Trademark Claims Period, Registries have two main jobs ๐
- Registries MUST provide Registrars (over the ry interface; see Section 4.3.5) the lookup key used to retrieve the TCNs for DNs that match the DNL List. ๐
- Registries MUST provide the lookup key only when queried about a specific DN. ๐ฏ
Here's where the minimum set of checks comes in ๐ง
- For each DN matching a DNL of a PRM, Registries MUST perform a minimum set of checks for verifying DN registrations during the Trademark Claims Period upon reception of a registration request over the ry interface (Section 4.3.5). If any of these checks fail, the Registry MUST abort the registration. Each of these checks MUST be performed before the DN is effectively allocated. ๐ซ
- In case of asynchronous registrations (e.g., auctions), the minimum set of checks MAY be performed when creating the intermediate object (e.g., a DN application) used for DN effective allocation. If the minimum set of checks is performed when creating the intermediate object (e.g., a DN application), a Registry MAY effectively allocate the DN without performing the minimum set of checks again. โณ
- Performing the minimum set of checks, Registries MUST verify that: ๐
- The TCNID (
<tmNotice:id>), expiration datetime (<tmNotice:notAfter>), and acceptance datetime of the TCN have been received from the Registrar, along with the DN registration.
- The TCNID (
If the three elements mentioned above are not provided by the Registrar for a DN matching a DNL of a PRM, but the DNL was inserted (or reinserted) for the first time into the DNL List less than 24 hours ago, the registration MAY continue without this data, and the tests listed below are not required to be performed. ๐ฅน
- The TCN has not expired (according to the expiration datetime sent by the Registrar). โ
- The acceptance datetime is within the window of time defined by ICANN policy. In the gTLD round of 2012, Registrars verified that the acceptance datetime was less than or equal to 48 hours in the past, as there were no defined ICANN policies at that time. Implementers should be aware that ICANN policy may define this value in the future. ๐
- The TCN Checksum is computed using the leftmost DNL of the DN being effectively allocated, the expiration datetime provided by the Registrar, and the TMDB Notice Identifier extracted from the TCNID provided by the Registrar. Verify that the computed TCN Checksum matches the TCN Checksum present in the TCNID. For example, if the DN
xn--mgbachtv.xn--mgbh0fbis being effectively allocated, the leftmost DNL would bexn--mgbachtv. ๐งฎ
These procedures apply to all DN registrations at the second level, as well as to all other levels subordinate to the TLD that the Registry accepts registrations for. ๐
5.3.3. TMDB Trademark Claims Services for Registries ๐
5.3.3.1. Domain Name Label (DNL) List
A new DNL List MUST be published by the TMDB twice a day, by 00:00:00 and 12:00:00 UTC. ๐๐
Registries MUST refresh the latest version of the DNL List at least once every 24 hours. ๐
.----------. .------.
| Registry | | TMDB |
'----------' '------'
| |
.----------------. |
| Periodically, | |
| at least | |
| every 24 hours | |
'----------------' |
| |
|-------------------------------->|
| Download the latest DNL List |
|<--------------------------------|
| |
| |
Figure 8: Update of the DNL List
Figure 8 shows the whole vibe of downloading the latest DNL List, and the Registry is the one who starts it ๐ฅ
Note: The DNL List will be the same regardless of the TLD. If a Backend Registry Operator manages the infrastructure of several TLDs, the Backend Registry Operator could refresh the DNL List once every 24 hours, and the DNL List could be used for all the TLDs managed by the Backend Registry Operator. ๐๏ธ
5.3.3.2. Notice of Registered Domain Names (NORDN)
The NORDN process during the Trademark Claims Period is almost the same as during the Sunrise Period, as defined in Section 5.2.3.3. The difference is that only registrations subject to a Trademark Claim (i.e., at registration time, the name appeared in the current DNL List downloaded by the Registry Operator) are included in the LORDN. ๐ช
5.3.4. Trademark Claims Domain Name Registration by Registrars ๐
For each DN matching a DNL of a PRM, Registrars MUST perform the following steps:
- Use the lookup key received from the Registry to obtain the TCN from the TMDB using the dr interface (Section 4.3.6). Registrars MUST only query for the lookup key of a DN that is available for registration. ๐
- Present the TCN to the Registrant, as described in Exhibit A of [RPM-Requirements]. ๐
- Ask the Registrant for acknowledgement, i.e., the Registrant MUST consent with the TCN, before any further processing. (The transmission of a TCNID to the Registry over the ry interface (Section 4.3.5) implies that the Registrant has expressed their consent with the TCN.) ๐
- Perform the minimum set of checks for verifying DN registrations. If any of these checks fail, the Registrar MUST abort the DN registration. Each of these checks MUST be performed before the registration is sent to the Registry. Performing the minimum set of checks, Registrars MUST verify the following:
- a. The datetime when the validation is done is within the TCN validity based on the
<tmNotice:notBefore>and<tmNotice:notAfter>elements. - b. The leftmost DNL of the DN being effectively allocated matches the label (
<tmNotice:label>) element in the TCN. For example, if the DNxn--mgbachtv.xn--mgbh0fbis being effectively allocated, the leftmost DNL would bexn--mgbachtv. - c. The Registrant has acknowledged (expressed their consent with) the TCN. ๐
- a. The datetime when the validation is done is within the TCN validity based on the
- Record the date and time when the registrant acknowledged the TCN. ๐๏ธ
- Send the registration to the Registry (via the ry interface; see Section 4.3.5) and include the following information:
- TCNID (
<tmNotice:id>) - Expiration date of the TCN (
<tmNotice:notAfter>) - Acceptance datetime of the TCN
- TCNID (
Currently, TCNs are generated twice a day by the TMDB. The expiration date (<tmNotice:notAfter>) of each TCN MUST be set to a value defined by ICANN policy. In the gTLD round of 2012, the TMDB set the expiration value to 48 hours into the future, as there were no defined ICANN policies at that time. Implementers should be aware that ICANN policy may define this value in the future. โฐ
Registrars SHOULD implement a cache of TCNs to minimize the number of queries sent to the TMDB. A cached TCN MUST be removed from the cache after the expiration date of the TCN, as defined by <tmNotice:notAfter>. ๐งน
The TMDB MAY implement rate limiting as one of the protection mechanisms to mitigate the risk of performance degradation. ๐ก๏ธ
5.3.5. TMDB Trademark Claims Services for Registrars ๐ช
5.3.5.1. Claims Notice Information Service (CNIS)
The TCNs are provided by the TMDB online and are fetched by the Registrar via the dr interface (Section 4.3.6). ๐
To get access to the TCNs, the Registrar needs the credentials provided by the TMDB (Section 5.1.2.1) and the lookup key received from the Registry via the ry interface (Section 4.3.5). The dr interface (Section 4.3.6) uses HTTPS with Basic access authentication. ๐
The dr interface (Section 4.3.6) MAY support up to ten (10) concurrent connections from each Registrar. ๐
The URL of the dr interface (Section 4.3.6) is:
https://<tmdb-domain-name>/cnis/<lookupkey>.xml
Note that the "lookupkey" may contain slash characters ("/"). The slash character is part of the URL path and MUST NOT be escaped when requesting the TCN. ๐ฆ
The TLS certificate (HTTPS) used on the dr interface (Section 4.3.6) MUST be signed by a well-know public CA. Registrars MUST perform the certification path validation described in Section 6 of [RFC5280]. Registrars will be authenticated in the dr interface using HTTP Basic access authentication. The dr interface (Section 4.3.6) MUST support HTTPS keep-alive and MUST maintain the connection for up to 30 minutes. ๐ซถ
5.4. Qualified Launch Program (QLP) Period โจ
5.4.1. Domain Registration
okay so during the OPTIONAL Qualified Launch Program (QLP) Period (see [QLP-Addendum]) ๐ , effective allocations of DNs to third parties could require that Registries and Registrars provide Sunrise and/or Trademark Claims services โจ. If required, Registries and Registrars MUST provide Sunrise and/or Trademark Claims services, as described in Sections 5.2 and 5.3 ๐.
here are the effective allocation scenarios, bestie ๐ฆ:
- If the leftmost DNL of the DN being effectively allocated (QLP Name in this section) matches a DNL in the SURL and an SMD is provided, then Registries MUST provide Sunrise Services (see Section 5.2), and the DN MUST be reported in a Sunrise LORDN file during the QLP Period ๐ธ. For example, if the DN
xn--mgbachtv.xn--mgbh0fbis being effectively allocated, the leftmost DNL would bexn--mgbachtv. - If the QLP Name matches a DNL in the SURL but does not match a DNL in the DNL List and an SMD is NOT provided (see Section 2.2 of [QLP-Addendum]), then the DN MUST be reported in a Sunrise LORDN file using the special SMD-id
99999-99999during the QLP Period ๐ง. - If the QLP Name matches a DNL in the SURL and also matches a DNL in the DNL List and an SMD is NOT provided (see Section 2.2 of [QLP-Addendum]), then Registries MUST provide Trademark Claims services (see Section 5.3), and the DN MUST be reported in a Trademark Claims LORDN file during the QLP Period ๐.
- If the QLP Name matches a DNL in the DNL List but does not match a DNL in the SURL, then Registries MUST provide Trademark Claims services (see Section 5.3), and the DN MUST be reported in a Trademark Claims LORDN file during the QLP Period ๐.
The following table lists all the effective allocation scenarios during a QLP Period. It's giving spreadsheet energy ๐๐
+========+==========+=================+==============+==============+
| QLP | QLP | SMD Was | Registry | Registry |
| Name | Name | Provided by the | MUST Provide | MUST Report |
| Match | Match | Potential | Sunrise or | DN |
| in the | in the | Registrant | Trademark | Registration |
| SURL | DNL | | Claims | in <type> |
| | List | | Services | LORDN File |
+========+==========+=================+==============+==============+
| Y | Y | Y | Sunrise | Sunrise |
+--------+----------+-----------------+--------------+--------------+
| Y | N | Y | Sunrise | Sunrise |
+--------+----------+-----------------+--------------+--------------+
| N | Y | -- | Trademark | Trademark |
| | | | Claims | Claims |
+--------+----------+-----------------+--------------+--------------+
| N | N | -- | -- | -- |
+--------+----------+-----------------+--------------+--------------+
| Y | Y | N (see | Trademark | Trademark |
| | | Section 2.2 of | Claims | Claims |
| | | [QLP-Addendum]) | | |
+--------+----------+-----------------+--------------+--------------+
| Y | N | N (see | -- | Sunrise |
| | | Section 2.2 of | | (using |
| | | [QLP-Addendum]) | | special SMD- |
| | | | | id) |
+--------+----------+-----------------+--------------+--------------+
Table 1: QLP Effective Allocation Scenarios
The TMDB MUST provide the following services to Registries during a QLP Period ๐:
- SMD Revocation List (see Section 5.2.3.1)
- NORDN (see Section 5.2.3.3)
- DNL List (see Section 5.3.3.1)
- Sunrise List (SURL) (see Section 5.4.2.1)
The TMDB MUST provide the following services to Registrars during a QLP Period ๐ซถ:
- SMD Revocation List (see Section 5.2.3.1)
- CNIS (see Section 5.3.5.1)
5.4.2. TMDB QLP Services for Registries
5.4.2.1. Sunrise List (SURL)
A new SURL MUST be published by the TMDB twice a day, by 00:00:00 and 12:00:00 UTC โญ.
Registries offering the OPTIONAL QLP Period MUST refresh the latest version of the SURL at least once every 24 hours ๐ญ.
.----------. .------.
| Registry | | TMDB |
'----------' '------'
| |
.----------------. |
| Periodically, | |
| at least | |
| every 24 hours | |
'----------------' |
| |
|------------------------------->|
| Download the latest SURL |
|<-------------------------------|
| |
| |
Figure 9: Update of the SURL
Figure 9 depicts the process of downloading the latest SURL, initiated by the Registry ๐ฅ.
Note: The SURL will be the same regardless of the TLD. If a Backend Registry Operator manages the infrastructure of several TLDs, the Backend Registry Operator could refresh the SURL once every 24 hours, and the SURL could be used for all the TLDs managed by the Backend Registry Operator ๐.
6. Data Format Descriptions โจ
6.1. Domain Name Label (DNL) List
This section defines the format of the list containing every DNL that matches a Pre-Registered Mark (PRM). The list is maintained by the TMDB and downloaded by Registries in regular intervals (see Section 5.3.3.1). The Registries use the DNL List during the Trademark Claims Period to check whether a requested DN matches a DNL of a PRM ๐.
The DNL List contains all the DNLs covered by a PRM present in the TMDB at the datetime that the DNL List is generated.
The DNL List is contained in a CSV-formatted file that has the following structure ๐ฆ:
- first line:
<version>,<DNL List creation datetime>
Where:
<version>: version of the file. This field MUST be 1.<DNL List creation datetime>: date and time in UTC that the DNL List was created.
- second line: a header line, as specified in [RFC4180]
With the header names as follows: DNL,lookup-key,insertion-datetime
- One or more lines with:
<DNL>,<lookup key>,<DNL insertion datetime>
Where:
<DNL>: a Domain Name Label covered by a PRM.<lookup key>: lookup key that the Registry MUST provide to the Registrar. The lookup key has the following format:<YYYY><MM><DD><vv>/<X>/<X>/<X>/<Random bits><Sequential number>, where:YYYY: year that the TCN was generated.MM: zero-padded month that the TCN was generated.DD: zero-padded day that the TCN was generated.vv: version of the TCN; possible values are00and01.X: one hex character. This is the first, second, and third hex character of encoding the<Random bits>in base16, as specified in [RFC4648].Random bits: 144 random bits encoded in base64url, as specified in [RFC4648].Sequential number: zero-padded natural number in the range0000000001to2147483647.
<DNL insertion datetime>: datetime in UTC that the DNL was first inserted into the DNL List. The possible two values of time for inserting a DNL to the DNL List are00:00:00and12:00:00UTC.
Example of a DNL list ๐ธ:
1,2012-08-16T00:00:00.0Z
DNL,lookup-key,insertion-datetime
example,2013041500/2/6/9/rJ1NrDO92vDsAzf7EQzgjX4R0000000001,\
2010-07-14T00:00:00.0Z
another-example,2013041500/6/A/5/alJAqG2vI2BmCv5PfUvuDkf40000000002,\
2012-08-16T00:00:00.0Z
anotherexample,2013041500/A/C/7/rHdC4wnrWRvPY6nneCVtQhFj0000000003,\
2011-08-16T12:00:00.0Z
Figure 10: Example DNL List
To provide authentication and integrity protection, the DNL List will be PGP [RFC4880] signed by the TMDB (see Section 5.1.1.4). The PGP signature of the DNL List can be found in the similar URI but with extension .sig, as shown below ๐.
The URLs of the dy interface (Section 4.3.3) are:
https://<tmdb-domain-name>/dnl/dnl-latest.csvhttps://<tmdb-domain-name>/dnl/dnl-latest.sig
6.2. SMD Revocation List
This section defines the format of the list of SMDs that have been revoked. The list is maintained by the TMDB and downloaded by Registries (and optionally by Registrars) in regular intervals (see Section 5.2.3.1). The SMD Revocation List is used during the Sunrise Period to validate SMDs received. The SMD Revocation List has a similar function as CRLs used in PKI [RFC5280] ๐.
The SMD Revocation List contains all the revoked SMDs present in the TMDB at the datetime it is generated.
The SMD Revocation List is contained in a CSV-formatted file that has the following structure ๐:
- first line:
<version>,<SMD Revocation List creation datetime>
Where:
<version>: version of the file. This field MUST be 1.<SMD Revocation List creation datetime>: datetime in UTC that the SMD Revocation List was created.
- second line: a header line, as specified in [RFC4180]
With the header names as follows: smd-id,insertion-datetime
- One or more lines with:
<smd-id>,<revoked SMD datetime>
Where:
<smd-id>: identifier of the SMD that was revoked.<revoked SMD datetime>: revocation datetime in UTC of the SMD. The possible two values of time for inserting an SMD to the SMD Revocation List are00:00:00and12:00:00UTC.
To provide integrity protection, the SMD Revocation List is PGP signed by the TMDB (see Section 5.1.1.4). The SMD Revocation List is provided by the TMDB with extension .csv. The PGP signature of the SMD Revocation List can be found in the similar URI but with extension .sig, as shown below ๐ฆ.
The URLs of the sr interface (Section 4.3.12) and sy interface (Section 4.3.11) are:
https://<tmdb-domain-name>/smdrl/smdrl-latest.csvhttps://<tmdb-domain-name>/smdrl/smdrl-latest.sig
Example of an SMD Revocation List ๐ :
1,2012-08-16T00:00:00.0Z
smd-id,insertion-datetime
2-2,2012-08-15T00:00:00.0Z
3-2,2012-08-15T00:00:00.0Z
1-2,2012-08-15T00:00:00.0Z
Figure 11: Example SMD Revocation List
6.3. List of Registered Domain Names (LORDN) File โจ
okay so this section is all about the List of Registered Domain Names (LORDN) file ๐ง every Registry keeps one and uploads it to the TMDB at least daily ๐ every time a DN matches a DNL of a PRM, that DN gets added to the LORDN, along with extra info about how it was registered ๐
The yd interface (Section 4.3.7) is where the LORDN file gets uploaded. The URIs are:
- Sunrise LORDN file:
https://<tmdb-domain-name>/LORDN/<TLD>/sunrise - Trademark Claims LORDN file:
https://<tmdb-domain-name>/LORDN/<TLD>/claims
During a QLP Period ๐ธ, Registries MAY be required to upload Sunrise or Trademark Claims LORDN files. The yd interface URIs for uploading LORDN files during a QLP Period are:
- Sunrise LORDN file (during QLP Period):
https://<tmdb-domain-name>/LORDN/<TLD>/sunrise/qlp - Trademark Claims LORDN file (during a QLP Period):
https://<tmdb-domain-name>/LORDN/<TLD>/claims/qlp
The yd interface (Section 4.3.7) sends back these HTTP status codes once it gets an HTTP POST request ๐ฆ
- The interface gives an HTTP/202 status code if it was able to receive the LORDN file and the syntax of the LORDN file is correct โจ
- It also gives the LORDN Transaction Identifier in the HTTP Entity-body. The Registry uses this to download the LORDN Log file. The LORDN Transaction Identifier is a zero-padded natural number in the range 0000000000000000001 to 9223372036854775807.
- The TMDB uses the <LORDN creation datetime> element of the LORDN file as a unique client-side identifier. If a LORDN file arrives with the same <LORDN creation datetime> as a previously sent LORDN file, the TMDB MUST provide the LORDN Transaction Identifier of the previously sent LORDN file to the Registry. The TMDB MUST ignore the DN Lines present in the LORDN file if a LORDN file with the same <LORDN creation datetime> was previously sent ๐
- The HTTP Location header field has the URI where the LORDN Log file can be retrieved later, for example:
202 Accepted
Location: https://<tmdb-domain-
name>/LORDN/example/sunrise/0000000000000000001/result
- The interface gives an HTTP/400 if the request is incorrect or the syntax of the LORDN file is incorrect. The TMDB MUST return a human-readable message in the HTTP Entity-body about the incorrect syntax of the LORDN file ๐
- The interface gives an HTTP/401 status code if the credentials provided do not authorize the Registry Operator to upload a LORDN file ๐ฅ
- The TMDB MUST return an HTTP/404 status code when someone tries to upload a LORDN file using the https://<tmdb-domain-name>/LORDN/<TLD>/sunrise/qlp or https://<tmdb-domain-name>/LORDN/<TLD>/claims/qlp interface outside of a QLP Period plus 26 hours ๐
- The interface gives an HTTP/500 status code if the system is having a general failure ๐ญ
For example, to upload the Sunrise LORDN file for TLD "example", the URI would be:
https://<tmdb-domain-name>/LORDN/example/sunrise
The LORDN is a CSV-formatted file ๐ and it has this structure:
- For Sunrise Period:
- first line:
<version>,<LORDN creation datetime>,<Number of DN Lines>- Where:
<version>: version of the file. This field MUST be 1.<LORDN creation datetime>: date and time in UTC that the LORDN was created.<Number of DN Lines>: number of DN Lines present in the LORDN file.
- Where:
- second line: a header line, as specified in [RFC4180]. The header names are:
- first line:
roid,domain-name,SMD-id,registrar-id,registration-
datetime,application-datetime
- One or more lines with:
<roid>,<DN registered>,<SMD-id>,<IANA Registrar id>,<datetime of registration>,<datetime of application creation>- Where:
<roid>: DN Repository Object IDentifier (DNROID) in the SRS.<DN registered>: DN that was effectively allocated. For IDNs, the A-label form is used.<SMD-id>: SMD ID used for registration.<IANA Registrar ID>: IANA Registrar ID.<datetime of registration>: date and time in UTC that the domain was effectively allocated.- OPTIONAL
<datetime of application creation>: date and time in UTC that the application was created. The<datetime of application creation>MUST be provided when a DN is effectively allocated based on an asynchronous registration (e.g., when using auctions). ๐ฆ
- Where:
Example of a Sunrise LORDN file:
1,2012-08-16T00:00:00.0Z,3
roid,domain-name,SMD-id,registrar-id,registration-datetime,\
application-datetime
SH8013-REP,example1.gtld,1-2,9999,2012-08-15T13:20:00.0Z,\
2012-07-15T00:50:00.0Z
EK77-REP,example2.gtld,2-2,9999,2012-08-15T14:00:03.0Z
HB800-REP,example3.gtld,3-2,9999,2012-08-15T15:40:00.0Z
Figure 12: Example Sunrise LORDN File
- For the Trademark Claims Period:
- first line:
<version>,<LORDN creation datetime>,<Number of DN Lines>- Where:
<version>: version of the file. This field MUST be 1.<LORDN creation datetime>: date and time in UTC that the LORDN was created.<Number of DN Lines>: number of DN Lines present in the LORDN file.
- Where:
- second line: a header line, as specified in [RFC4180]. The header names are:
- first line:
roid,domain-name,notice-id,registrar-id,registration-
datetime,ack-datetime,application-datetime
- One or more lines with:
<roid>,<DN registered>,<TCNID>,<IANA Registrar id>,<datetime of registration>,<datetime of acceptance of the TCN>,<datetime of application creation>- Where:
<roid>: DNROID in the SRS.<DN registered>: DN that was effectively allocated. For IDNs, the A-label form is used.<TCNID>: Trademark Claims Notice Identifier, as specified in<tmNotice:id>.<IANA Registrar ID>: IANA Registrar ID.<datetime of registration>: date and time in UTC that the domain was effectively allocated.<datetime of acceptance of the TCN>: date and time in UTC that the TCN was acknowledged.- OPTIONAL
<datetime of application creation>: date and time in UTC that the application was created. The<datetime of application creation>MUST be provided when a DN is effectively allocated based on an asynchronous registration (e.g., when using auctions).
- For a DN that matches a DNL of a PRM at the moment of registration, and was created without the TCNID, expiration datetime, and acceptance datetime because the DNL was inserted (or reinserted) for the first time into a DNL List less than 24 hours ago, the string "recent-dnl-insertion" MAY be specified in
<TCNID>and<datetime of acceptance of the TCN>๐
- Where:
Example of a Trademark Claims LORDN file:
1,2012-08-16T00:00:00.0Z,3
roid,domain-name,notice-id,registrar-id,registration-datetime,\
ack-datetime,application-datetime
SH8013-REP,example1.gtld,a76716ed9223352036854775808,\
9999,2012-08-15T14:20:00.0Z,2012-08-15T13:20:00.0Z
EK77-REP,example2.gtld,a7b786ed9223372036856775808,\
9999,2012-08-15T11:20:00.0Z,2012-08-15T11:19:00.0Z
HB800-REP,example3.gtld,recent-dnl-insertion,\
9999,2012-08-15T13:20:00.0Z,recent-dnl-insertion
Figure 13: Example Trademark Claims LORDN File
6.3.1. LORDN Log File ๐
okay bestie, once the TMDB gets a LORDN file, it checks that file for syntactical and semantic correctness ๐ง and the results come back through the yd interface (Section 4.3.7) ๐
The URIs for the yd interface (Section 4.3.7) you use to grab a LORDN Log file are:
- Sunrise LORDN Log file:
https://<tmdb-domain-name>/LORDN/<TLD>/sunrise/<lordn-transaction-identifier>/result
- Trademark Claims LORDN Log file:
https://<tmdb-domain-name>/LORDN/<TLD>/claims/<lordn-transaction-identifier>/result
A Registry Operator MUST NOT send more than one request per minute per TLD to download a LORDN Log file. so no spam-clicking the download button, periodt ๐ โโ๏ธ๐
The yd interface (Section 4.3.7) gives back these HTTP status codes after it receives an HTTP GET request method:
HTTP/200: the interface was able to provide the LORDN Log file, and it's sitting in the HTTP Entity-body ๐HTTP/204: the LORDN Transaction Identifier is correct, but the server hasn't finished processing the LORDN file yet โณHTTP/400: the request is incorrect ๐HTTP/401: the credentials you sent don't authorize the Registry Operator to download the LORDN Log file ๐HTTP/404: the LORDN Transaction Identifier is incorrect ๐HTTP/500: the system is having a general failure ๐ญ
For example, say you want the LORDN Log file for a Sunrise LORDN file with LORDN Transaction Identifier 0000000000000000001 and TLD "example". The URI would be:
https://<tmdb-domain-name>/LORDN/example/sunrise/0000000000000000001/result
The LORDN Log file is a CSV-formatted file with the following structure ๐งพโจ
- first line:
<version>,<LORDN Log creation datetime>,<LORDN file creation datetime>,<LORDN Log Identifier>,<Status flag>,<Warning flag>,<Number of DN Lines>
Where:
<version>: version of the file. This field MUST be 1. ๐ข<LORDN Log creation datetime>: date and time in UTC that the LORDN Log was created. ๐ฐ๏ธ<LORDN file creation datetime>: date and time in UTC of creation for the LORDN file that this log file is referring to. ๐<LORDN Log Identifier>: unique identifier of the LORDN Log provided by the TMDB. This identifier could be used by the Registry Operator to unequivocally identify the LORDN Log. The identified will be a string of a maximum length of 60 characters from the base64 alphabet. ๐<Status flag>: whether the LORDN file has been accepted for processing by the TMDB. Possible values are"accepted"or"rejected". โ โ<Warning flag>: whether the LORDN Log has any warning result codes. Possible values are"no-warnings"or"warnings-present". โ ๏ธ<Number of DN Lines>: number of DN effective allocations processed in the LORDN file. ๐ข
A Registry Operator is not required to process a LORDN Log with <Status flag>="accepted" and <Warning flag>="no-warnings". (lowkey the cleanest vibe possible ๐ซถ)
- second line: a header line, as specified in [RFC4180]
With the header names as follows: roid,result-code ๐ท๏ธ
- One or more lines with:
<roid>,<result code>
Where:
<roid>: DNROID in the SRS. ๐<result code>: result code, as described in Section 6.3.1.1. ๐ฏ
Here's an example of a LORDN Log file ๐
1,2012-08-16T02:15:00.0Z,2012-08-16T00:00:00.0Z,\
0000000000000478Nzs+3VMkR8ckuUynOLmyeqTmZQSbzDuf/R50n2n5QX4=,\
accepted,no-warnings,1
roid,result-code
SH8013-REP,2000
Figure 14: Example LORDN Log File ๐ฆ
6.3.1.1. LORDN Log Result Codes ๐
The classes of result codes (rc) are listed below. The classes in square brackets are not used at this time, but they may come into use at some later stage ๐ธ The first two digits of a result code tell you the result code class, which decides the outcome at the TMDB:
ok: Success. The DN Line is accepted by the TMDB. ๐warn: A warning is issued. The DN Line is accepted by the TMDB. ๐กerr: An error is issued. The LORDN file is rejected by the TMDB. ๐ซ
Heads up, this part is important ๐ In cases where a DN line is processed and the error result code is 45xx or 46xx, the LORDN file MUST be rejected by the TMDB. If the LORDN file is rejected, DN Lines that are syntactically valid will be reported with a 2001 result code. A 2001 result code means that the DN Line is syntactically valid, but the DN Line was not processed because the LORDN file was rejected. All DNs reported in a rejected LORDN file MUST be reported again by the Registry, because none of the DN Lines present in the LORDN file have been processed by the TMDB. ๐๐ญ
LORDN Log Result Code Classes:
+======+============================+=========+
| Code | Class | Outcome |
+======+============================+=========+
| 20xx | Success | ok |
+------+----------------------------+---------+
| 35xx | [ DN Line syntax warning ] | warn |
+------+----------------------------+---------+
| 36xx | DN Line semantic warning | warn |
+------+----------------------------+---------+
| 45xx | DN Line syntax error | err |
+------+----------------------------+---------+
| 46xx | DN Line semantic error | err |
+------+----------------------------+---------+
Table 2: LORDN Log Result Code Classes ๐
In Table 3, the LORDN Log result codes used by the TMDB are described. ๐ง
Okay bestie, this is the big finale of the log codes! ๐ โจ Table 3 is basically the cheat sheet for every result code a LORDN Log File can show, from the happy 2000 "all good" vibes all the way to the 4611 "that label has never existed" moment. ๐
Every row has a short description and a long description, so you can see both the quick version and the full tea. โ
+======+===================================================+
| rc | Short Description / Long Description |
+======+===================================================+
| 2000 | OK |
| +---------------------------------------------------+
| | The DN Line is successfully processed. |
+------+---------------------------------------------------+
| 2001 | OK but not processed |
| +---------------------------------------------------+
| | The DN Line is syntactically correct but was not |
| | processed because the LORDN file was rejected. |
+------+---------------------------------------------------+
| 3601 | TCN Acceptance Date after Registration Date |
| +---------------------------------------------------+
| | The TCN Acceptance Date in the DN Line is newer |
| | than the registration date. |
+------+---------------------------------------------------+
| 3602 | Duplicate DN Line |
| +---------------------------------------------------+
| | This DN Line is an exact duplicate of another DN |
| | Line in the same file; the DN Line is ignored. |
+------+---------------------------------------------------+
| 3603 | DNROID Notified Earlier |
| +---------------------------------------------------+
| | The same DNROID has been notified earlier; the DN |
| | Line is ignored. |
+------+---------------------------------------------------+
| 3604 | TCN Checksum invalid |
| +---------------------------------------------------+
| | Based on the DN effective allocation, the TCNID, |
| | and the expiration date of the linked TCN, the |
| | TCN Checksum is invalid. |
+------+---------------------------------------------------+
| 3605 | TCN Expired |
| +---------------------------------------------------+
| | The TCN was already expired (based on the |
| | <tmNotice:notAfter> field of the TCN) at the |
| | datetime of acknowledgement. |
+------+---------------------------------------------------+
| 3606 | Wrong TCNID used |
| +---------------------------------------------------+
| | The TCNID used for the registration does not |
| | match the related DN. |
+------+---------------------------------------------------+
| 3609 | Invalid SMD used |
| +---------------------------------------------------+
| | The SMD used for registration was not valid at |
| | the moment of registration based on the |
| | <smd:notBefore> and <smd:notAfter> elements. In |
| | case of an asynchronous registration, this refers |
| | to the <datetime of application creation>. |
+------+---------------------------------------------------+
| 3610 | DN reported outside of the time window |
| +---------------------------------------------------+
| | The DN was reported outside of the required |
| | 26-hour reporting window. |
+------+---------------------------------------------------+
| 3611 | DN does not match the labels in SMD |
| +---------------------------------------------------+
| | The DN does not match the labels included in the |
| | SMD. |
+------+---------------------------------------------------+
| 3612 | SMDID does not exist |
| +---------------------------------------------------+
| | The Signed Mark Data Identifier (SMDID) has never |
| | existed in the central repository. |
+------+---------------------------------------------------+
| 3613 | SMD was revoked when used |
| +---------------------------------------------------+
| | The SMD used for registration was revoked more |
| | than 24 hours ago of the <datetime of |
| | registration>. In case of an asynchronous |
| | registration, the <datetime of application |
| | creation> is used when validating the DN Line. |
+------+---------------------------------------------------+
| 3614 | TCNID does not exist |
| +---------------------------------------------------+
| | The Trademark Claims Notice Identifier (TCNID) |
| | has never existed in the central repository. |
+------+---------------------------------------------------+
| 3615 | Recent-dnl-insertion outside of the time window |
| +---------------------------------------------------+
| | The DN registration is reported as a recent-dnl- |
| | insertion, but the (re) insertion into the DNL |
| | occurred more than 24 hours ago. |
+------+---------------------------------------------------+
| 3616 | Registration Date of DN in Claims before the end |
| | of the Sunrise Period |
| +---------------------------------------------------+
| | The registration date of the DN is before the end |
| | of the Sunrise Period, and the DN was reported in |
| | a Trademark Claims LORDN file. |
+------+---------------------------------------------------+
| 3617 | Registrar has not been approved by the TMDB |
| +---------------------------------------------------+
| | The Registrar ID in the DN Line has not completed |
| | Trademark Claims integration testing with the |
| | TMDB. |
+------+---------------------------------------------------+
| 3618 | Registration Date of DN in QLP LORDN file out of |
| | the QLP Period |
| +---------------------------------------------------+
| | The registration date of the DN in a QLP LORDN |
| | file is outside of the QLP Period. |
+------+---------------------------------------------------+
| 3619 | TCN was not valid |
| +---------------------------------------------------+
| | The TCN was not valid (based on the |
| | <tmNotice:notBefore> field of the TCN) at the |
| | datetime of acknowledgement. |
+------+---------------------------------------------------+
| 4501 | Syntax Error in DN Line |
| +---------------------------------------------------+
| | There is a syntax error in the DN Line. |
+------+---------------------------------------------------+
| 4601 | Invalid TLD used |
| +---------------------------------------------------+
| | The TLD in the DN Line does not match what is |
| | expected for this LORDN. |
+------+---------------------------------------------------+
| 4602 | Registrar ID Invalid |
| +---------------------------------------------------+
| | The Registrar ID in the DN Line is not a valid |
| | ICANN-Accredited Registrar. |
+------+---------------------------------------------------+
| 4603 | Registration Date in the future |
| +---------------------------------------------------+
| | The <datetime of registration> in the DN Line is |
| | in the future. |
+------+---------------------------------------------------+
| 4606 | TLD not in Sunrise or Trademark Claims Periods |
| +---------------------------------------------------+
| | The <datetime of registration> was reported when |
| | the TLD was not in Sunrise or Trademark Claims |
| | Periods. In case of an asynchronous |
| | registration, the <datetime of application |
| | creation> is used when validating the DN Line. |
+------+---------------------------------------------------+
| 4607 | Application Date in the future |
| +---------------------------------------------------+
| | The <datetime of application creation> in the DN |
| | Line is in the future. |
+------+---------------------------------------------------+
| 4608 | Application Date is later than Registration Date |
| +---------------------------------------------------+
| | The <datetime of application creation> in the DN |
| | Line is later than the <datetime of |
| | registration>. |
+------+---------------------------------------------------+
| 4609 | TCNID wrong syntax |
| +---------------------------------------------------+
| | The syntax of the TCNID is invalid. |
+------+---------------------------------------------------+
| 4610 | TCN Acceptance Date is in the future |
| +---------------------------------------------------+
| | The <datetime of acceptance of the TCN> is in the |
| | future. |
+------+---------------------------------------------------+
| 4611 | Label has never existed in the TMDB |
| +---------------------------------------------------+
| | The label in the registered DN has never existed |
| | in the TMDB. |
+------+---------------------------------------------------+
Table 3: LORDN Log Result Codes
The 2xxx codes are the "we're good" group, the 3xxx codes are the "something about the timing or the paperwork is off" group, and the 4xxx codes are the "the line itself has a problem" group. ๐ฆ Keep an eye on the wording in each row, because the exact text is what matters when you're matching a code to the situation. ๐ซถ
That's the whole table, babe! ๐ธ Ready for the next part whenever you are. ๐
6.4. Signed Mark Data (SMD) File ๐
okay so this section is all about the SMD File ๐ After a mark is successfully registered, the TMV sends an SMD File back to the TMH. And bestie, that file is what lets you register one or more DNs covered by the PRM during a TLD's Sunrise Period ๐ธ
There are two encapsulation boundaries that fence in the base64-encoded SMD: -----BEGIN ENCODED SMD----- and -----END ENCODED SMD-----. Only the data inside those boundaries MUST be used by Registries and Registrars for validation purposes. So anything outside the boundaries, plus the boundaries themselves, MUST be ignored for validation. ๐
The SMD File is laid out like this. All the elements are REQUIRED and MUST appear in the specified order โจ
Marks: <marks>smdID: <SMD-ID>U-labels: <comma separated list of U-label or NR-LDH labels (see [RFC5890])>notBefore: <begin validity>notAfter: <end validity>-----BEGIN ENCODED SMD-----<encoded SMD (see [RFC7848])>-----END ENCODED SMD-----
Here's an example of an SMD file ๐ฆ
Marks: Example One
smdID: 1-2
U-labels: example-one, exampleone
notBefore: 2011-08-16 09:00
notAfter: 2012-08-16 09:00
-----BEGIN ENCODED SMD-----
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWdu
ZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRN
... (base64 data elided for brevity) ...
dXJlPgo8L3NtZDpzaWduZWRNYXJrPgo=
-----END ENCODED SMD-----
Figure 15: Example SMD File
6.5. Trademark Claims Notice (TCN) ๐ฆ
The TMDB MUST provide the TCN to Registrars in XML format, as specified below ๐
The enclosing element <tmNotice:notice> describes the Trademark Notice for a given label. The child elements of <tmNotice:notice> include:
- A
<tmNotice:id>element that holds the unique identifier of the Trademark Notice. This element contains the TCNID.
The TCNID is basically a string made by smooshing together a TCN Checksum and the TMDB Notice Identifier. The first 8 characters are the TCN Checksum. The rest is the TMDB Notice Identifier, a zero-padded natural number in the range of 0000000000000000001 to 9223372036854775807 โจ
Example of a TCNID:
370d0b7c9223372036854775807.
Where:
TCN Checksum=370d0b7cTMDB Notice Identifier=9223372036854775807
The TCN Checksum is an 8-character-long base16-encoded output of computing the CRC32 of the string concatenation of: label + unix_timestamp(<tmNotice:notAfter>) + TMDB Notice Identifier ๐ง
The TMDB MUST use the Unix time conversion of the <tmNotice:notAfter> in UTC to calculate the TCN Checksum. Unix time is the number of seconds that have elapsed since 1970-01-01T00:00:00Z, not counting leap seconds. For example, converting 2010-08-16T09:00:00.0Z to Unix time gives:
unix_time(2010-08-16T09:00:00.0Z)=1281949200
The TMDB uses the <tmNotice:label> and <tmNotice:notAfter> elements from the TCN, along with the TMDB Notice Identifier, to compute the TCN Checksum.
A Registry MUST use the leftmost DNL of the DN being effectively allocated, the expiration datetime of the TCN (provided by the Registrar), and the TMDB Notice Identifier extracted from the TCNID (provided by the Registrar) to compute the TCN Checksum. For example, if the DN "xn--mgbachtv.xn--mgbh0fb" is being effectively allocated, the leftmost DNL would be "xn--mgbachtv" ๐
An example computation of the TCN Checksum looks like this:
CRC32(example-one12819492009223372036854775807)=370d0b7c
- A
<tmNotice:notBefore>element that contains the start of the valid date and time of the TCN. - A
<tmNotice:notAfter>element that contains the expiration date and time of the TCN. - A
<tmNotice:label>element that contains the DNL covered by a PRM. - One or more
<tmNotice:claim>elements that contain the Trademark Claims. The<tmNotice:claim>element contains the following child elements:- A
<tmNotice:markName>element that contains the mark text string. - One or more
<tmNotice:holder>elements that contain the information of the holder of the mark. An "entitlement" attribute identifies the holder's entitlement; possible values are: owner, assignee, or licensee. The child elements of<tmNotice:holder>include:- An OPTIONAL
<tmNotice:name>element that contains the name of the holder.<tmNotice:name>MUST be specified if<tmNotice:org>is not specified. - An OPTIONAL
<tmNotice:org>element that contains the name of the organization holder of the mark.<tmNotice:org>MUST be specified if<tmNotice:name>is not specified. - A
<tmNotice:addr>element that contains the address information of the holder of a mark.<tmNotice:addr>contains the following child elements:- One, two, or three OPTIONAL
<tmNotice:street>elements that contain the organization's street address. - A
<tmNotice:city>element that contains the organization's city. - An OPTIONAL
<tmNotice:sp>element that contains the organization's state or province. - An OPTIONAL
<tmNotice:pc>element that contains the organization's postal code. - A
<tmNotice:cc>element that contains the organization's country code. This a two-character code from [ISO3166-2].
- One, two, or three OPTIONAL
- An OPTIONAL
<tmNotice:voice>element that contains the organization's voice telephone number. - An OPTIONAL
<tmNotice:fax>element that contains the organization's facsimile telephone number. - An OPTIONAL
<tmNotice:email>element that contains the email address of the holder.
- An OPTIONAL
- Zero or more OPTIONAL
<tmNotice:contact>elements that contain the information of the representative of the mark registration. A "type" attribute identifies the type of contact; possible values are: owner, agent, or third party. The child elements of<tmNotice:contact>include:- A
<tmNotice:name>element that contains the name of the responsible person. - An OPTIONAL
<tmNotice:org>element that contains the name of the organization of the contact. - A
<tmNotice:addr>element that contains the address information of the contact.<tmNotice:addr>contains the following child elements:- One, two, or three OPTIONAL
<tmNotice:street>elements that contain the contact's street address. - A
<tmNotice:city>element that contains the contact's city. - An OPTIONAL
<tmNotice:sp>element that contains the contact's state or province. - An OPTIONAL
<tmNotice:pc>element that contains the contact's postal code. - A
<tmNotice:cc>element that contains the contact's country code. This a two-character code from [ISO3166-2].
- One, two, or three OPTIONAL
- A
<tmNotice:voice>element that contains the contact's voice telephone number. - An OPTIONAL
<tmNotice:fax>element that contains the contact's facsimile telephone number. - A
<tmNotice:email>element that contains the contact's email address.
- A
- A
<tmNotice:jurDesc>element that contains the name (in English) of the jurisdiction where the mark is protected. A jurCC attribute contains the two-character code of the jurisdiction where the mark was registered. This is a two-character code from [WIPO.ST3]. - Zero or more OPTIONAL
<tmNotice:classDesc>elements that contain the description (in English) of the Nice Classification, as defined in [WIPO-NICE-CLASSES]. A classNum attribute contains the class number. - A
<tmNotice:goodsAndServices>element that contains the full description of the goods and services mentioned in the mark registration document. - An OPTIONAL
<tmNotice:notExactMatch>element signals that the claim notice was added to the TCN based on rules (e.g., [Claims50]) other than exact match (defined in [MatchingRules]).<tmNotice:notExactMatch>contains one or more of the following:- An OPTIONAL
<tmNotice:udrp>element that signals the claim notice was added because of a previously abused name included in a Uniform Domain-Name Dispute-Resolution Policy (UDRP) case.<tmNotice:udrp>contains:- A
<tmNotice:caseNo>element that contains the UDRP case number used to validate the previously abused name. - A
<tmNotice:udrpProvider>element that contains the name of the UDRP provider.
- A
- An OPTIONAL
<tmNotice:court>element that signals the claim notice was added because of a previously abused name included in a court's resolution.<tmNotice:court>contains:- A
<tmNotice:refNum>element that contains the reference number of the court's resolution used to validate the previously abused name. - A
<tmNotice:cc>element that contains the two-character code from [ISO3166-2] of the jurisdiction of the court. - A
<tmNotice:courtName>element that contains the name of the court.
- A
- An OPTIONAL
- A
Example of a <tmNotice:notice> object:
Okay bestie, so the TCN example is a whole vibe ๐ Here's a full notice with multiple claims, a UDRP case, and a court reference, all in one go ๐
<?xml version="1.0" encoding="UTF-8"?>
<tmNotice:notice
xmlns:tmNotice="urn:ietf:params:xml:ns:tmNotice-1.0">
<tmNotice:id>370d0b7c9223372036854775807</tmNotice:id>
<tmNotice:notBefore>2010-08-14T09:00:00.0Z</tmNotice:notBefore>
<tmNotice:notAfter>2010-08-16T09:00:00.0Z</tmNotice:notAfter>
<tmNotice:label>example-one</tmNotice:label>
<tmNotice:claim>
<tmNotice:markName>Example One</tmNotice:markName>
<tmNotice:holder entitlement="owner">
<tmNotice:org>Example Inc.</tmNotice:org>
<tmNotice:addr>
<tmNotice:street>123 Example Dr.</tmNotice:street>
<tmNotice:street>Suite 100</tmNotice:street>
<tmNotice:city>Reston</tmNotice:city>
<tmNotice:sp>VA</tmNotice:sp>
<tmNotice:pc>20190</tmNotice:pc>
<tmNotice:cc>US</tmNotice:cc>
</tmNotice:addr>
</tmNotice:holder>
<tmNotice:contact type="owner">
<tmNotice:name>Joe Doe</tmNotice:name>
<tmNotice:org>Example Inc.</tmNotice:org>
<tmNotice:addr>
<tmNotice:street>123 Example Dr.</tmNotice:street>
<tmNotice:street>Suite 100</tmNotice:street>
<tmNotice:city>Reston</tmNotice:city>
<tmNotice:sp>VA</tmNotice:sp>
<tmNotice:pc>20190</tmNotice:pc>
<tmNotice:cc>US</tmNotice:cc>
</tmNotice:addr>
<tmNotice:voice x="4321">+1.7035555555</tmNotice:voice>
<tmNotice:email>jdoe@example.com</tmNotice:email>
</tmNotice:contact>
<tmNotice:jurDesc jurCC="US">USA</tmNotice:jurDesc>
<tmNotice:classDesc classNum="35">
Advertising; business management; business administration.
</tmNotice:classDesc>
<tmNotice:classDesc classNum="36">
Insurance; financial affairs; monetary affairs; real estate.
</tmNotice:classDesc>
<tmNotice:goodsAndServices>
Bardus populorum circumdabit se cum captiosus populum.
Smert populorum circumdabit se cum captiosus populum.
</tmNotice:goodsAndServices>
</tmNotice:claim>
<tmNotice:claim>
<tmNotice:markName>Example-One</tmNotice:markName>
<tmNotice:holder entitlement="owner">
<tmNotice:org>Example S.A. de C.V.</tmNotice:org>
<tmNotice:addr>
<tmNotice:street>Calle conocida #343</tmNotice:street>
<tmNotice:city>Conocida</tmNotice:city>
<tmNotice:sp>SP</tmNotice:sp>
<tmNotice:pc>82140</tmNotice:pc>
<tmNotice:cc>BR</tmNotice:cc>
</tmNotice:addr>
</tmNotice:holder>
<tmNotice:jurDesc jurCC="BR">BRAZIL</tmNotice:jurDesc>
<tmNotice:goodsAndServices>
Bardus populorum circumdabit se cum captiosus populum.
Smert populorum circumdabit se cum captiosus populum.
</tmNotice:goodsAndServices>
</tmNotice:claim>
<tmNotice:claim>
<tmNotice:markName>One</tmNotice:markName>
<tmNotice:holder entitlement="owner">
<tmNotice:org>One Corporation</tmNotice:org>
<tmNotice:addr>
<tmNotice:street>Otra calle</tmNotice:street>
<tmNotice:city>Otra ciudad</tmNotice:city>
<tmNotice:sp>OT</tmNotice:sp>
<tmNotice:pc>383742</tmNotice:pc>
<tmNotice:cc>CR</tmNotice:cc>
</tmNotice:addr>
</tmNotice:holder>
<tmNotice:jurDesc jurCC="CR">COSTA RICA</tmNotice:jurDesc>
<tmNotice:goodsAndServices>
Bardus populorum circumdabit se cum captiosus populum.
Smert populorum circumdabit se cum captiosus populum.
</tmNotice:goodsAndServices>
<tmNotice:notExactMatch>
<tmNotice:court>
<tmNotice:refNum>234235</tmNotice:refNum>
<tmNotice:cc>CR</tmNotice:cc>
<tmNotice:courtName>Supreme Court of Spain</tmNotice:courtName>
</tmNotice:court>
</tmNotice:notExactMatch>
</tmNotice:claim>
<tmNotice:claim>
<tmNotice:markName>One Inc</tmNotice:markName>
<tmNotice:holder entitlement="owner">
<tmNotice:org>One SA de CV</tmNotice:org>
<tmNotice:addr>
<tmNotice:street>La calle</tmNotice:street>
<tmNotice:city>La ciudad</tmNotice:city>
<tmNotice:sp>CD</tmNotice:sp>
<tmNotice:pc>34323</tmNotice:pc>
<tmNotice:cc>AR</tmNotice:cc>
</tmNotice:addr>
</tmNotice:holder>
<tmNotice:jurDesc jurCC="AR">ARGENTINA</tmNotice:jurDesc>
<tmNotice:goodsAndServices>
Bardus populorum circumdabit se cum captiosus populum.
Smert populorum circumdabit se cum captiosus populum.
</tmNotice:goodsAndServices>
<tmNotice:notExactMatch>
<tmNotice:udrp>
<tmNotice:caseNo>D2003-0499</tmNotice:caseNo>
<tmNotice:udrpProvider>WIPO</tmNotice:udrpProvider>
</tmNotice:udrp>
</tmNotice:notExactMatch>
</tmNotice:claim>
</tmNotice:notice>
Figure 16: Example <tmNotice:notice> Object
For the formal syntax of the TCN, please refer to Section 7.1. ๐ฆ
6.6. Sunrise List (SURL) ๐ธ
This section defines the format of the list containing every DNL that matches a PRM eligible for Sunrise. The list is maintained by the TMDB and downloaded by Registries in regular intervals (see Section 5.4.2.1). The Registries use the Sunrise List during the QLP Period to check whether a requested DN matches a DNL of a PRM eligible for Sunrise. ๐
The Sunrise List contains all the DNLs covered by a PRM eligible for Sunrise that are present in the TMDB at the datetime it is generated. โจ
The Sunrise List is contained in a CSV-formatted file that has the following structure:
- first line:
<version>,<Sunrise List creation datetime>- Where:
<version>: version of the file. This field MUST be 1.<Sunrise List creation datetime>: date and time in UTC that the Sunrise List was created.
- Where:
- second line: a header line, as specified in [RFC4180]
- With the header names as follows:
DNL,insertion-datetime
- One or more lines with:
<DNL>,<DNL insertion datetime>- Where:
<DNL>: a Domain Name Label covered by a PRM eligible for Sunrise.<DNL insertion datetime>: datetime in UTC that the DNL was first inserted into the Sunrise List. The possible two values of time for inserting a DNL to the Sunrise List are00:00:00and12:00:00UTC. ๐
- Where:
Example of a Sunrise List:
1,2012-08-16T00:00:00.0Z
DNL,insertion-datetime
example,2010-07-14T00:00:00.0Z
another-example,2012-08-16T00:00:00.0Z
anotherexample,2011-08-16T12:00:00.0Z
Figure 17: Example Sunrise List
To provide authentication and integrity protection, the Sunrise List will be PGP signed by the TMDB (see Section 5.1.1.4). The PGP signature of the Sunrise List can be found in the similar URI but with extension .sig, as shown below. ๐
The URLs of the dy interface (Section 4.3.3) are:
https://<tmdb-domain-name>/dnl/surl-latest.csvhttps://<tmdb-domain-name>/dnl/surl-latest.sig
7. Formal Syntax ๐
7.1. Trademark Claims Notice (TCN) ๐ง
The schema presented here is for a Trademark Claims Notice.
The CODE BEGINS and CODE ENDS tags are not part of the schema; they are used to note the beginning and ending of the schema for URI registration purposes. ๐
<CODE BEGINS>
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:ietf:params:xml:ns:tmNotice-1.0"
xmlns:tmNotice="urn:ietf:params:xml:ns:tmNotice-1.0"
xmlns:mark="urn:ietf:params:xml:ns:mark-1.0"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<annotation>
<documentation>
Schema for representing a Trademark Claim Notice.
</documentation>
</annotation>
<import namespace="urn:ietf:params:xml:ns:mark-1.0"/>
<element name="notice" type="tmNotice:noticeType"/>
<complexType name="holderType">
<sequence>
<element name="name" type="token" minOccurs="0"/>
<element name="org" type="token" minOccurs="0"/>
<element name="addr" type="tmNotice:addrType"/>
<element name="voice" type="mark:e164Type" minOccurs="0"/>
<element name="fax" type="mark:e164Type" minOccurs="0"/>
<element name="email" type="mark:minTokenType" minOccurs="0"/>
</sequence>
<attribute name="entitlement" type="mark:entitlementType"/>
</complexType>
<complexType name="noticeType">
<sequence>
<element name="id" type="tmNotice:idType"/>
<element name="notBefore" type="dateTime"/>
<element name="notAfter" type="dateTime"/>
<element name="label" type="mark:labelType"/>
<element name="claim" type="tmNotice:claimType" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="claimType">
<sequence>
<element name="markName" type="token"/>
<element name="holder" type="tmNotice:holderType"
maxOccurs="unbounded"/>
<element name="contact" type="tmNotice:contactType"
minOccurs="0" maxOccurs="unbounded"/>
<element name="jurDesc" type="tmNotice:jurDescType"/>
<element name="classDesc" type="tmNotice:classDescType"
minOccurs="0" maxOccurs="unbounded"/>
<element name="goodsAndServices" type="token"/>
<element name="notExactMatch" type="tmNotice:noExactMatchType"
minOccurs="0"/>
</sequence>
</complexType>
<complexType name="jurDescType">
<simpleContent>
<extension base="token">
<attribute name="jurCC" type="mark:ccType" use="required"/>
</extension>
</simpleContent>
</complexType>
<complexType name="classDescType">
<simpleContent>
<extension base="token">
<attribute name="classNum" type="integer" use="required"/>
</extension>
</simpleContent>
</complexType>
<complexType name="noExactMatchType">
<choice maxOccurs="unbounded">
<element name="udrp" type="tmNotice:udrpType"/>
<element name="court" type="tmNotice:courtType"/>
</choice>
</complexType>
<complexType name="udrpType">
<sequence>
<element name="caseNo" type="token"/>
<element name="udrpProvider" type="token"/>
</sequence>
</complexType>
<complexType name="courtType">
<sequence>
<element name="refNum" type="token"/>
<element name="cc" type="mark:ccType"/>
<element name="region" type="token" minOccurs="0"
maxOccurs="unbounded"/>
<element name="courtName" type="token"/>
</sequence>
</complexType>
<complexType name="addrType">
<sequence>
<element name="street" type="token" minOccurs="1"
maxOccurs="3"/>
<element name="city" type="token"/>
<element name="sp" type="token" minOccurs="0"/>
<element name="pc" type="mark:pcType" minOccurs="0"/>
<element name="cc" type="mark:ccType"/>
</sequence>
</complexType>
<complexType name="contactType">
<sequence>
<element name="name" type="token"/>
<element name="org" type="token" minOccurs="0"/>
<element name="addr" type="tmNotice:addrType"/>
<element name="voice" type="mark:e164Type"/>
<element name="fax" type="mark:e164Type" minOccurs="0"/>
<element name="email" type="mark:minTokenType"/>
</sequence>
<attribute name="type" type="mark:contactTypeType"/>
</complexType>
<simpleType name="idType">
<restriction base="token">
<pattern value="[a-fA-F0-9]{8}\d{1,19}"/>
</restriction>
</simpleType>
</schema>
<CODE ENDS>
8. IANA Considerations โจ
okay so IANA stuff, bestie ๐ง the code point in this doc was grabbed from the wrong spot in the registration tree ๐. It was already out in the wild before anyone ran the proper registration review, so the designated experts looked at what fixing it would break for deployed implementations and agreed to keep it. no cap, that's a very mature choice ๐ซถ
This document uses URNs to describe XML namespaces and XML schemas, following a registry mechanism from [RFC3688]. IANA registered two URI assignments, and they're giving main character energy ๐
Trademark Claims Notice namespace:
URI: urn:ietf:params:xml:ns:tmNotice-1.0
Registrant Contact: IETF <iesg@ietf.org> and ICANN
<globalsupport@icann.org>
XML: None. Namespace URIs do not represent an XML specification.
Note: Note that this assignment is made from the wrong point in the
tree in order to be consistent with deployed implementations.
Trademark Claims Notice XML schema:
URI: urn:ietf:params:xml:schema:tmNotice-1.0
Registrant Contact: IETF <iesg@ietf.org> and ICANN
<globalsupport@icann.org>
XML: See Section 7.1 of RFC 9361.
Note: Note that this assignment is made from the wrong point in the
tree in order to be consistent with deployed implementations.
9. Security Considerations ๐
okay this part is SERIOUS bestie ๐ญ This specification uses HTTP Basic Authentication to give a simple application-layer authentication service. HTTPS is used on all interfaces to guard against most of the common attacks ๐ก๏ธ On top of that, the client identifier is tied to a set of IP addresses that are allowed to connect to the interfaces in this document, which is an extra layer of security ๐ฅ
The TMDB MUST provide credentials to the appropriate Registries and Registrars. ๐
The TMDB MUST require the use of strong passwords by Registries and Registrars. ๐ช
The TMDB, Registries, and Registrars MUST use the best practices described in [RFC9325] or its successors. โจ
10. Privacy Considerations ๐ธ
this one is giving "legal paperwork protects your secrets" ๐ This specification defines the interfaces that support the [RPM-Requirements]. The legal documents that govern how the different parties interact must make sure that privacy-sensitive and/or personal data gets the protection it needs ๐ซถ
11. References ๐
11.1. Normative References
[Claims50] ICANN, "Implementation Notes: Trademark Claims Protection
for Previously Abused Names", July 2013,
<https://newgtlds.icann.org/en/about/trademark-
clearinghouse/previously-abused-16jul13-en.pdf>.
[MatchingRules]
ICANN, "Explanatory Memorandum: Implementing the Matching
Rules", July 2016, <https://newgtlds.icann.org/en/about/
trademark-clearinghouse/matching-rules-14jul16-en.pdf>.
[QLP-Addendum]
ICANN, "Trademark Clearinghouse Rights Protection
Mechanism Requirements: Qualified Launch Program
Addendum", April 2014,
<https://newgtlds.icann.org/en/about/trademark-
clearinghouse/rpm-requirements-qlp-addendum-
10apr14-en.pdf>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/rfc3688>.
[RFC7848] Lozano, G., "Mark and Signed Mark Objects Mapping",
RFC 7848, DOI 10.17487/RFC7848, June 2016,
<https://www.rfc-editor.org/info/rfc7848>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC9325] Sheffer, Y., Saint-Andre, P., and T. Fossati,
"Recommendations for Secure Use of Transport Layer
Security (TLS) and Datagram Transport Layer Security
(DTLS)", BCP 195, RFC 9325, DOI 10.17487/RFC9325, November
2022, <https://www.rfc-editor.org/info/rfc9325>.
[RPM-Requirements]
ICANN, "Trademark Clearinghouse Rights Protection
Mechanism Requirements", September 2013,
<https://newgtlds.icann.org/en/about/trademark-
clearinghouse/rpm-requirements-30sep13-en.pdf>.
[W3C.REC-xml-20081126]
Bray, T., Paoli, J., Sperberg-McQueen, C. M., Maler, E.,
and F. Yergeau, "Extensible Markup Language (XML) 1.0
(Fifth Edition)", W3C Recommendation REC-xml-20081126,
November 2008,
<https://www.w3.org/TR/2008/REC-xml-20081126/>.
[W3C.REC-xmlschema-1-20041028]
Thompson, H., Beech, D., Maloney, M., and N. Mendelsohn,
"XML Schema Part 1: Structures Second Edition", W3C
Recommendation REC-xmlschema-1-20041028, October 2004,
<https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/>.
[W3C.REC-xmlschema-2-20041028]
Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes
Second Edition", W3C Recommendation REC-xmlschema-
2-20041028, October 2004,
<https://www.w3.org/TR/2004/REC-xmlschema-2-20041028/>.
11.2. Informative References
[ICANN-GTLD-AGB-20120604]
ICANN, "gTLD Applicant Guidebook Version 2012-06-04", June
2012, <http://newgtlds.icann.org/en/applicants/agb/
guidebook-full-04jun12-en.pdf>.
[ISO3166-2]
ISO, "International Standard for country codes and codes
for their subdivisions",
<http://www.iso.org/iso/home/standards/country_codes.htm>.
[RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet:
Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
<https://www.rfc-editor.org/info/rfc3339>.
[RFC4180] Shafranovich, Y., "Common Format and MIME Type for Comma-
Separated Values (CSV) Files", RFC 4180,
DOI 10.17487/RFC4180, October 2005,
<https://www.rfc-editor.org/info/rfc4180>.
[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data
Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006,
<https://www.rfc-editor.org/info/rfc4648>.
[RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R.
Thayer, "OpenPGP Message Format", RFC 4880,
DOI 10.17487/RFC4880, November 2007,
<https://www.rfc-editor.org/info/rfc4880>.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
<https://www.rfc-editor.org/info/rfc5280>.
[RFC5890] Klensin, J., "Internationalized Domain Names for
Applications (IDNA): Definitions and Document Framework",
RFC 5890, DOI 10.17487/RFC5890, August 2010,
<https://www.rfc-editor.org/info/rfc5890>.
[RFC7617] Reschke, J., "The 'Basic' HTTP Authentication Scheme",
RFC 7617, DOI 10.17487/RFC7617, September 2015,
<https://www.rfc-editor.org/info/rfc7617>.
[RFC8499] Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS
Terminology", BCP 219, RFC 8499, DOI 10.17487/RFC8499,
January 2019, <https://www.rfc-editor.org/info/rfc8499>.
[RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Semantics", STD 97, RFC 9110,
DOI 10.17487/RFC9110, June 2022,
<https://www.rfc-editor.org/info/rfc9110>.
[WIPO-NICE-CLASSES]
WIPO, "Nice Classification",
<http://www.wipo.int/classifications/nice/en>.
[WIPO.ST3] WIPO, "Recommended standard on two-letter codes for the
representation of states, other entities and
intergovernmental organizations", November 2022,
<https://www.wipo.int/export/sites/www/standards/en/
pdf/03-03-01.pdf>.
Acknowledgements ๐ซถ
this doc is a team effort from a bunch of people in the ICANN community, so big love to all of them ๐ Bernie Hoeneisen was a coauthor on the first draft and gave invaluable support โจ The spec is based on a model spearheaded by Chris Wright, Jeff Neuman, Jeff Eckhaus, and Will Shorter ๐ The author also wants to thank everyone who gave thoughtful feedback on the tmch-tech mailing list, and especially James Gould, James Mitchell, and Francisco Arias, who helped out SO much ๐ This document also includes feedback from Paul Hoffman ๐
Author's Address ๐
Gustavo Lozano
ICANN
12025 Waterfront Drive
Suite 300
Los Angeles, 90292
United States of America
Phone: +1.310.301.5800
Email: gustavo.lozano@icann.org
๐ฆ where this page comes from
- ietf: rfc9361 2023-03
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms