Fixed fee name registry deployed 7 August 2015, the night before NameRegistry and by the same account. Same 69 ETH fee, no read functions.
Historical Significance
The direct predecessor of NameRegistry 0xa1a111bc074c9cfa781f0c38e63bd51c91b8af00, and part of the line of registry experiments that led to ENS.
Context
Deployed on 7 August 2015 by 0xb7576e9d314df41ec5506494293afb1bd5d3f65d, the account that went on to deploy NameRegistry and Gavin Wood's ExpRegistrar contracts. Frontier was barely a week old. Naming was one of the first problems the new chain was pointed at, and this is an early attempt at it: reserve a name, point it at an address, get your deposit back when you are done with it. The exact source has been recovered and is now verified on Etherscan under Solidity v0.1.1+commit.6ff4cd6 with the optimizer on, reproducing both the 577 byte creation code and the 558 byte runtime exactly. The source shown on this record predates that recovery and is an approximation, missing the 69 ether fee, the Changed event and the refund on disown. Read the verified source on Etherscan until this record can be unlocked.
Key Facts
Description
A name registry contract deployed at block 50,500 (August 13, 2015). Users can reserve names (bytes32 keys), set an address for each name, transfer ownership, and disown entries. Uses a simple struct with address and owner fields. The deployer (0xb7576e9d31) deployed four contracts total during Frontier.
Source Verified
near_exact_match: all 4 selectors confirmed via openchain.xyz (reserve, transfer, setAddr, disown). Source structure reconstructed from bytecode analysis. Exact bytecode match not achieved due to 0.3.x dispatch codegen differences.
Historian Categories
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 (near-exact bytecode match).
Show source code (Solidity)
contract NameReg {
struct Record {
address addr;
address owner;
}
mapping(bytes32 => Record) records;
function reserve(bytes32 name) {
if (records[name].owner == 0) {
records[name].owner = msg.sender;
}
}
function transfer(bytes32 name, address newOwner) {
if (records[name].owner == msg.sender) {
records[name].owner = newOwner;
}
}
function setAddr(bytes32 name, address addr) {
if (records[name].owner == msg.sender) {
records[name].addr = addr;
}
}
function disown(bytes32 name, address recipient) {
if (records[name].owner == msg.sender) {
records[name].addr = recipient;
records[name].owner = 0;
}
}
}External Links
Related contracts
NameRegistry
Same deployerFixed-fee name registry from Day 9 of Ethereum (Aug 8, 2015). Reserve names for 69 ETH, resolve addresses. A precursor to ENS.
0xa1a111...b8af00August 8, 2015ExpRegistrar
Same deployerFirst deployment of Gavin Wood's ExpRegistrar, a name registry where every name has a standing price that doubles on each sale.
0x96d76a...8709e3August 12, 2015ExpRegistrar
Same deployerRevised ExpRegistrar, deployed six minutes before its source was committed to ethereum/dapp-bin. Seeds itself with the names gavofyork and NameReg.
0x047cdb...a53d31August 13, 2015TerraNullius
Same eraOne of the earliest interactive contracts on Ethereum, allowing users to stake claims and leave permanent messages on the blockchain.
0x6e38a4...844d66August 7, 2015GlobalRegistrar
Same eraThe official Ethereum GlobalRegistrar deployed by the go-ethereum team in August 2015. This was the canonical name registry contract embedded as pre-compiled by
0x1392a4...770c35August 7, 2015GlobalRegistrar
Same eraThe second deployment of the official Ethereum GlobalRegistrar, deployed nine days after the first. Both deployments use identical bytecode pre-compiled and emb
0xf436ce...6267d0August 8, 2015