0

Can the Registry Domain ID be used to track if a domain still belongs to the same registrant (except for ownership changes) if transferred to a different registrar?

Alastair Irvine
  • 1,182
  • 11
  • 24

2 Answers2

1

You can not derive any real conclusion from this field. It is controlled by the registry so it can be whatever it wants. It is like a "sequence" in a RDBMS if you want, so it should stay the same for a given domain (there is at least one registry where it would also be the same per name, that is if the name is deleted and then recreated then the ID will be the same again; example found in .EU where the ROID - but not shown in whois anyway - is just 'whatever_eu-EURIDfor the domainwhatever.eu`; but in most cases each "lifecycle" of a domain even with the same name will get a different ID).

But you should treat it as opaque blob, and not rely on it.

If you need to check if the registrar changes or the registrant changes you would better instead just test the registrar or registrant contact ID parts, you do not need even to look at the registry ID part.

From where I know this? I maintain registry and registrar whois servers and databases, so I have some experience from where this field comes from and how it is handled.

If you want a formal definition the "registry id" comes in fact from EPP ROID element as defined in RFC5731:

A element that contains the Repository Object IDentifier assigned to the domain object when the object was created.

Note that it says nothing about how the field is provisioned or changed by the registry.

RFC5730 just says:

When an command has been processed successfully, a server MUST respond with an EPP element that MUST contain a child element that identifies the object namespace and the Repository Object IDentifier (ROID) that was assigned to the object when the object was created.

To be honest, it is more noise than anything else, it is like registry internal housekeeping, there is little value to expose it, even for registrars (no command in EPP uses this "roid" as input).

PS: nowadays you should use RDAP, not whois.

$ curl --silent https://rdap.verisign.com/com/v1/domain/example.com | jq .handle
"2336799_DOMAIN_COM-VRSN"

See https://icann.org/rdap for an introduction on it (for gTLDs).

If you look at RFC7483 for RDAP that defines its fields, handle is defined as such:

DNRs and RIRs have registry-unique identifiers that may be used to specifically reference an object instance. The semantics of this data type as found in this document are to be a registry-unique reference to the closest enclosing object where the value is found. The data type names "registryId", "roid", "nic-handle", "registrationNo", etc., are terms often synonymous with this data type. In this document, the term "handle" is used. The term exposed to users by clients is a presentation issue beyond the scope of this document.

Patrick Mevzek
  • 9,921
  • 7
  • 32
  • 43
0

This command was run in 2019:

bob@linux ~ $ whois examplexyz.com
   Domain Name: examplexyz.com
   Registry Domain ID: 1234567890_DOMAIN_COM-VRSN
   Registrar WHOIS Server: whois.fastdomain.com
   Registrar URL: http://www.fastdomain.com
   ...

This command was run in 2020:

bob@linux ~ $ whois examplexyz.com
   Domain Name: examplexyz.com
   Registry Domain ID: 1234567890_DOMAIN_COM-VRSN
   Registrar WHOIS Server: whois.godaddy.com
   Registrar URL: http://www.godaddy.com
   ...

So even after transferring to a different registrar, the Registry Domain ID stays the same.

Note that the values have been changed, but only on a like-for-like basis.

Alastair Irvine
  • 1,182
  • 11
  • 24