Bytecode verified via sibling
This contract shares identical runtime bytecode with URLhint (0x73ed5ef6...) which has been verified through compiler archaeology.
go-ethereum's built-in URL hinter, turning a content hash into a download location
Historical Significance
One of the three registrar contracts go-ethereum shipped for the Frontier release. register binds a content hash to a URL, split across a fixed array of slots so a long URL can be stored in pieces, and the first account to register a given hash keeps the right to change it. Together with the hash registrar it made natspec documentation resolvable: a contract points at a documentation hash, and this contract says where to fetch it. The source is UrlHintSrc in go-ethereum's common/registrar/contracts.go, and the deployed creation code is byte for byte the UrlHintCode constant beside it. The published source restores the mapping keyword that the constant in that file drops from the url declaration, without which nothing compiles. Etherscan cannot verify it: the bytecode came from the PoC-8 era cpp-ethereum compiler, which reports itself as version 0.8.2 and predates every compiler Etherscan offers.
Context
Deployed on 10 August 2015, two minutes after the hash registrar and from the same account.
Key Facts
Description
One of the three registrar contracts go-ethereum shipped for the Frontier release. register binds a content hash to a URL, split across a fixed array of slots so a long URL can be stored in pieces, and the first account to register a given hash keeps the right to change it. Together with the hash registrar it made natspec documentation resolvable: a contract points at a documentation hash, and this contract says where to fetch it. The source is UrlHintSrc in go-ethereum's common/registrar/contracts.go, and the deployed creation code is byte for byte the UrlHintCode constant beside it. The published source restores the mapping keyword that the constant in that file drops from the url declaration, without which nothing compiles. Etherscan cannot verify it: the bytecode came from the PoC-8 era cpp-ethereum compiler, which reports itself as version 0.8.2 and predates every compiler Etherscan offers.
Source Verified
On-chain runtime is byte-for-byte identical to go-ethereum's hardcoded UrlHintCode (common/registrar/contracts.go). Source is the EF's own published URLhint.. Optimizer: ON (200 runs)
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.
Bytecode Overview
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
// Verified by EthereumHistory (ethereumhistory.com)
// Source: go-ethereum common/registrar/contracts.go (UrlHintSrc), the Ethereum
// Foundation's hardcoded Frontier registrar. The on-chain runtime at
// 0x73ed5ef6c010727dfd2671dbb70faac19ec18626 is byte-for-byte identical to the
// `UrlHintCode` constant compiled into go-ethereum.
contract URLhint {
function register(uint256 _hash, uint8 idx, uint256 _url) {
if (owner[_hash] == 0 || owner[_hash] == msg.sender) {
owner[_hash] = msg.sender;
url[_hash][idx] = _url;
}
}
mapping (uint256 => address) owner;
mapping (uint256 => uint256[256]) url;
}
External Links
Related contracts
globalregistrar
Same deployerA second deployment of the Ethereum GlobalRegistrar — the early name registry that predated ENS — made on August 10, 2015.
0x2272d8...18f1a9August 10, 2015Contract 0xa85146...9bbf06
Same deployergo-ethereum's built-in hash registrar, mapping a key to a content hash
0xa85146...9bbf06August 10, 2015Ballot
Same deployerDelegated voting with a proposal count fixed at deployment
0x3cf26c...b6a8e1August 18, 2015Ballot
Same deployerDelegated voting with a proposal count fixed at deployment
0x56ce77...b44745August 18, 2015