Reverse resolution in ENS - the process of mapping from an Ethereum address (eg, 0x1234...) to an ENS name - is handled using a special namespace, .addr.reverse. A special-purpose registrar controls this namespace and allocates subdomains to any caller based on their address. The reverse registrar is specified in EIP 181.
For example, the account
0x314159265dd8dbb310642f98f50c066173c1259b can claim
After doing so, it can configure a resolver and expose metadata, such as a canonical ENS name for this address.
The reverse registrar provides functions to
claim a reverse record,
as well as a convenience function (
setName) to configure the record as it's most commonly used, as a way of specifying a canonical name for an address.
If you are interested in querying the primary name for an address you can checkout the web section.
function setName(string memory name) public returns (bytes32)
Configures the caller's reverse ENS record to point to the provided
This convenience function streamlines the process of setting up a reverse record for the common case where a user only wants to configure a reverse name and nothing else. It performs the following steps:
- Sets the reverse record for the caller to be owned by the ReverseRegistrar.
- Sets the reverse record for the caller to have
defaultResolveras its resolver.
- Sets the
name()field in the
defaultResolverfor the caller's reverse record to
In short, after calling this, a user has a fully configured reverse record claiming the provided name as that account's canonical name.
Users wanting more flexibility will need to use
claimWithResolver and configure records manually on their chosen resolver contract.
The current infrastructure for primary names across multiple chains is being worked on.
function claim(address owner) public returns (bytes32);
Claims the caller's address in the reverse registrar, assigning ownership of the reverse record to
owner. Equivalent to calling
function claimWithResolver(address owner, address resolver) public returns (bytes32)
Claims the caller's address in the reverse registrar, assigning
ownership of the reverse record to owner. If
resolver is nonzero, also updates the record's resolver.
After calling this function:
- The reverse record for the caller (1234....addr.reverse) is owned by
resolveris nonzero, the reverse record for the caller has its resolver set to
resolver; otherwise it is left unchanged.
Resolver public defaultResolver;
Returns the address of the resolver contract that the
ReverseRegistrar uses for