Bytecode verified via sibling
This contract shares identical runtime bytecode with Token Sweeper (0x9a96270a...) which has been verified through compiler archaeology.
ERC-20 token sweeper for exchange deposit addresses. Owner-only sweep of any token balance. Compiled with Solidity 0.4.9.
Key Facts
Description
This contract is an ERC-20 token sweeper designed for exchange deposit addresses. When a customer sends tokens to an exchange deposit address, this contract can be triggered to sweep the tokens to the exchange's main wallet. The owner calls sweep(token) to drain any ERC-20 balance; the fallback function auto-sweeps the pre-configured defaultToken set at construction time.
With 14,449 identical siblings on-chain, this is among the largest known clusters of identical bytecode in Ethereum history. The scale indicates major exchange infrastructure — each customer deposit address gets its own sweeper contract deployed with the specific token pre-configured. The earliest deployment is block 3,203,395 (February 18, 2017), placing this squarely in the DeFi pre-history era when exchanges were building out ERC-20 deposit infrastructure from scratch.
The exact bytecode match was achieved with Solidity 0.4.9+commit.364da425 without optimizer, verified against the on-chain runtime bytecode (738 bytes). Only the bzzr Swarm compilation metadata hash (last 32 bytes) differs between siblings, which is expected as it is derived from source file content including comments and whitespace.
Source Verified
Exact bytecode match (stripped bzzr metadata). Compiler: solc 0.4.9+commit.364da425, no optimizer. Token sweeper: calls token.transfer(owner, token.balanceOf(this)).
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)
pragma solidity ^0.4.8;
contract Token {
function transfer(address to, uint256 value) returns (bool ok);
function balanceOf(address who) constant returns (uint256 value);
}
contract Forwarder {
address owner;
address defaultSweep;
function Forwarder() {
owner = 0x0536806df512d6cdde913cf95c9886f65b1d3462;
defaultSweep = 0xa74476443119A942dE498590Fe1f2454d7D4aC0d;
}
function() {
sweep(defaultSweep);
}
function sweep(address _token) {
address token = _token;
if (!(msg.sender == owner && Token(token).transfer(owner, Token(token).balanceOf(this)))) throw;
}
}