ENS Resolvers and Records Explained
Owning a .eth name and using a .eth name are two different things. Ownership lives in the registry. What the name actually does, which address it points to and what it resolves to, lives in its records, and records are served by a resolver.
What a resolver is
A resolver is a contract that maps a name to the resource it points to, such as cryptocurrency addresses or a content hash. Every name has a resolver field in the registry, and that field tells the protocol where to look for the name's records.
Naming without records is naming with nothing in it. If someone sends ETH to your name and the address record is empty, the name resolves to nothing.
The records that matter most
- ETH Address record. The most common record type. It determines which ETH address the name points to. This is the one that matters for receiving funds.
- Other cryptocurrency addresses. Names can point to addresses on other chains, so one name can receive across several networks.
- Content hash. Lets a name point to a website, such as an IPFS or Swarm hash.
- Text records. Free-form key and value pairs used for profile information.
- Avatar record. A text record with avatar as its key and a URI as its value. This is what displays as your profile picture.
The Public Resolver
By default, newly registered names use the Public Resolver. It allows the current manager or controller of the name to update any records. For most users this is all you need, and it is what ENS tooling sets up for you automatically.
Wildcard and offchain resolvers
A wildcard resolver allows a single resolver to handle records for an entire set of subnames rather than setting a resolver per name. This is common for projects issuing many subnames.
Records do not have to be stored onchain. Names can use a special resolver to resolve records for subnames that do not exist onchain in the registry. This is typically done with CCIP Read, which lets a lookup be answered from an offchain source and verified back against the chain.
To know which contract actually holds these permissions, see the registry, registrar and controller guide.
Owner and manager are not the same permission
The owner of a name is the entity in the registry's owner field. An owner may transfer ownership, set a resolver, and create or reassign subdomains.
The manager, sometimes called the controller, is the address permitted to make record changes on a day-to-day basis. A common and sensible setup is to hold ownership in a secure or multisig address while a separate address manages records, so routine updates never require exposing the owner key.
Checking that your records actually work
Record and ownership drift is common; see how to keep ENS records in sync if a name will not respond to edits.
- Confirm the ETH address record is set. An empty address record is the most common cause of a name that "does not work".
- Confirm the manager matches your intention. If a manager address is one you no longer control, you cannot update records.
- Re-check after any transfer. Changing ownership can leave records pointing where you no longer want them.
Next steps
See the ENS learning hub for the whole guide set. Read managing an ENS portfolio if you hold several names, or the subnames guide if you plan to issue subnames and need wildcard resolvers.
Sources
- ENS Documentation - resolvers, wildcard resolvers, and the Public Resolver
- ENS Documentation - owner, manager, and registry permissions
- ENS Documentation - CCIP Read and offchain resolution