Back to Home

PiggyBank

program
0xd01d0bdaa0bd...eee8952f09fd
FrontierContract #9,239Exact Bytecode MatchEdit this contract
Deployed February 19, 2016 (10 years ago)Block 1,026,739

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

Key Facts

Deployment Block
1,026,739
Deployment Date
Feb 19, 2016, 07:59 AM
Code Size
607.0 B
Gas at Deploy
187,085
Transactions by Year
2016200
201766

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

SolidityExact bytecode match(607 bytes)
Compiler: soljson

Exact bytecode match (init + runtime). 64 bytes init, 543 bytes runtime, 607 bytes creation total.

Heuristic Analysis

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

Detected Type: program
Contains SELFDESTRUCT opcode

Frontier Era

The initial release of Ethereum. A bare-bones implementation for technical users.

Block span: 01,149,999
July 30, 2015March 14, 2016

Bytecode Overview

Opcodes607
Unique Opcodes89
Jump Instructions18
Storage Operations8

Verified Source Available

Source verified through compiler archaeology and exact bytecode matching.

View Verification Proof
Show 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