Back to Home

Token Sweeper

Exchange
0x9a96270a85fb...f5c19ba695c7
Spurious DragonContract #30KExact Bytecode MatchEdit this contract
Deployed February 18, 2017 (9 years ago)Block 3,203,394

ERC-20 token sweeper for exchange deposit addresses. Owner-only sweep of any token balance. Compiled with Solidity 0.4.9.

Key Facts

Deployment Block
3,203,394
Deployment Date
Feb 18, 2017, 06:59 AM
Code Size
738.0 B
Gas at Deploy
297,240
Transactions by Year
20171

Description

An upgraded exchange deposit forwarding contract (v2) that adds pragma solidity ^0.4.8 and the LOCK8605463013() constant as an anti-proxy identifier. Otherwise identical to v1: sweep() forwards tokens to the owner address.

5,310 identical copies were deployed, making it the single most widely deployed unverified bytecode on early Ethereum.

Functions: transfer(address,uint256), balanceOf(address), sweep(address), LOCK8605463013(). The LOCK function returns a constant value used to identify legitimate contract instances vs proxies.

Source Verified

SolidityExact bytecode match(738 bytes)
Compiler: 0.4.9+c

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.

Detected Type: Exchange
Has ERC-20-like patterns

Spurious Dragon Era

Continued DoS protection. State trie clearing.

Block span: 2,675,0004,369,999
November 22, 2016October 16, 2017

Bytecode Overview

Opcodes738
Unique Opcodes92
Jump Instructions28
Storage Operations3

Verified Source Available

Source verified through compiler archaeology and exact bytecode matching.

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

External Links