Back to Home

EtherToken

Token
0xacfd9d15fa76...ff2030f26416
HomesteadContract #12KSource VerifiedEdit this contract
Deployed March 20, 2016 (10 years ago)Block 1,184,107

The first contract on Ethereum mainnet fully compliant with EIP-20 as finalised, tested by execution against all ten mandatory requirements. An ether wrapper, deployed 20 March 2016, and never used.

Homestead EraVerified Source

Historical Significance

Tested by execution against all ten mandatory requirements of EIP-20 as finalised, this is the first contract on Ethereum mainnet that satisfies every one of them. Compliance is a claim about behaviour, so it was settled by behaviour: the contract was run on a mainnet fork, funded through its own deposit() rather than by writing storage, receipts read for the events actually emitted, and eth_call used to measure the width of every return value. It passes twice, once at the head of the chain and once on a fork pinned 93 blocks after its deployment, under the hardfork rules of the day. Earlier candidates each fail at least one rule under execution rather than by inspection: the Digix ledgers and DGX 1.0 emit Transfer with the value indexed and an empty data field, elcoin's transfer, approve and transferFrom return false and move nothing, and 0x37Dca38b1CBB2Cd043910eC46fe82Ddb9e38F00d rejects a zero value transfer. The zero value clause is also what separates this contract from 0xb345180D0a2c791d4943a239f8eBb50efa01c81a, deployed on 25 February 2016, whose only difference is a strict comparison in the bounds helper. The claim does not extend to name, symbol and decimals, which this contract does not have; those three are optional in EIP-20. Deployed in block 1,184,107 on 20 March 2016, it holds one transaction in its life, its own creation. The copy that saw use is its byte identical twin 0xd654bDD32FC99471455e86C2E7f7D7b6437e9179, 81 blocks later.

Key Facts
Deployment Block
1,184,107
Deployment Date
Mar 20, 2016, 03:09 PM
Code Size
2.3 KB
Gas at Deploy
691,074

Description

Deployed 20 March 2016. An ether wrapper of the kind that later became WETH: deposit() credits the caller with the ether sent, withdraw(uint256) checks the balance and sends the ether back before decrementing, and totalSupply() returns address(this).balance rather than a stored counter, so supply and collateral cannot drift apart. The fallback function forwards to deposit(), so a plain ether send wraps. Its Deposit(address indexed, uint256) and Withdrawal(address indexed, uint256) event signatures are the ones WETH9 would carry a year later. On top of that it is a full ERC-20 with allowances, and every failed check is a throw rather than a false return.

It has one transaction in its life, its own creation, and holds no ether.

Source recovered by compiling against solc v0.3.0+commit.11d67369 with the optimizer off, reproducing the deployed runtime exactly. The 85 byte constructor prologue in the creation bytecode is not reproduced by any archived build, so the published source carries no constructor.

Source Verified

exact_runtime_bytecode_match
Compiler: v0.3.0+
Heuristic Analysis

The following characteristics were detected through bytecode analysis and may not be accurate.

Detected Type: Token
Has ERC-20-like patterns

Bytecode Overview

Opcodes2,356
Unique Opcodes166
Jump Instructions69
Storage Operations26

External Links

Related contracts