A simple ETH piggy bank contract with deposit events, owner-only collect, and self-destruct. Uses a hardcoded instance ID (88) in deposit events to distinguish
Historical Significance
An early example of parameterized contract deployment on Ethereum, where identical contract logic was deployed multiple times with different hardcoded constants to create a multi-instance system. Represents the Frontier-era pattern of simple ETH custody contracts before more sophisticated vault and savings protocols emerged.
Context
Deployed in February 2016 during the Frontier era, compiled with Solidity v0.1.1, one of the earliest compiler versions. At this time, smart contracts were simple and developers frequently used suicide() for cleanup and .send() for ETH transfers. The contract is among Ethereum's first 10,000 deployed contracts.
Key Facts
Description
A minimal ETH savings contract deployed on Feb 19, 2016 during the Frontier era. Anyone can deposit ETH by sending a transaction to the contract, which emits a Deposit event with the sender's address, a hardcoded instance ID, and the deposit amount. Only the contract owner (set at deployment) can withdraw the accumulated balance via collect() or destroy the contract via kill().
The contract follows a common Frontier-era pattern of simple ETH vaults with owner-only withdrawal. The hardcoded ID of 88 in the Deposit event suggests this is one instance of a system where multiple piggy bank contracts were deployed, each with a unique identifier, allowing an off-chain service to track deposits across all instances.
The deployer (0x42dA8a05CB7eD9A43572b5BA1B8F82A0a6E263DC) created multiple copies of this contract with different instance IDs. The contract received 200 transactions in 2016 and 66 in 2017.
Source Verified
soljson v0.1.1+commit.6ff4cd6, optimizer OFF. 543-byte runtime. Sourcify does not support v0.1.1 (minimum is v0.4.11).
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 and exact bytecode matching.
View Verification ProofShow source code (Solidity)
contract PiggyBank {
address owner;
event Deposit(address indexed user, uint256 indexed id, uint256 amount);
function PiggyBank() {
owner = msg.sender;
}
function() {
if (msg.value > 0) {
Deposit(msg.sender, 88, msg.value);
}
}
function kill() {
if (msg.sender == owner) {
suicide(owner);
}
}
function collect() {
if (msg.sender == owner) {
owner.send(this.balance);
}
}
}External Links
Related contracts
Test
Same eraThe earliest known Ethereum contract with executable runtime code. A single function go() that returns the string "eth", compiled with the first publicly available Solidity compiler (v0.1.1).
0x651629...8c21faAugust 7, 2015Greeter
Same eraAn early Ethereum contract that returns the string “Hello World!” when called.
0xfea8c4...8b08ebAugust 7, 2015PrimeChecker
Same eraPrimeChecker contract. Identical bytecode to 0x66d796e7 -- smallestfactor(uint256) returns the smallest prime factor, or n if prime. Deployed Aug 7, 2015 by the
0x7b2d5c...164661August 7, 2015testContract
Same eraThe first publicly posted Ethereum contract that returned a value when called, demonstrating interactive smart contract execution.
0xa3483b...018cdcAugust 7, 2015MovieVoting
Same eraA Frontier Day 1 movie voting contract where users send ETH to permanently rank movies on-chain — one of the earliest interactive dApps on Ethereum.
0x8bbf81...69c7f7August 8, 2015SciFi
Same eraA playful on-chain voting contract where users bid ETH to rank the best sci-fi movies of all time — one of the first interactive dApps on Ethereum Frontier.
0xd94bad...319d18August 8, 2015