A simple name registry contract with reserve, transfer, setAddr, and disown functionality, deployed on Frontier Day 6.
Historical Significance
One of the earliest name registry implementations on Ethereum mainnet, predating ENS by over a year.
Context
Deployed during Ethereum Frontier week 1 when name registration was among the first use cases developers explored.
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.
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, 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, 2015globalregistrar
Same eraA second deployment of the Ethereum GlobalRegistrar — the early name registry that predated ENS — made on August 10, 2015.
0x2272d8...18f1a9August 10, 2015ArbiterRegistry
Same eraArbiter registry by Vitalik Buterin (Sep 2015). Pay 1+ ETH to list yourself. Fee decays 50%/month. One of the earliest on-chain reputation systems on Ethereum.
0x82afa2...9293abSeptember 28, 2015