ENS subdomain registrar from October 2018 with one of the earliest in-the-wild multicall(bytes[]) batchers via delegatecall in Ethereum history.
Historical Significance
Across the 111,821 unique 2018 byzantium-era contract bytecode families in my local lake, exactly one contract exposes the selector 0xac9650d8 for multicall(bytes[]): this one. That makes it the earliest in-the-wild deployment of multicall(bytes[]) in the 2018 dataset, and very likely the earliest in Ethereum mainnet history. The MakerDAO/Compound/Multicall2/Uniswap pattern that everyone copies today traces back to a small helper sitting at the end of an ENS subdomain registrar, predating MakerDAO multicall.sol (March 2019) by approximately five months.
Context
Deployed 9 October 2018, post-Constantinople-delay (Constantinople had been pushed from October 2018 to February 2019 after the ChainSecurity audit found EIP-1283 reentrancy issues). The Ethereum block reward had just been reduced from 3 ETH to 2 ETH eight months earlier (Byzantium, October 2017), and ENS had launched its second-generation registrar with permanent name auctions in May 2017. Solidity was at v0.4.25, the optimizer was on, and the DELEGATECALL-based multicall pattern was being actively explored by multiple teams as a gas-saving primitive for batching read-only and admin operations.
Key Facts
Description
OwnedRegistrar is an ENS subdomain registrar built by the ENS team for organizations that want to delegate subdomains under a parent name. The contract sits between the ENS registry and an off-chain authoriser: a caller with the 'transactor' role submits an ECDSA signature from a registered registrar via associateWithSig(node, label, owner, nonce, registrarId, r, s, v), and on a valid signature the contract claims the subnode from ENS and assigns ownership to the supplied address. Roles ('owner', 'authoriser', 'transactor') are managed through a small embedded RBAC library.
The historically interesting piece is the closing function: multicall(bytes[] calls) iterates the supplied call data and executes each entry as a DELEGATECALL into the same contract. The selector is 0xac9650d8, which is the same multicall selector later popularized by MakerDAO, Compound, Uniswap V2, and basically every batching contract written from 2019 onward. As far as the 2018-era contract lake survey can determine, this October 2018 deployment is among the very earliest in-the-wild multicall implementations on Ethereum, predating the canonical MakerDAO Multicall.sol library (March 2019, makerdao/multicall) and the Compound governance batcher.
Deployed 9 October 2018 at block 6,482,390 by 0x0904dac3347ea47d208f3fd67402d039a3b99859, an ENS-team-controlled wallet. Compiled with Solidity v0.4.25+commit.59dbf8f1.
Source Verified
Author-published source by the ENS team. Verified on Etherscan. Notable for one of the earliest multicall(bytes[]) deployments (selector 0xac9650d8) on Ethereum mainnet.
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Byzantium Era
First Metropolis hard fork. Added zk-SNARK precompiles, REVERT opcode, and staticcall.