The URL hint registry hardcoded into go-ethereum — maps content hashes to URL hints where the actual files (like NatSpec documentation) could be retrieved. Thir
Historical Significance
UrlHint was the bridge between Ethereum's on-chain content-addressing system and the off-chain web — a proto-oracle for metadata resolution. This pattern of using on-chain registries to point to off-chain resources would become a fundamental building block of Web3 infrastructure, later refined by ENS content records, IPFS content-addressing, and EIP-1577 (contenthash).
Context
In September 2015, hosting infrastructure for Ethereum metadata was primitive — there was no IPFS integration, no Swarm network, and no decentralized storage. UrlHint solved the practical problem of pointing from an on-chain hash to a traditional HTTP URL where documentation could be found. The three registrar contracts (GlobalRegistrar, HashReg, UrlHint) were the minimal viable infrastructure needed to make NatSpec functional on Frontier mainnet.
Contract Information
Key Facts
Description
Deployed on September 24, 2015 (block 282,898), UrlHint completes the three-contract registrar infrastructure deployed by the same go-ethereum core developer within an 18-block window on the same day. It maps content hashes to URL hints — the final step in resolving on-chain metadata to a retrievable off-chain resource.
In the NatSpec workflow, the chain of resolution was:
- GlobalRegistrar: Look up a name → get an address
- HashReg: Look up a code/key hash → get a content hash
- UrlHint (this contract): Look up the content hash → get a URL where the actual JSON documentation can be fetched
This allowed geth to start from a contract address, find its code hash, resolve that to a documentation content hash, and finally retrieve the URL where the NatSpec JSON was hosted — displaying human-readable transaction descriptions to users before signing.
The contract's address was hardcoded into go-ethereum as UrlHintAddr = "0x73ed5ef6c010727dfd2671dbb70faac19ec18626" // frontier in common/registrar/registrar.go. Its core function was register(uint256,uint8,uint256) — taking a content hash, a URL scheme identifier, and the URL data. No source code was verified on Etherscan, but the bytecode was compiled from Solidity source embedded in the go-ethereum codebase.
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Frontier Era
The initial release of Ethereum. A bare-bones implementation for technical users.