Fact-checked by Grok 2 weeks ago

Extensible Provisioning Protocol

The Extensible Provisioning Protocol (EPP) is an XML-based, application-layer client-server protocol designed for the provisioning and management of objects, such as domain names, stored in a shared central repository. It provides a flexible framework for standardized interactions between clients (typically domain registrars) and servers (typically domain registries), supporting operations like creation, querying, updating, and transferring of these objects. Developed to meet the requirements outlined in RFC 3375, EPP ensures secure, extensible, and extensible communication over diverse network environments, with a focus on atomic and idempotent command processing. EPP was standardized by the (IETF) as part of the Provisioning Registry Protocol (PROVREG) , with its initial version (1.0) specified in 4930 in 2007 and updated in 5730 in 2009, which obsoletes the earlier document and registers the XML media type application/epp+xml. Originally developed for registrations, the protocol has been extended to handle additional object types, including mappings (RFC 5732) and information for individuals or organizations ( 5733). These mappings define specific schemas and commands tailored to each object type, while the core protocol remains extensible through XML namespaces, allowing for the addition of new features without altering the base structure. In practice, EPP operates as a stateful protocol, initiating sessions with a from the server and a command from the client, followed by a sequence of commands such as <check>, <create>, <info>, <transfer>, and <logout>. Each command elicits a response with result codes (e.g., 1000 for successful completion) and human-readable messages, supporting via negotiation per RFC 4646. The protocol mandates secure transport layers, such as with TLS for confidentiality and integrity, and is widely adopted in the global , particularly by ICANN-accredited registrars and (gTLD) registries for managing domain statuses and preventing issues like unauthorized transfers. EPP status codes, including client-set (e.g., "clientDeleteProhibited") and server-set (e.g., "pendingTransfer") indicators, play a critical role in domain lifecycle management, enabling features like grace periods and locks.

Overview

Definition and Purpose

The Extensible Provisioning Protocol (EPP) is an XML-based client-server for the provisioning and management of domain names, host names, and contact information stored in a shared central . It defines a set of generic operations—such as —for these objects, enabling secure and extensible interactions in diverse network environments. EPP's primary purposes are to standardize communications between domain registrars and registries, facilitating automated allocation, modification, and transfer of -related objects while minimizing manual intervention. This supports scalable by providing a flexible that accommodates varying registry policies and operational requirements across the . Key benefits of EPP include its extensibility, achieved through XML namespaces that allow registries to define custom extensions for additional objects or operations without disrupting core functionality. It also supports of domain names (IDNs) by adhering to standards for non-ASCII label representation and enables integration with (DNS) services via host object provisioning for glue records. EPP was developed by the Internet Engineering Task Force's (IETF) Provisioning Registry (PROVREG) , led by editor Scott Hollenbeck.

Technical Foundations

The Extensible Provisioning Protocol (EPP) employs a client-server that operates at the (OSI Layer 7), facilitating communication between provisioning clients and servers for managing shared repository objects. This model relies on a reliable transport protocol to ensure ordered delivery of commands and responses, with serving as the primary mechanism, utilizing port 700 as assigned by the . To provide security, EPP mandates the use of over TCP, enforcing mutual authentication, integrity, and confidentiality through specified cipher suites such as TLS_RSA_WITH_AES_128_CBC_SHA for TLS 1.2 implementations. Note that TLS 1.0 and 1.1 have been deprecated per 8996 (2021). As of November 2025, ongoing IETF work includes drafts for transporting EPP over (draft-ietf-regext-epp-https-02) and (draft-ietf-regext-epp-quic-02) to support modern infrastructures. EPP structures its data exchanges using Extensible Markup Language (XML) for both commands and responses, enabling a flexible and extensible format that supports . All EPP messages are encapsulated within an , which includes mandatory attributes like 'xmlns' for declaration (typically "urn:ietf:params:xml:ns:epp-1.0") and may incorporate additional to extend functionality without altering core structures. Responses follow a standardized , comprising data, result, extension, and other optional sections to convey outcomes, errors, or additional metadata, ensuring parseability and adherence to definitions. The protocol flow in EPP is designed for efficiency in automated interactions, featuring stateless individual commands that are processed independently while maintaining a stateful session . Sessions begin with a client-initiated , prompting the server to send a , followed by a command to establish credentials and session parameters; subsequent commands are executed until a or closure terminates the session. To optimize performance, EPP supports command pipelining, allowing clients to send multiple commands sequentially over a single persistent without waiting for intermediate responses, provided the transport preserves order and reliability. EPP assumes foundational knowledge of XML schemas for validation and networking for connectivity, incorporating encoding to support global character sets and facilitate international domain operations. For secure integration, it layers over TLS-secured (analogous to but protocol-specific), while its object management capabilities directly support (DNS) publication by provisioning related entities in shared registries. Recent extensions include RFC 9803 (June 2025) for mapping DNS values.

History and Development

Early Development

The Extensible Provisioning Protocol (EPP) originated from initial Internet-Draft specifications published in November 2000 by Scott Hollenbeck, then at , Inc. These drafts introduced a core framework for a client-server protocol aimed at standardizing the provisioning and management of domain names and related objects in shared registries. The development of EPP was motivated by the limitations of proprietary systems prevalent in provisioning, particularly the need for an open, extensible alternative to facilitate in the growing domain ecosystem overseen by . Prior protocols, such as the NSI Registry-Registrar Protocol (RRP), had been widely used but were tied to specific operators like , Inc., restricting broader adoption and scalability. EPP's design drew directly from experiences with RRP, incorporating lessons on command structures and error handling while shifting to an XML-based format for greater flexibility and extensibility. Following the release of the initial drafts, a Birds-of-a-Feather (BoF) session at IETF meeting 49 in December 2000 led to the formation of the Provisioning Registry Protocol (provreg) Working Group within the IETF. The provreg WG was chartered to define requirements for a secure, extensible protocol supporting registrar access to multiple registries, emphasizing object management for domains, hosts, and contacts. This group focused on high-level functional needs, such as authentication, session control, and command-response interactions, to ensure the protocol could handle the diverse requirements of ICANN-accredited registrars and registries. Key early outputs included RFC 3375, published in September 2002 and authored by Scott Hollenbeck, which outlined generic requirements for registry-registrar protocols. This informational RFC specified essential capabilities like object creation, modification, querying, and deletion, while proposing XML as the basis for command encoding to manage core objects—domains, hosts, and contacts—in a structured, extensible manner. These proposals built on the November 2000 drafts, refining XML schemas for commands such as , , and to support secure, polled interactions between clients and servers. The emphasis on extensibility allowed for future adaptations to ICANN's evolving domain policies without disrupting core operations.

Standardization and Evolution

The formal standardization of the Extensible Provisioning Protocol (EPP) began with its initial publication as a set of Proposed Standards by the (IETF) in March 2004. These included RFC 3730, which specifies the core protocol framework; RFC 3731 for mappings; RFC 3732 for mappings; RFC 3733 for contact mappings; and RFC 3734 for transport over , all developed under the IETF's Provisioning Registry Protocol (provreg) Working Group. In May 2007, these documents were updated and obsoleted by Draft Standards RFC 4930 through RFC 4934, incorporating refinements to enhance clarity, security, and based on . Further advancement occurred in August 2009, when EPP achieved full status as STD 69 through 5730 to 5734, which obsoleted the 2007 versions and formalized the protocol for widespread deployment in domain registries. Post-standardization evolution has focused on extensions to address emerging needs in domain management. In June 2010, RFC 5910 introduced mappings for (DNSSEC), enabling secure delegation provisioning. More recent developments include RFC 9167 in December 2021, which defines a mechanism for registry maintenance notifications to inform clients of scheduled outages; RFC 9038 in May 2021, specifying handling of unhandled XML namespaces to improve robustness; RFC 9803 in June 2025, describing an extension for managing DNS Time-to-Live () values; RFC 9873 in October 2025, adding support for additional email addresses in contact objects; and RFC 9874 in September 2025, outlining best practices for and host object deletion to mitigate DNS resolution risks. The oversight of EPP's development transitioned across IETF working groups to support ongoing extensions. After the provreg Working Group concluded its core work and closed in 2004, the Extensible Provisioning Protocol Extensions (eppext) briefly handled initial extensions before closing. Responsibilities then shifted to the Registration Protocols Extensions (regext) , which continues to manage EPP-related advancements and maintain associated IANA registries.

Adoption and Implementations

Usage in Domain Registries

EPP serves as the standard protocol for interactions between registries and registrars in generic top-level domains (gTLDs), mandated by through Registry-Registrar Agreements to ensure interoperability. Since 2009, ICANN-accredited registrars have been required to support EPP for gTLD operations, as specified in registry agreements such as that for , which mandates implementation and maintenance of EPP in conformance with relevant standards. This requirement facilitates automated domain provisioning, transfers, and management across the gTLD ecosystem. The 2012 ICANN gTLD expansion further entrenched EPP's role, with all new gTLDs required to incorporate EPP for provisioning and management as outlined in the applicant guidebook. By , this has resulted in over 1,200 gTLDs operating under EPP, driven by 's emphasis on standardized, extensible protocols to support the namespace's growth and global accessibility. In country code top-level domains (ccTLDs), EPP adoption has grown steadily for enhanced integration, with numerous registries implementing it to align with international best practices. Examples include .au, managed by auDA, which utilizes EPP authorization codes for transfers and management; .uk, operated by Nominet, providing full EPP server access including a for ; .ca, overseen by CIRA, which transitioned to an EPP-based registry supporting authorization codes for domain operations; .ac for , requiring EPP keys for transfers; and .eu for the , employing EPP authorization codes via EURid for interactions. Key drivers of EPP adoption in both gTLDs and ccTLDs include ICANN's mandates, which promote seamless data exchange and reduce operational silos between registries and registrars. The protocol's extensibility also supports the rising demand from gTLD proliferation, enabling efficient scaling for thousands of domain transactions daily. Recent trends highlight increasing EPP integration in (IDN) ccTLDs, where non-Latin scripts require robust provisioning to handle variant labels and multilingual registrations. Major registry operators like , which provides comprehensive EPP SDKs for gTLDs such as .com and .net, and CentralNic, supporting EPP status codes and extensions across multiple ccTLDs and gTLDs, underscore this momentum through their widespread implementations.

Software Implementations

The Extensible Provisioning Protocol (EPP) is supported by several open-source registry platforms that enable domain administrators to manage registrations efficiently. CoCCA Registry is a prominent open-source solution developed for shared registry operations, providing a full suite of EPP-compliant server components for domain, host, and contact object management. As of 2024, it powers 57 country code top-level domains (ccTLDs), facilitating automated provisioning across diverse national registries. Another key open-source implementation is (Free Registry for ENUM and Domains), maintained by CZ.NIC for the .cz ccTLD and extended to other operators. FRED includes modular EPP server and client components that handle core operations, such as domain creation, updates, and transfers, while integrating with backend databases for scalable registry functions. It is deployed by at least 12 ccTLDs as of 2025, emphasizing reliability for high-volume environments. Commercial EPP implementations are typically proprietary and tailored for large-scale registrar operations. Tucows' OpenSRS platform, for instance, incorporates EPP as its core for interfacing with registries worldwide, supporting bulk transactions and compliance with standards. Similarly, GoDaddy employs custom EPP-based systems to manage millions of domain registrations, enabling seamless automation between its registrar services and backend infrastructure. These solutions prioritize robustness for global deployments, often bundling EPP with additional tools like integration. To facilitate development and integration, open client libraries exist across programming languages. The php-epp-client library provides an object-oriented interface for constructing EPP XML frames and handling transport, compatible with most registries. In , pyEPP offers a high-level for EPP interactions, including command templates for domains and contacts, along with a CLI tool for testing connections. For , the EPP RTK (Registrar Tool Kit) delivers a comprehensive for building EPP clients, including IDL-based for protocol mappings and support for extensions. Key features across these implementations include comprehensive support for EPP command categories—such as greeting, login, and query operations—and extensibility for standardized mappings like DNSSEC. The DNSSEC extension (RFC 5910) allows registrars to provision delegation signer (DS) records via EPP, enabling secure without disrupting domain availability during transfers. Recent advancements also address integration challenges, with libraries like pyEPP supporting automated workflows in cloud-based registry environments to streamline provisioning. Tools for testing and validation, such as Verisign's EPP SDKs, help developers simulate sessions and verify compliance during migrations from legacy protocols like RRP.

Protocol Mechanics

Command Categories and Structure

EPP commands are organized into three primary categories: session management, query, and transform commands, enabling clients to interact with for authentication, , and object modification in a structured manner. Session management commands handle the establishment and termination of client-server sessions. The command initiates a server greeting without parameters, while the command authenticates the client using credentials such as client and password, along with optional version and service specifications. The command ends the session gracefully, requiring no additional parameters. Query commands facilitate the retrieval and verification of without altering . These include the command, which determines object ; the command, which fetches detailed object ; the command, which manages queued messages via operations like or request; and the command in query mode, which inspects . Transform commands perform operations that modify objects on the . The command registers new objects; removes existing ones; extends registration periods; handles sponsorship changes with operations such as request, approve, or cancel; and applies modifications to object attributes. All EPP commands are encapsulated within a element, which includes a child element specifying the command name (e.g., ) and an optional element indicating the target type, such as or , along with command-specific parameters defined in object mappings. Responses to commands feature a element for or indication, with object-specific returned in and queued messages in . Every command and response includes transaction identifiers for tracking: the client transaction ID (), provided by the client within the element, and the server transaction ID (), echoed back by the server in the response's element; these are mandatory to ensure reliable communication. Commands apply to specific object types—domains, hosts, and contacts—through dedicated mappings that define the parameters and semantics for each category, allowing uniform operation across different registry objects while maintaining protocol consistency.

Object Mappings and Operations

The Extensible Provisioning Protocol (EPP) defines mappings for core objects—domains, hosts, and contacts—that enable the provisioning and management of resources in a shared central . These mappings specify the XML-based structure of each object and the operations supported on them, ensuring standardized interactions between clients and servers. The mapping handles names, the host mapping manages associations for nameservers, and the contact mapping provisions individual or organizational social information.

Domain Object

The domain object represents an name stored in a registry and includes attributes such as the itself, a registrant (referencing a object ID), status descriptors (e.g., "" for active or "pendingTransfer" for transfers in progress), nameservers (list of object references), subordinate hosts, and client identifiers for sponsoring, creating, and updating entities. Operations on domain objects include , which requires specifying a registration (1 to 99 units of years or months) and optional nameservers; querying via the command to retrieve details, optionally filtered by information; updating to add, remove, or change elements like status, nameservers, or registrant contacts; deletion, which verifies no subordinate hosts exist; to extend the registration by providing the current expiry date; and , which initiates or approves a change in sponsorship using a and . For example, creating a might involve XML elements like <domain:create><domain:name>[example.com](/page/Example.com)</domain:name><domain:period unit="y">2</domain:period><domain:ns><domain:hostObj>ns1.[example.com](/page/Example.com)</domain:hostObj></domain:ns></domain:create>.

Host Object

The host object encapsulates an host name, typically used for nameserver , with attributes including the fully qualified host name (conforming to RFC 952 and RFC 1123), IP addresses ( per RFC 791 or per RFC 4291), status (e.g., "ok" or "clientDeleteProhibited"), and client identifiers. Supported operations encompass creation with the host name and optional IP addresses for glue records; querying to obtain host details; updating to add, remove, or modify addresses, status, or even rename the host; and deletion, permitted only if the host is not associated with any domain. Hosts serve as nameservers in domain s, distinguishing between external hosts (outside the domain) and internal subordinate hosts (within it), where IP addresses are mandatory only for purposes. An example update might add an IPv4 address via <host:update><host:add><host:addr ip="v4">192.0.2.1</host:addr></host:add></host:update>.

Contact Object

The contact object stores social information for individuals or organizations, featuring a server-unique , name, optional , postal (street, city, state/province, code, country in international or localized formats), (per 5322), voice and numbers (per ITU ), status (e.g., "linked" indicating association with a or "ok"), and disclosure preferences for . Operations include creation, mandating all contact details like name and ; querying with optional info to fetch the full object; updating to modify any element, including status or adding redactions; and deletion, allowed only if unlinked from other objects. is managed through the element, which can redact fields like or from public queries while keeping them server-available. For instance, a create command might specify <contact:create><contact:postalInfo type="int"><contact:addr><contact:street>123 Example St</contact:street></contact:addr></contact:postalInfo><contact:email>[email protected]</contact:email></contact:create>. These object mappings are formally defined in RFC 5731 for domains, RFC 5732 for hosts, and RFC 5733 for contacts, with interdependencies ensuring domains reference valid contact objects as registrants and host objects as nameservers, while hosts and contacts can be subordinate to domains—preventing deletions if linkages persist. Operations utilize EPP's general command framework, such as and , tailored to each object's schema.

Practical Usage

Session Management

The Extensible Provisioning Protocol (EPP) establishes client-server sessions through the <login> command, which must be the first command sent after establishing a transport-layer connection, such as on port 700. This command includes a client identifier (<clID>, 3 to 16 characters) and a case-sensitive (<pw>, 6 to 16 characters), both established , along with optional elements for password updates (<newPW>), protocol version and negotiation (<options>), and supported services (<svcs>). The <svcs> element declares object (<objURI>) and extensions (<svcExtension>) that the client intends to use, enabling namespace negotiation to align capabilities between client and server. Upon connection establishment, the server automatically sends an EPP greeting (<greeting>) containing its identifier (<svID>), current date and time (<svDate>), a services menu (<svcMenu>) listing supported protocol versions, languages, object namespaces, and extensions, as well as data collection policies (<dcp>). Clients can explicitly request this greeting at any time using an empty <hello/> element to verify server status or retrieve updated information. Successful authentication via <login> results in a server response with result code 1000, confirming the session and any negotiated parameters; failed attempts may lead to connection closure after multiple tries, per server policy. Sessions are maintained as persistent, single connections that support pipelining of multiple EPP commands in a stream, allowing efficient processing without waiting for individual responses, provided the permits it. Asynchronous notifications, such as pending approvals, are handled via the <poll> command, where clients use op="req" to retrieve queued messages and op="ack" with a to acknowledge them, ensuring reliable delivery without blocking the session. Servers enforce inactivity timeouts, closing idle connections after a server-defined period to manage resources. To terminate a session, clients issue an empty <logout/> command, which the server acknowledges with result code 1500 before closing the underlying connection. Servers may also unilaterally end sessions due to prolonged inactivity, excessive longevity, or policy violations, returning an appropriate result code. EPP supports enhanced security through using client certificates over TLS, which supplements the primary credential-based and protects the plaintext password in transit. This combination ensures secure session establishment while allowing flexible negotiation for extensions during .

Example Transactions

The Extensible Provisioning Protocol (EPP) uses XML-formatted commands and responses to manage domain objects, with each transaction encapsulated in an <epp> root element. Common transactions illustrate the protocol's structure, including the <command> for client requests and <response> from the server, which includes result codes, data, and transaction identifiers. These examples focus on domain name mappings as defined in the EPP domain specification.

Domain Creation

A domain creation transaction uses the <create> command to register a new domain object, specifying attributes such as the , registration period, nameservers, and registrant . The command includes information for . The server responds with success (result code 1000) and creation details, including the creation date and calculated expiration date based on the period. For instance, creating "" for a 1-year period on November 14, 2025, would yield an expiration of November 14, 2026. Command Example:
xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <create>
      <domain:create xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
                     xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
        <domain:name>[example.com](/page/Example.com)</domain:name>
        <domain:period unit="y">1</domain:period>
        <domain:ns>
          <domain:hostObj>ns1.example.net</domain:hostObj>
          <domain:hostObj>ns2.example.net</domain:hostObj>
        </domain:ns>
        <domain:registrant>jd1234</domain:registrant>
        <domain:contact type="admin">sh8013</domain:contact>
        <domain:contact type="tech">sh8013</domain:contact>
        <domain:authInfo>
          <domain:pw>2fooBAR</domain:pw>
        </domain:authInfo>
      </domain:create>
    </create>
    <clTRID>ABC-12345</clTRID>
  </command>
</epp>
Response Example:
xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData>
      <domain:creData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>[example.com](/page/Example.com)</domain:name>
        <domain:crDate>2025-11-14T00:00:00.0Z</domain:crDate>
        <domain:exDate>2026-11-14T00:00:00.0Z</domain:exDate>
      </domain:creData>
    </resData>
    <trID>
      <clTRID>ABC-12345</clTRID>
      <svTRID>54321-XYZ</svTRID>
    </trID>
  </response>
</epp>

Transfer Query

To query the transfer status of a domain, the <transfer> command with op="query" is used, including the and authorization code (password) to verify the requester's rights. The response provides the transfer status (e.g., pending), requesting and acting client identifiers, relevant dates, and the . This allows clients to monitor ongoing transfers without initiating a new one. Command Example:
xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <transfer op="query">
      <domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>[example.com](/page/Example.com)</domain:name>
        <domain:authInfo>
          <domain:pw>2fooBAR</domain:pw>
        </domain:authInfo>
      </domain:transfer>
    </transfer>
    <clTRID>ABC-12346</clTRID>
  </command>
</epp>
Response Example:
xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <resData>
      <domain:trnData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>[example.com](/page/Example.com)</domain:name>
        <domain:trStatus>pending</domain:trStatus>
        <domain:reID>ClientX</domain:reID>
        <domain:reDate>2025-06-06T22:00:00.0Z</domain:reDate>
        <domain:acID>ClientY</domain:acID>
        <domain:acDate>2025-06-11T22:00:00.0Z</domain:acDate>
        <domain:exDate>2026-09-08T22:00:00.0Z</domain:exDate>
      </domain:trnData>
    </resData>
    <trID>
      <clTRID>ABC-12346</clTRID>
      <svTRID>54322-XYZ</svTRID>
    </trID>
  </response>
</epp>

Update

The <update> command modifies an existing domain object by adding, removing, or changing elements such as statuses, nameservers, or contacts. It uses <add>, <rem>, and <chg> sub-elements to specify the changes precisely. The server responds with a success code but no result data unless an extension requires it, confirming the update without returning the full object state. For example, adding a "clientHold" status prevents DNS due to issues like overdue payments. Command Example:
xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <command>
    <update>
      <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>example.com</domain:name>
        <domain:add>
          <domain:status s="clientHold" lang="en">Payment overdue.</domain:status>
        </domain:add>
      </domain:update>
    </update>
    <clTRID>ABC-12347</clTRID>
  </command>
</epp>
Response Example:
xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1000">
      <msg>Command completed successfully</msg>
    </result>
    <trID>
      <clTRID>ABC-12347</clTRID>
      <svTRID>54323-XYZ</svTRID>
    </trID>
  </response>
</epp>

Error Handling

EPP transactions include robust error responses when commands fail validation, such as missing required parameters, which returns result code 2003. The response structure identifies the , a descriptive , and optionally the specific or missing element via a <value> , allowing clients to correct and retry. This ensures compliance without exposing sensitive server details. Response Snippet Example (for code 2003):
xml
<response>
  <result code="2003">
    <msg lang="en">Required parameter missing</msg>
    <value xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
      <domain:name/>
    </value>
  </result>
  <trID>
    <clTRID>ABC-12348</clTRID>
    <svTRID>54324-XYZ</svTRID>
  </trID>
</response>

Extensions

Standardized Extensions

The Extensible Provisioning Protocol (EPP) supports a range of standardized extensions defined by the (IETF) to address specific requirements beyond the core , such as domain , internationalized naming, management, and enhanced transfer . These extensions are integrated into EPP's XML-based , allowing clients and servers to negotiate their use during session establishment while maintaining compatibility with the base . They enable more robust provisioning of domain-related objects, including delegation signer (DS) records for DNS and additional status values for lifecycle management. One foundational standardized extension is the Domain Name System (DNS) Security Extensions (DNSSEC) mapping, which facilitates the provisioning and management of DNSSEC key data associated with domain names. This extension supports two primary interfaces: the DS Data Interface, where clients directly provide delegation signer (DS) records, and the Key Data Interface, where servers derive DS records from provided public key data. Key elements include <secDNS:dsData> for DS records (with attributes like key tag, algorithm, digest type, and digest value) and <secDNS:keyData> for key pairs (including flags, protocol, algorithm, and public key). In the <create> command, clients can include <secDNS:create> to associate initial DNSSEC data with a new domain, such as a DS record example: <secDNS:dsData><keyTag>12345</keyTag><alg>3</alg><digestType>1</digestType><digest>49FD46E6C4B45C55D4AC</digest></secDNS:dsData>. Updates via <secDNS:update> allow adding, removing, or changing records, with an optional maxSigLife element to specify signature validity periods in seconds and an urgent attribute for priority processing. Support for internationalized domain names (IDNs) is standardized within the EPP domain name mapping, requiring domain names to be represented in Punycode (ASCII-compatible encoding) as per IDNA specifications, ensuring seamless handling of non-ASCII scripts without a separate extension namespace. This core integration allows EPP clients to provision IDNs by submitting Punycode-encoded labels in commands like <create> and <update>, with the protocol validating them against host name rules from RFC 952 and RFC 1123. For example, an IDN like "café.example" is transmitted as "xn--caf-dma.example", preserving backward compatibility with ASCII-only systems. The Registry Grace Period (RGP) extension introduces mechanisms to manage domain names under policies, particularly for deletions and restorations. It defines new status values such as pendingDelete (indicating a deletion request is pending), redemptionPeriod (a post-deletion phase where restoration is possible), and pendingRestore (during the restoration process). Upon deletion, a domain transitions to pendingDelete and enters the redemption , allowing registrars to reverse the action via an <update> command that includes a restore ; successful restoration returns the domain to ok status, while failure leads to purging after the pending delete period. This extension ensures compliance with registry policies by extending domain status framework. More recent standardized extensions address evolving needs in and . The extension enhances operations by replacing long, static passwords with short-lived, high-entropy random values (at least 128 bits, such as 20 printable ASCII characters), which are hashed (e.g., using SHA-256 with a ) for storage and automatically expire after a registrar-defined . These values are generated securely and used only during the process, transmitted over encrypted channels to prevent . The unhandled namespaces extension provides a way for EPP servers to convey information from unsupported URIs without failing the entire response, using an <extValue> to relocate from <resData> or <extension> sections. This maintains by converting responses to a generic EPP format, with support signaled via the urn:ietf:params:xml:ns:epp:unhandled-namespaces-1.0 in the server greeting and client . It applies to object-level extensions, command-response extensions, and poll messages, ensuring clients can process partial . For internationalized email support, the additional email address extension allows EPP contact objects to include a secondary email field that can be either ASCII or an internationalized address per SMTPUTF8 standards, using the <addlEmail:addlEmail> element with an optional primary attribute. Clients provision this via <create> and <update> commands, retrieve it through <info>, and apply disclosure rules from the primary email; the extension is negotiated using the namespace urn:ietf:params:xml:ns:epp:addlEmail-1.0. This addresses limitations in the core EPP contact mapping, which previously supported only ASCII emails. The DNS values extension, specified in 9803 (June 2025), enables clients to provision and manage TTL values for DNS resource records associated with and objects. It introduces elements like <ttl:create> and <ttl:info> to set and query TTLs, supporting defaults and updates to optimize DNS query performance and caching. The strict bundling extension ( 9095, July 2025) supports the registration of variant names as a single bundled unit, particularly for internationalized domain names (IDNs), to prevent fragmentation and ensure consistent management of related labels across scripts. Registries use this to enforce policies requiring simultaneous provisioning of variants. All standardized extensions are declared during session initiation through the <login> command's <svcs> element, where clients specify supported namespace URIs in <svcExtension><extURI> to match those announced by the in the initial <greeting>. This negotiation ensures only compatible extensions are used, with servers required to support core EPP commands regardless of extension availability, providing inherent for clients lacking extension support.

Custom Extensions

Custom extensions in the Extensible Provisioning Protocol (EPP) enable domain registries to address unique operational needs beyond the core protocol and IETF-standardized features, allowing for tailored data collection, policy enforcement, and functionality specific to individual top-level s (TLDs). These extensions are developed independently by registries and are not part of the official IETF specifications, making them proprietary implementations that must adhere to EPP's extensibility guidelines to maintain compatibility. Registries define custom extensions to support local regulatory requirements or business models, such as collecting specialized registrant information or applying TLD-specific rules during domain provisioning. A prominent example of custom extensions involves TLD-specific data requirements. The .eu registry, managed by EURid, utilizes a custom contact extension to mandate the collection of VAT identification numbers for EU-based entities, ensuring compliance with European regulations during and updates. Likewise, the .uk registry, operated by Nominet, employs extensions like contact-nom-ext-1.0.xsd to handle UK-specific address formats and organization types (e.g., "."), validating and structuring contact data to align with national standards. Registries may also build on standardized frameworks for bespoke purposes, such as using the registry fee extension outlined in 8748 to implement unique pricing structures, including refunds, grace periods, and operation-specific costs tailored to their TLD economics. Implementation of custom extensions follows EPP's XML-based , where new and attributes are defined using unique to encapsulate extension-specific data without conflicting with protocol structures. For instance, an extension namespace is declared in the of EPP commands and responses, allowing parsers to process additional payloads while preserving ; registries must document these , schemas, and usage rules in their technical specifications for registrars to integrate properly. This approach ensures that EPP commands remain intact, with extensions appearing as optional, self-contained modules that do not alter mandatory protocol flows. Custom extensions reference namespace handling mechanisms akin to those in standardized extensions, promoting . Despite their flexibility, custom extensions introduce challenges, particularly in across diverse registry environments. Registrars often face difficulties integrating multiple proprietary extensions, as variations in definitions and validation logic can lead to compatibility issues with existing EPP clients and servers, complicating multi-TLD operations. To mitigate these, registries emphasize thorough documentation and testing; like ICANN's EPP Selftest Tool provide conformance validation by simulating XML transformations and command responses, helping registrars verify extension support before deployment. , a major registry operator, has noted that the proliferation of such extensions creates implementation burdens for registrars, underscoring the need for clear guidelines to balance innovation with ecosystem-wide consistency.

Response Handling

Result Codes

The Extensible Provisioning Protocol (EPP) employs numeric result codes to indicate the outcome of commands sent from clients to servers, providing a standardized way to signal success or failure without relying solely on textual descriptions. These codes are four-digit integers embedded within the <result> element of an EPP response, as defined in the core protocol specification. Success result codes confirm that a command has been processed correctly by the server. The code 1000 signifies "Command completed successfully," indicating that the requested action has been fully executed without issues. Similarly, 1001 denotes "Command completed successfully; action pending," which is used when the command succeeds but requires additional offline processing, such as asynchronous updates to external systems. Both codes are part of the foundational set outlined in the EPP protocol. Client errors, in the 2000-2999 range, arise from issues in the command submitted by the client, such as malformed syntax or invalid parameters. Code 2000 represents "Unknown command," returned when the encounters an unrecognized command name. Code 2003 indicates "Required parameter missing," triggered if essential elements of the command are absent. Code 2004 signals "Parameter value range error," occurring when a provided parameter falls outside the acceptable range defined by the or object mappings. Code 2200 indicates "Authentication error," used when authentication of the client fails. These codes help clients identify and correct input errors promptly. Server errors are primarily in the 5000-5999 range for or internal issues, though some 2xxx codes like 2400 ("Command failed") and 2500 ("Command failed; closing ") reflect server-side problems. Code 2400 means a command failed due to an internal error. Code 2500 indicates "Command failed; closing ," a more severe error that results in the termination of the current session, usually for non-recoverable issues. These codes allow to communicate internal failures while maintaining interoperability. Result codes are always accompanied by a human-readable message in the <msg> element of the response, which provides explanatory text in English by default (with support for other languages via the lang attribute) to aid debugging and user interaction. While the core set of result codes is specified in RFC 5730, the protocol allows extensions to define additional codes for specialized functionalities, ensuring flexibility across different registry implementations.

Object Status Codes

In the Extensible Provisioning Protocol (EPP), object status codes represent the of provisioned objects such as domains, hosts, and contacts, controlling their lifecycle stages and operational prohibitions. These statuses are managed through the protocol's transform commands and are reported in query responses to reflect current permissions and pending actions. Server-managed statuses indicate the object's overall viability and server-initiated holds, while client-set statuses impose restrictions to prevent unauthorized changes. Server statuses include "ok," which denotes an active object with no pending operations or prohibitions; "inactive," applicable primarily to when no information is present; "pendingDelete," which enters a following a delete request during which is possible; "pendingTransfer," signaling an in-process ; and "serverHold," which withholds DNS publication for without affecting other operations. These are set exclusively by the , often in response to asynchronous events or enforcement, and cannot be directly modified by clients. For example, a in "pendingDelete" status remains queryable but cannot be updated or transferred until the resolves. Client statuses, prefixed with "client," are prohibitions that block specific actions to protect against errors or disputes: "clientDeleteProhibited" prevents deletion, "clientUpdateProhibited" blocks modifications, "clientTransferProhibited" inhibits transfers, and "clientRenewProhibited" (domain-specific) disallows renewals. These are applied by sponsoring clients via the <update> command, using <add> or <rem> elements to include or exclude status values from the object's status list. Servers may override client statuses based on , but clients cannot alter server-imposed ones. Status combinations follow strict rules to ensure logical consistency: the "ok" status cannot coexist with any other; pending statuses like "pendingDelete" are incompatible with their corresponding prohibitions (e.g., "pendingDelete" with "clientDeleteProhibited"); and multiple pending statuses cannot combine. Every EPP object must have at least one status value at all times. For domains, the redemption process extends the lifecycle: after the initial 0-75 day in "pendingDelete," a 30-day redemption begins, during which a "pendingRestore" status is added upon restore request, allowing full recovery with a required restore . Object-specific variations exist across EPP mappings. Domains support the full set, including "pendingRestore" and renewal-related prohibitions via the extension. Host objects, subordinate to domains, include "linked" (indicating association) alongside "ok," but lack hold or renewal statuses, with transfers handled implicitly through domains. Contact objects similarly feature fewer options, omitting "clientHold," "clientRenewProhibited," and delegation-related statuses like "inactive," focusing instead on basic prohibitions and linkages to other objects.
CategoryStatus ExamplesPurposeApplicable Objects
Server-Managedok, pendingDelete (serverHold for domains only)Lifecycle state and server prohibitionsAll (domains, hosts, contacts); serverHold limited to domains
Client-SetclientDeleteProhibited, clientTransferProhibitedClient-initiated action blocksAll, with domain-specific additions like clientRenewProhibited
PendingpendingTransfer, pendingRestoreAsynchronous operationsDomains (full set); hosts/contacts (subset, no pendingRestore)
These statuses integrate with EPP's <update> operations from the core mappings, enabling precise control over object evolution without introducing new commands.

Security Considerations

Authentication Mechanisms

The primary authentication mechanism in the Extensible Provisioning Protocol (EPP) relies on a provided within the <login> command to verify . This , of type pwAuthInfoType, must be a string between 6 and 16 characters in length and is case-sensitive, with initial credentials typically established before the first session. Clients can their during using the optional <newPW> element or, for objects, via the <update> command in the EPP , which allows modification of details associated with individual or organizational contacts. Servers may enforce policies such as limiting the number of consecutive failed attempts to prevent brute-force attacks, though the exact limits are implementation-specific. To enhance security beyond basic password authentication, EPP implementations commonly incorporate client certificates based on standards for mutual (TLS) authentication. In this approach, optionally supported by the EPP transport over mapping, both the client and server may present certificates during the TLS to establish mutual identity verification before any EPP commands are processed, ensuring strong client-server authentication at the transport layer. Additionally, many EPP servers implement IP address whitelisting as a supplementary measure, restricting access to predefined client es or ranges to further validate session origins and mitigate unauthorized connections. For authorizing object transfers, such as domains or contacts, EPP employs per-object authorization information via the <authInfo> element, often manifested as an authorization code or unique to the object. This code must be provided in the <transfer> command to confirm the requester's , with servers typically generating it as a secret value shared with the object owner. To address vulnerabilities in traditional authorization codes, 9154 introduces secure, token-based authorization information that emphasizes high-, short-lived random values (at least 128 bits of entropy) for transfers. Servers store these tokens using cryptographic hashing (e.g., SHA-256 with a 128-bit salt) to protect against exposure, while clients provide the plaintext during the transfer request for verification. EPP login and authorization passwords are transmitted in plaintext without built-in hashing, placing reliance on underlying TLS for and protection during transit. The base protocol limits password length to 16 characters, but the security extension defined in 8807 enables longer passwords (minimum 6 characters, maximum per server policy) to support higher and improved resistance to guessing attacks, while also allowing characters via the PRECIS framework for broader usability. This extension further incorporates event notifications in login responses, such as warnings for impending password expiration, to promote proactive credential management.

Transport and Data Protection

The Extensible Provisioning Protocol (EPP) operates over Transmission Control Protocol (TCP) using the IANA-assigned port 700 for server listening, establishing a single persistent connection between client and server for the duration of a session. This mapping ensures reliable, ordered delivery of EPP commands and responses, with the session terminating upon explicit logout or connection closure. Security for transport is enforced through mandatory use of Transport Layer Security (TLS), initiated by the client immediately after the TCP connection via a ClientHello message, providing confidentiality, integrity, and mutual authentication without support for unencrypted fallback in the core protocol. RFC 5734 specifies compatible TLS versions 1.0, 1.1, and 1.2 with cipher suites such as TLS_RSA_WITH_AES_128_CBC_SHA, but these have been superseded by broader recommendations deprecating TLS 1.0 and 1.1 due to known vulnerabilities like POODLE and BEAST, mandating at least TLS 1.2 as the minimum and strongly preferring TLS 1.3 for its elimination of legacy features, mandatory forward secrecy, and resistance to downgrade attacks. Post-2020 guidance, including ICANN's Registry Service Provider Handbook referencing RFC 9325, aligns EPP implementations with these updates to mitigate evolving threats. As of November 2025, ongoing standardization efforts include Internet-Drafts for mapping EPP over HTTPS (draft-ietf-regext-epp-https) and over QUIC (draft-ietf-regext-epp-quic-02), which leverage modern TLS 1.3 for enhanced security and performance. Data protection in EPP primarily relies on the TLS layer for and tamper detection, with additional safeguards against replay attacks provided by unique transaction identifiers (TRIDs)—comprising client-generated and server-assigned elements—that ensure command-response pairing and idempotency, preventing duplicate processing. Timestamps, such as the server's current UTC date in greetings () and enqueued message dates in poll responses (), further enable freshness checks to discard stale or replayed messages. XML digital signing remains optional and is not defined in the base protocol, though it may be implemented via extensions for enhanced where needed. Common vulnerabilities like man-in-the-middle (MITM) attacks are mitigated through strict TLS validation, requiring clients to verify identity via mechanisms such as pre-shared fingerprints or trusted authorities before proceeding. Denial-of-service () threats, including connection flooding, are countered by -enforced limits on concurrent connections and command rates, alongside TLS-level protections against resource-intensive handshakes. While the protocol assumes layered defenses for broader threats, these measures collectively reduce exposure in typical deployments. Best practices for operational emphasize server-side of non-sensitive elements like TRIDs and result codes to sessions without capturing credentials or , facilitating troubleshooting while minimizing risks. For EPP objects containing information—such as names, addresses, and emails handled via the contact mapping—implementations must adhere to data protection regulations like the EU's (GDPR), ensuring consent-based processing, data minimization, and secure storage to protect registrants' rights.

Core EPP RFCs

The core Extensible Provisioning Protocol (EPP) is defined by a set of five interrelated () documents published in 2009, collectively known as STD 69. These s establish the foundational protocol specifications for EPP, including its command structures, object mappings for domain names, hosts, and contacts, and transport mechanisms. They obsolete the earlier experimental 3730 series (published in ) and the proposed standard 4930 series (published in 2007), incorporating refinements based on implementation experience to achieve full status. RFC 5730 specifies the EPP core protocol, defining the extensible XML-based client-server communication framework for provisioning and managing objects in a shared central . It outlines essential commands such as greeting, , logout, and query operations, along with response formats, handling, and extensibility provisions to support additional features without breaking compatibility. This document ensures EPP's application-layer neutrality, allowing mappings to various transport layers while emphasizing security and support. RFC 5731 provides the mapping, enabling EPP clients to create, update, transfer, renew, and delete objects within a registry. It details domain-specific elements like name servers, status flags, and registration periods, while integrating with the core protocol's command-response model to facilitate automated interactions. This mapping is critical for managing top-level and second-level domains in a standardized manner. RFC 5732 defines the host mapping for provisioning Internet Protocol (IP) address delegations associated with domain names. It supports operations to create, update, and query host objects, including IP address specifications (IPv4 and IPv6) and delegation to domains, ensuring consistent representation of name server configurations across registries. This facilitates the linkage between domain and infrastructure objects in EPP sessions. RFC 5733 describes the contact mapping for handling personal and organizational information linked to domain registrations. It covers commands to create, update, and manage contact objects, incorporating data elements such as names, addresses, telephone numbers, and email addresses, with provisions for privacy and internationalized labels. This mapping ensures compliant storage and retrieval of registrant details in a privacy-sensitive environment. RFC 5734 specifies the transport over Transmission Control Protocol (TCP) secured by (TLS), mapping EPP sessions onto reliable, encrypted connections. It details connection establishment, data streaming, and graceful closure procedures, mandating TLS 1.0 or higher for and , while allowing for future transport alternatives. This is the primary mechanism for EPP deployments in production environments.

Extension and Mapping RFCs

The Extensible Provisioning Protocol (EPP) has been extended through various Request for Comments (RFCs) to address specific operational needs, such as grace periods, security enhancements, and specialized object mappings, building upon the foundational protocol defined in core RFCs. Early extensions focused on domain lifecycle management and security features. For instance, RFC 3915, published in September 2004, introduces an EPP extension mapping for handling domain registry grace periods, including redemption grace periods that allow restoration of deleted domains under specific conditions. Similarly, RFC 5910, issued in May 2010, specifies an EPP extension for provisioning and managing Domain Name System Security (DNSSEC) key material, enabling secure delegation of DNSSEC signing authority. More recent extensions have addressed evolving registry operations and interoperability challenges. RFC 9167, from December 2021, defines an EPP extension for registry maintenance notifications, allowing servers to inform clients of scheduled downtime or events via query and notification mechanisms. RFC 9038, also published in May 2021, establishes an operational practice for handling unhandled namespace URIs in EPP messages, permitting servers to return associated data without full extension support. In the area of secure transfers, RFC 9154, dated December 2021, outlines practices for using strong, random authorization information in EPP transfers to enhance security while keeping values manageable in length. Advancing internationalization, RFC 9873, released in October 2025, provides an extension for adding a secondary email address to EPP contact objects, supporting both internationalized and ASCII-only formats. Additionally, RFC 9874, from September 2025 and designated as Best Current Practice (BCP) 244, details recommended practices for deleting domain and host objects in EPP, including renaming and purging to mitigate risks like domain sniping. Mapping updates have refined EPP's application to specific object types and policies. RFC 9095, published in July 2021, extends the EPP mapping to support strict bundling registrations, where domain names are registered as a single unit to preserve their integrity. RFC 8748, from March 2020, introduces a registry fee extension for EPP, enabling servers to communicate applicable fees, credits, and grace periods for transactions involving domains, hosts, or contacts. EPP RFCs also evolve through obsoletions to incorporate updates and clarifications. For example, RFC 5731, published in August 2009, obsoletes RFC 4931 by providing an updated EPP mapping for provisioning and management, with improved XML syntax and command semantics. This process ensures ongoing alignment with protocol advancements while maintaining where possible.

References

  1. [1]
    RFC 5730 - Extensible Provisioning Protocol (EPP) - IETF Datatracker
    This document describes an application-layer client-server protocol for the provisioning and management of objects stored in a shared central repository.
  2. [2]
    RFC 5733 - Extensible Provisioning Protocol (EPP) Contact Mapping
    This document describes an Extensible Provisioning Protocol (EPP) mapping for the provisioning and management of individual or organizational social ...
  3. [3]
    EPP Status Codes | What Do They Mean, and Why Should I Know?
    Jun 16, 2014 · Extensible Provisioning Protocol (EPP) domain status codes, also called domain name status codes, indicate the status of a domain name registration.
  4. [4]
    RFC 5731: Extensible Provisioning Protocol (EPP) Domain Name Mapping
    ### Summary of RFC 5731 Sections on IDN Support in EPP Domain Mapping
  5. [5]
  6. [6]
    RFC 5734 - Extensible Provisioning Protocol (EPP) Transport over ...
    Scott Hollenbeck ... Acknowledgements RFC 3734 is a product of the PROVREG working group, which suggested improvements and provided many invaluable comments.Missing: PROVWG | Show results with:PROVWG
  7. [7]
    New Work in the Development and Management of EPP Extensions
    The working group was formed to create an internet Assigned Numbers Authority (IANA) registry of Extensible Provisioning Protocol (EPP) extensions.
  8. [8]
    draft-hollenbeck-epp-00 - Extensible Provisioning Protocol
    This document describes a connection-oriented, application layer client-server protocol for the provisioning and management of objects stored in a shared ...Missing: PROVWG | Show results with:PROVWG
  9. [9]
    Proposed Unsponsored TLD Agreement: Appendix C, Part 2 (.name)
    Jul 2, 2001 · As the commonly used "NSI Registry Registrar Protocol (RRP) Version 1.1. ... The protocol, "Extensible Provisioning Protocol" (EPP), is now being ...
  10. [10]
    Helpful Howto for EPP Registrars
    Sep 28, 2001 · This document is intended to aid registrars who are just starting out with EPP. Whether you are new to the domain name registrar scene, or if you are growing ...
  11. [11]
    Provisioning Registry Protocol (provreg) - IETF Datatracker
    This working group will develop a specification of the requirements and limitations for a protocol that enables a registrar to access multiple registries.Missing: formation | Show results with:formation
  12. [12]
    RFC 3375 - Generic Registry-Registrar Protocol Requirements
    Oct 14, 2015 · 1 Object Identification Some objects, such as name servers and contacts, have utility in multiple registries. · 2 Object Registration [1] The ...Missing: EPP | Show results with:EPP
  13. [13]
    RFC 3730 - Extensible Provisioning Protocol (EPP) - IETF Datatracker
    This document describes an application layer client-server protocol for the provisioning and management of objects stored in a shared central repository.
  14. [14]
    RFC 3732 - Extensible Provisioning Protocol (EPP) Host Mapping
    This document describes an Extensible Provisioning Protocol (EPP) mapping for the provisioning and management of Internet host names stored in a shared central ...
  15. [15]
    RFC 3733 - Extensible Provisioning Protocol (EPP) Contact Mapping
    This document describes an Extensible Provisioning Protocol (EPP) mapping for the provisioning and management of individual or organizational social ...
  16. [16]
    RFC 4930 - Extensible Provisioning Protocol (EPP) - IETF Datatracker
    RFC 4930. Draft Standard. Title, Extensible Provisioning Protocol (EPP). Document, Document type, RFC - Draft Standard May 2007. Report errata. Obsoleted by RFC ...
  17. [17]
    RFC 4933 - Extensible Provisioning Protocol (EPP) Contact Mapping
    [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004. [RFC4930] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", RFC 4930, ...
  18. [18]
    STD 69 - IETF Datatracker
    STD 69 consists of: RFC 5730 : Extensible Provisioning Protocol (EPP), RFC 5731 : Extensible Provisioning Protocol (EPP), Domain Name Mapping.
  19. [19]
    RFC 5910 - Domain Name System (DNS) Security Extensions ...
    This document describes an Extensible Provisioning Protocol (EPP) extension mapping for the provisioning and management of Domain Name System security (DNSSEC) ...
  20. [20]
    RFC 9038 - Extensible Provisioning Protocol (EPP) Unhandled ...
    This document defines an operational practice that enables the server to return information associated with unhandled namespace URIs.
  21. [21]
    Extensible Provisioning Protocol Extensions (eppext)
    The provreg working group was chartered to develop EPP, but not these additional extensions. The working group was closed in 2004 after producing a number of ...
  22. [22]
    Registration Protocols Extensions (regext) - IETF Datatracker
    The Extensible Provisioning Protocol (EPP, Standard 69) is the standard domain name provisioning protocol for top-level domain name registries.
  23. [23]
    APTLD Newsletter (1 April 2024)
    Apr 1, 2024 · The CoCCA registry software is used to manage 57 ccTLDs. The integration enables member ccTLDs to offer #AbuseShield and #BrandLock with ...
  24. [24]
    [PDF] SAC132: The Domain Name System Runs on Free and Open ...
    Sep 25, 2025 · To automate the millions of transactions between them, registrars and registries use the Extensible Provisioning Protocol (EPP), a standardized ...
  25. [25]
    A Java EPP client for FRED (Free Registry for ENUM and Domains)
    FRED is open-source software for running a domain and ENUM Registry, developed by CZ.NIC, the .CZ and 0.2.4.e164.arpa domain Registry.Missing: implementations CoCCA ccTLDs gTLDs
  26. [26]
    metaregistrar/php-epp-client - GitHub
    This code will provide you with a fully functional EPP client to connect to any registry world-wide that supports EPP.Missing: commercial GoDaddy Tucows libraries Python Java
  27. [27]
    pyepp - PyPI
    PyEPP. A Python API on top of the EPP protocol and an EPP CLI client to work easier with registry systems. This is a Python ...
  28. [28]
    EPPClient (EPP RTK Java API Documentation)
    Connects to and logs into the EPP Server using the given hostname, port, client id and password It is recommended to use connectAndGetGreeting() to connect and ...
  29. [29]
    RFC 5910 - Domain Name System (DNS) Security Extensions ...
    This document describes an Extensible Provisioning Protocol (EPP) extension mapping for the provisioning and management of Domain Name System security (DNSSEC) ...
  30. [30]
    EPP SDKs | Guide and Tools - Verisign
    Verisign implements to the entire EPP standard. Use Verisign's EPP SDKs guides, and tools to help you develop your client applications.Missing: proprietary | Show results with:proprietary
  31. [31]
  32. [32]
  33. [33]
  34. [34]
  35. [35]
  36. [36]
  37. [37]
  38. [38]
    RFC 5732: Extensible Provisioning Protocol (EPP) Host Mapping
    ### Summary of RFC 5732 - EPP Host Mapping
  39. [39]
  40. [40]
  41. [41]
  42. [42]
  43. [43]
  44. [44]
  45. [45]
  46. [46]
  47. [47]
  48. [48]
  49. [49]
  50. [50]
  51. [51]
  52. [52]
  53. [53]
  54. [54]
  55. [55]
  56. [56]
  57. [57]
  58. [58]
  59. [59]
  60. [60]
    Extensible Provisioning Protocol (EPP) Domain Name Mapping
    This document describes an Extensible Provisioning Protocol (EPP) mapping for the provisioning and management of Internet domain names stored in a shared ...
  61. [61]
    RFC 5730: Extensible Provisioning Protocol (EPP)
    This document describes an application-layer client-server protocol for the provisioning and management of objects stored in a shared central repository.Missing: early | Show results with:early
  62. [62]
    RFC 5910: Domain Name System (DNS) Security Extensions ...
    This document describes an Extensible Provisioning Protocol (EPP) extension mapping for the provisioning and management of Domain Name System security (DNSSEC) ...
  63. [63]
    RFC 3915 - Domain Registry Grace Period Mapping for the ...
    This document describes an Extensible Provisioning Protocol (EPP) extension mapping for the management of Domain Name System (DNS) domain names subject to ...
  64. [64]
    RFC 9154 - Extensible Provisioning Protocol (EPP) Secure ...
    Dec 30, 2021 · This document defines an operational practice, using the EPP RFCs, that leverages the use of strong, random authorization information values that are short ...
  65. [65]
    Extensible Provisioning Protocol (EPP) Unhandled Namespaces
    The Extensible Provisioning Protocol (EPP), as defined in RFC 5730, includes a method for the client and server to determine the objects to be managed ...
  66. [66]
    RFC 9873: Additional Email Address Extension for the Extensible Provisioning Protocol (EPP)
    ### Summary of RFC 9873: Additional Email Address Extension for EPP
  67. [67]
    Guidelines for Extending the Extensible Provisioning Protocol (EPP)
    This document presents guidelines for use of EPP's extension mechanisms to define new features and object management capabilities.
  68. [68]
    RFC 9095: Extensible Provisioning Protocol (EPP) Domain Name ...
    This document describes an extension of Extensible Provisioning Protocol (EPP) domain name mapping for the provisioning and management of strict bundling ...
  69. [69]
    eurid.rs - source
    EPP commands relating to EURid extensions use super::super::eurid::{ is_entity_natural_person, ContactExtension, ContactExtensionUpdate, ContactType ...
  70. [70]
    EPP Schemas and Namespaces - Nominet Registrar Resources
    EPP Schemas and Namespaces. Schemas. We use the following schemas for our implementation of Standard EPP: Standard EPP: epp-1.0.xsd – The base EPP schema.Missing: declaration | Show results with:declaration
  71. [71]
    icann/rst-epp-selftest-tool - GitHub
    The purpose of the EPP Selftest Tool is to help gTLD applicants prepare for Pre-Delegation Testing (PDT) by clarifying the transformation from input XML to ...Missing: conformance | Show results with:conformance
  72. [72]
    Registration Operations Archives - Verisign Blog
    I've spoken to a number of registrars who have described the challenges they face in implementing the many different EPP extensions being developed by registry ...
  73. [73]
  74. [74]
  75. [75]
  76. [76]
    Introduction — Registrar documentation
    As a registrar, you can specify 10 IP addresses from which you are allowed to connect with our EPP server. Although you have 10 IP addresses, DNS Belgium allows ...
  77. [77]
  78. [78]
    RFC 9154: Extensible Provisioning Protocol (EPP) Secure ...
    The Extensible Provisioning Protocol (EPP) (RFC 5730) defines the use of authorization information to authorize a transfer of an EPP object, ...
  79. [79]
  80. [80]
  81. [81]
  82. [82]
    RFC 5734: Extensible Provisioning Protocol (EPP) Transport over TCP
    This document describes how an Extensible Provisioning Protocol (EPP) session is mapped onto a single Transmission Control Protocol (TCP) connection.
  83. [83]
  84. [84]
    [PDF] RSP Handbook v1.2.1 - New gTLD Program - icann
    RSPs play an important role in the Domain Name System (DNS) eco-system, including supporting technical operations and providing services to registry ...
  85. [85]
    RFC 5733: Extensible Provisioning Protocol (EPP) Contact Mapping
    This document describes an Extensible Provisioning Protocol (EPP) mapping for the provisioning and management of individual or organizational social ...
  86. [86]
    Information on STD 69 - » RFC Editor
    This document describes an application-layer client-server protocol for the provisioning and management of objects stored in a shared central repository.
  87. [87]
    RFC 9154 - Extensible Provisioning Protocol (EPP) Secure ...
    Abstract. The Extensible Provisioning Protocol (EPP) (RFC 5730) defines the use of authorization information to authorize a transfer of an EPP object, such as ...
  88. [88]
    RFC 9874 - Best Practices for Deletion of Domain and Host Objects ...
    EPP servers can employ a range of practices for domain and host object deletion. Notably, the scope of any practice discussed here is the EPP server that ...