Managing Domain Tokens With Ethereal

About Ethereal

Ethereal is an open-source utility for managing Ethereum wallets and tokens.

It provides complete support for ENS domain tokens, including forward and reverse address resolution, public keys, subdomain management, and content and text records.

The Ethereal GitHub project and full documentation can be found at https://github.com/wealdtech/ethereal

What You Will Need

  • A Geth, Mist, or Parity wallet
  • Golang compiler

Installation

You can compile and install Ethereal in one step with go get github.com/wealdtech/ethereal.

Usage

Ethereal will find Geth, Mist, and Parity wallets in their standard locations.

Run ethereal account list to list available accounts.

To get available information on your domain token, you can use:

ethereal ens info --domain=mydomain.kred

This will return results in this form:

Registrant is mydomain.kred (0x388Ea662EF2c223eC0B047D41Bf3c0f362142ad5)
Registration expires at 2020-03-30 19:04:48 +0100 BST
Controller is mydomain.kred   (0x388Ea662EF2c223eC0B047D41Bf3c0f362142ad5)
Resolver is 0x4C641FB9BAd9b60EF180c31F56051cE826d21A9A
Domain resolves to 0xe8E98228Ca36591952Efdf6F645C5B229E6Cf688
Address resolves to mydomain.kred

To get the Ethereum address attached to a domain token, use:

ethereal ens address get --domain=mydomain.kred

To set the address for your domain token, use:

ethereal ens address set --domain=mydomain.kred --address=0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf

To check the reverse ENS lookup of your token - given the address - you can use:

ethereal ens domain get --address=0x6813Eb9362372EEF6200f3b1dbC3f819671cBA69

And to set or update the reverse lookup:

ethereal ens domain set --address=0x6813Eb9362372EEF6200f3b1dbC3f819671cBA69 --domain=mydomain.kred

To set the public key for your domain token, you can use:

ethereal ens pubkey set --domain=mydomain.kred --key='(0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f,0x1f1e1d1c1b1a191817161514131211100f0e0d0b0c0a09080706050403020100)'

And you can look up the public key for any domain token with:

ethereal ens pubkey get --domain=mydomain.kred

You can create text records for your domain - equivalent to DNS text records - using:

ethereal ens text set --domain=mydomain.kred --key="My info" --text="Information goes here"

Creating Subdomains

You can create subdomains simply using the subdomain create command:

ethereal ens subdomain create --domain=mydomain.kred --subdomain=mysub

Once created, subdomains can be managed exactly as with their parent domain.