Back to Home

Contract 0x0001baa5df07...8fbcabc8eb5a

Token
0x0001baa5df07...8fbcabc8eb5a
Spurious DragonSource Verified
Deployed July 15, 2017 (8 years ago)Block 4,025,073

ERC-20 token forwarder for exchange deposit addresses. Single function: owner-only transferToken with typed ERC20 call and TokenTransfer event.

Key Facts

Deployment Block
4,025,073
Deployment Date
Jul 15, 2017, 09:31 AM
Code Size
242.0 B

Description

The Token Forwarder is an ERC-20 token sweeping contract deployed as part of large-scale exchange deposit address infrastructure in October 2016. With 14,789 identical siblings on-chain, this represents one of the largest bytecode clusters in early Ethereum history.

Each customer deposit address at the exchange received its own dedicated Forwarder contract, deployed with the exchange hot wallet address set as owner at construction time. When a customer deposits ERC-20 tokens to their assigned address, the exchange calls transferToken(token, to, amount) to move the tokens to the main wallet.

The contract uses a typed ERC20 interface call — ERC20(token).transfer(to, amount) — rather than the raw .call() encoding seen in later sweeper patterns. This reflects the cleaner contract-to-contract calling style available in Solidity 0.4.x. The TokenTransfer event (topic0: 0xd0ed88a3...) with indexed token and to parameters enables efficient off-chain event log filtering.

The contract has no fallback function and is non-payable, making it purpose-built exclusively for ERC-20 forwarding with no ETH handling capability.

Source verification achieved with Solidity 0.4.2+commit.af6afb04 (optimizer ON). The compiled runtime is 242 bytes — same size as on-chain — with a near-exact match. The optimizer produces a minor block ordering difference at byte 34 (return JUMPDEST placement), a known variant in early Solidity optimizer behavior. Pre-0.4.7 compiler means no bzzr Swarm metadata is appended to the bytecode.

Source Verified

SolidityNear-exact bytecode match
Compiler: v0.4.2+

242/242 bytes same size. Optimizer block ordering differs at byte 34 (return JUMPDEST placement). Single function: transferToken(address,address,uint256). Pre-0.4.7 = no bzzr metadata.

Heuristic Analysis

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

Detected Type: Token

Spurious Dragon Era

Continued DoS protection. State trie clearing.

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

Bytecode Overview

Opcodes242
Unique Opcodes76
Jump Instructions13
Storage Operations2

Verified Source Available

This contract has verified source code.

View Verification Proof
Show source code (Solidity)
pragma solidity ^0.4.0;

contract ERC20 {
    function transfer(address to, uint256 value) returns (bool);
}

contract Forwarder {
    address owner;

    event TokenTransfer(address indexed token, address indexed to, uint256 amount);

    function Forwarder(address _owner) {
        owner = _owner;
    }

    function transferToken(address token, address to, uint256 amount) {
        if (msg.sender != owner) throw;
        ERC20(token).transfer(to, amount);
        TokenTransfer(token, to, amount);
    }
}

External Links