Bytecode verified via sibling
This contract shares identical runtime bytecode with Wallet (0x0001baa5...) which has been verified through compiler archaeology.
A 242-byte deposit wallet: the owner can sweep any ERC-20 token out of it to a chosen address, and nothing else is possible.
Historical Significance
One of the most widely replicated contract shapes of the 2017 token boom. Exchanges and payment processors generated a fresh deposit address per user, each a tiny contract like this one, then swept incoming ERC-20 balances to a central wallet. The pattern made per-user accounting possible before anyone relied on event indexing, at the cost of deploying thousands of near-identical contracts.
Context
Deployed 2017-01-03 by 0xcf40d0d2b44f2b66e07cace1372ca42b73cf21a3. One of 1,016 byte-identical copies of this runtime in the Ethereum History archive, deployed as per-user token deposit addresses. Compiled with solc v0.4.2 with the optimizer enabled, a version that emits no metadata hash, which is what makes exact byte-for-byte recovery possible. Source recovered by exact runtime bytecode match and verified on Etherscan and Sourcify.
Key Facts
Description
The contract holds a single owner address in storage slot 0 and exposes one function, transferToken(address token, address to, uint256 amount) at selector 0xf5537ede. It checks that the caller is the owner, casts the token argument to an ERC-20 interface, calls transfer(to, amount) on it, and emits TokenTransfer(token, to, amount) with the token and recipient indexed. The call is made through a local interface variable rather than inline, which is what fixes the compiled form at 242 bytes. There is no fallback, no ether withdrawal, and no way to change the owner: a non-owner call simply returns without effect rather than reverting.
Source Verified
Exact runtime bytecode match. Recompiled with solc v0.4.2+commit.af6afb04, optimizer enabled; byte-for-byte identical to the deployed 242-byte runtime shared by every contract in this cluster. Submitted by EthereumHistory (ethereumhistory.com).
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Spurious Dragon Era
Continued DoS protection. State trie clearing.
Bytecode Overview
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
// Submitted by EthereumHistory (ethereumhistory.com)
contract Token {
function transfer(address _to, uint256 _value) returns (bool);
}
contract Wallet {
address owner;
event TokenTransfer(address indexed token, address indexed to, uint256 amount);
function transferToken(address token, address to, uint256 amount) {
if (msg.sender == owner) {
Token t = Token(token);
t.transfer(to, amount);
TokenTransfer(token, to, amount);
}
}
}
External Links
Related contracts
Wallet
Same deployerA 242-byte deposit wallet: the owner can sweep any ERC-20 token out of it to a chosen address, and nothing else is possible.
0xd96ef9...6ce65fJanuary 1, 2017Wallet
Same deployerA 242-byte deposit wallet: the owner can sweep any ERC-20 token out of it to a chosen address, and nothing else is possible.
0x51183f...4a0af9January 1, 2017Wallet
Same deployerA 242-byte deposit wallet: the owner can sweep any ERC-20 token out of it to a chosen address, and nothing else is possible.
0x04326a...d2fc7fJanuary 1, 2017Wallet
Same deployerA 242-byte deposit wallet: the owner can sweep any ERC-20 token out of it to a chosen address, and nothing else is possible.
0xd1e859...baeba9January 1, 2017Wallet
Same deployerA 242-byte deposit wallet: the owner can sweep any ERC-20 token out of it to a chosen address, and nothing else is possible.
0xa70ba7...b6d92fJanuary 1, 2017Wallet
Same deployerA 242-byte deposit wallet: the owner can sweep any ERC-20 token out of it to a chosen address, and nothing else is possible.
0xd1184a...f3a788January 2, 2017