Back to Home

Contract 0xa9a1524426b0...d006f0ade9ed

Token
0xa9a1524426b0...d006f0ade9ed
FrontierContract #2,674Exact Bytecode MatchEdit this contract

Bytecode verified via sibling

This contract shares identical runtime bytecode with a verified contract (0x1081417f...) which has been verified through compiler archaeology.

Deployed October 25, 2015 (10 years ago)Block 435,446

A copy of the coin contract from the Frontier Guide where the contract was renamed but its constructor was not, leaving the supply function callable by anyone.

Frontier EraVerified Source

Historical Significance

The two function coin contract from the Frontier Guide, whose tutorial text lives in the go-ethereum wiki: a public mapping of address to balance and a sendCoin(address,uint256) that checks the sender's balance, moves the amount and fires a CoinTransfer event. The guide names the contract token. Whoever deployed this renamed it and left the function named token, so what was meant to be the constructor became an ordinary public function. token(uint256) sets coinBalanceOf[msg.sender] to the value passed, or to 1000000000 when passed zero, and nothing restricts who may call it: anyone can mint themselves any balance at any time. Because the rename is what put token(uint256) in the dispatch table, the name the deployer chose is not recoverable from the bytecode, and the recovered source carries MyToken as a stand-in. Source recovered by exact bytecode match: solc v0.1.6+commit.d41f8b7c with the optimizer on reproduces all 296 bytes of the creation transaction.

Context

Deployed in 2015 on the Ethereum Frontier network.

Key Facts
Deployment Block
435,446
Deployment Date
Oct 25, 2015, 02:12 AM
Code Size
296.0 B
Gas at Deploy
95,657

Description

The two function coin contract from the Frontier Guide, whose tutorial text lives in the go-ethereum wiki: a public mapping of address to balance and a sendCoin(address,uint256) that checks the sender's balance, moves the amount and fires a CoinTransfer event. The guide names the contract token. Whoever deployed this renamed it and left the function named token, so what was meant to be the constructor became an ordinary public function. token(uint256) sets coinBalanceOf[msg.sender] to the value passed, or to 1000000000 when passed zero, and nothing restricts who may call it: anyone can mint themselves any balance at any time. Because the rename is what put token(uint256) in the dispatch table, the name the deployer chose is not recoverable from the bytecode, and the recovered source carries MyToken as a stand-in. Source recovered by exact bytecode match: solc v0.1.6+commit.d41f8b7c with the optimizer on reproduces all 296 bytes of the creation transaction.

Source Verified

Exact bytecode match(296 bytes)
Compiler: v0.1.6+
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

Opcodes296
Unique Opcodes81
Jump Instructions15
Storage Operations8

External Links

Related contracts

Contract 0xa9a152...ade9ed - Ethereum History