Deposit wallet compiled with solc 0.1.3 in 2015 that logs each payment under a fixed numeric identifier and can be collected or destroyed by its owner.
Historical Significance
This is among the oldest reconstructible contract shapes on the chain. It compiles under solc 0.1.3, a 2015 release that emits no metadata trailer at all, which means the published source reproduces the deployed bytes exactly rather than as a partial match. The token interface is declared as returning nothing, because it was written before ERC20 settled on a boolean return.
Key Facts
Description
The payable fallback emits a Deposit event whenever it receives a non-zero amount, carrying the sender and a hardcoded identifier as indexed topics and the value as data. The identifier is burned into the code rather than stored, so an operator can filter the log by it without a storage read.
collect sends the entire ether balance to the owner with send, collectToken moves a chosen token amount, and kill self-destructs to the owner. All three check the owner and return quietly rather than reverting when the caller does not match, which is the behaviour of a compiler that predates require.
Source Verified
Homestead Era
The first planned hard fork. Removed the canary contract, adjusted gas costs.
Bytecode Overview
Verified Source Available
This contract has verified source code.
View Verification ProofShow source code (Solidity)
// Submitted by EthereumHistory (ethereumhistory.com)
contract Token {
function transfer(address _to, uint256 _value);
}
contract Wallet {
address owner;
event Deposit(address indexed _from, uint256 indexed _id, uint256 _value);
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);
}
}
function collectToken(address _token, address _to, uint256 _amount) {
if (msg.sender == owner) {
Token token = Token(_token);
token.transfer(_to, _amount);
}
}
}External Links
Related contracts
PiggyBank
Same deployerA 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
0xd01d0b...2f09fdFebruary 19, 2016PiggyBank
Same deployerSavings contract that logs deposits with a fixed account id and can be emptied or destroyed.
0x000286...95c5acMarch 1, 2017DepositWallet
Same deployerFirst of 7,123 identical ETH+ERC-20 deposit forwarders deployed March-May 2017. Source recovered by EthereumHistory, byte-for-byte verified.
0x55166e...208b62March 22, 2017