> For the complete documentation index, see [llms.txt](https://getheminames.gitbook.io/getheminames/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://getheminames.gitbook.io/getheminames/readme/terminology.md).

# Terminology

**Name**: A getHemiNames identifier, such as semi.hemi. Names consist of multiple parts, called labels, which are separated by dots.

**Label**: It refers to an individual component of a name, such as 'semi'.

**Labelhash**: The keccak256 hash of an individual label.

**Controller**: The account that may edit the records of a name. It may be changed by the Registrant or Controller.

**Owner:** The owners of names in the getHemiNames registry can manage their names by transferring ownership, setting resolvers or TTLs, and creating or reassigning subdomains.

**Registrar**: A registrar is a contract responsible for allocating subdomains. Registrars can be configured at any level of getHemiNames, and are pointed to by the owner field of the registry.

**Registration**: A registration is a registrar's record of a user's ownership of a name, with expiry date and fees paid. It is separate from the registry's owner field.

**Registrant:** The owner of a registration. The registrant may transfer the registration, set the Controller, and reclaim ownership of the name in the registry if required.

**Registry**: The Registry is the core contract of getHemiNames. It maintains a mapping from domain name(at any level - x, y.x, z.y.x etc) to owner, resolver, and other metadata.

**Resolver**: A resolver is a contract that maps name to the resource (e.g. cryptocurrency addresses, content hash, etc). Resolvers are pointed to by the resolver field of the registry.
