Reverse suite

Reverse RNS records are stored in the RNS hierarchy in the same fashion as regular records, under a reserved domain, addr.reverse.

Compatible with EIP-181.


Reverse resolving

To generate the RNS name for a given account's reverse records, convert the account to hexadecimal representation in lower-case, and append addr.reverse. For instance, the RNS registry's address at 0x112234455c3a32fd11230c42e7bccd4a84e02010 has any reverse records stored at 112234455c3a32fd11230c42e7bccd4a84e02010.addr.reverse.

function reverseResolve (address) {
  const reverseName = `${address.slice(2).toLowerCase}.addr.reverse`;
  const node = namehash(reverseName);
  const resolver = rns.resolver(node);
  const name =;
  return name;

Ensure a reverse lookup

As the owner of the reverse-node is able to set any name as resolution after claiming, it is important to ensure the resulting `name` is used in the forward-resolution. To do so you might query the name's address resolution.

Register a reverse resolution

The owner of the addr.reverse domain is a registrar that permits the caller to take ownership of the reverse record for their own address.

function registerReverse (address, owner) {
  reverseRegistrar.claim(owner, { from: address });


Receive updates

Get the latest updates from the Rootstock ecosystem