Portal Community
Manual implementation, mainnet-scoped: ENS resolution here is implemented manually (namehash + classic Registry→Resolver two-step lookup) rather than via the dedicated Nethereum.ENS package. It's cross-checked against the EIP-137 namehash test vector and known ENS function selectors, but is flagged for further verification against real ENS test vectors beyond plain-ASCII .eth names before being relied on in production. The ENS Registry contract only exists at its well-known address on Ethereum mainnet and some historical/current testnets (Sepolia included) — run these operations with network=ethereum, not an L2. See Networks.

resolve

Forward resolution: ENS name → address.

FieldTypeRequiredDescription
nametext✓ YesENS name, e.g. vitalik.eth.
{ "success": true, "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "resolverAddress": "0x4976fb03..." }

reverse

Reverse resolution: address → ENS name, via the Reverse Registrar.

FieldTypeRequiredDescription
addresstext✓ YesAddress to look up.
{ "success": true, "name": "vitalik.eth", "resolverAddress": "0x4976fb03..." }

avatar

Shorthand for the "avatar" text record (ENSIP-12).

FieldTypeRequiredDescription
nametext✓ YesENS name.
{ "success": true, "avatarUri": "eip155:1/erc721:0xBC4CA0.../1234" }
An empty avatarUri with success: true means the name resolves but has no avatar set — that's normal ENS behavior, not a failure.

text

Arbitrary text record lookup (EIP-634 / ENSIP-5) — e.g. email, url, com.twitter.

FieldTypeRequiredDescription
nametext✓ YesENS name.
keytext✓ YesText record key to fetch.
{ "success": true, "key": "com.twitter", "value": "VitalikButerin" }

resolver

Returns just the resolver contract address registered for a name — useful for debugging resolution failures without querying the resolver itself.

FieldTypeRequiredDescription
nametext✓ YesENS name.
{ "success": true, "resolverAddress": "0x4976fb03..." }