The ENS Namehash Calculator computes the 32-byte node identifier that Ethereum Name Service contracts use to resolve a name. It implements the EIP-137 algorithm, including the recursive keccak-256 hashing, entirely in your browser.
How it works
ENS contracts cannot store arbitrary strings cheaply, so every name is reduced to a fixed 32-byte node via the namehash algorithm. The recursive definition from EIP-137 is:
namehash([]) = 0x0000...0000 (32 zero bytes)
namehash([label, ...rest]) =
keccak256( namehash(rest) || keccak256(label) )
In practice you process labels from right to left. Starting from 32 zero bytes,
for each label you compute its labelhash = keccak256(label), concatenate it
after the running node, and hash again with keccak-256.
Labelhash vs namehash
The labelhash is the keccak-256 of a single label between dots — for example
keccak256("vitalik"). The namehash combines every labelhash down the tree.
A .eth second-level registration’s NFT token ID is the labelhash of its
second-level label, while resolvers are keyed by the full namehash.
Example and notes
For eth, namehash is
keccak256(0x00…00 || keccak256("eth")), and vitalik.eth then becomes
keccak256(namehash("eth") || keccak256("vitalik")). This tool uses keccak-256,
not NIST SHA3-256 — they differ by a single padding byte and are not
interchangeable. For full ENS compliance, names should also be UTS-46
normalised; this tool lowercases input but does not perform full normalisation.