Back to Home

Wallet

Wallet
0xd1184a9d1835...67e13cf3a788
Spurious DragonContract #27KExact Bytecode MatchEdit this contract

Bytecode verified via sibling

This contract shares identical runtime bytecode with Wallet (0x0001baa5...) which has been verified through compiler archaeology.

Deployed January 2, 2017 (9 years ago)Block 2,921,805

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.

Spurious Dragon EraVerified Source

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-02 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
Deployment Block
2,921,805
Deployment Date
Jan 2, 2017, 01:11 PM
Code Size
242.0 B
Gas at Deploy
140,027
Transactions by Year
20171

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

SolidityExact bytecode match(242 bytes)
Compiler: v0.4.2+

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.

Detected Type: Wallet

Bytecode Overview

Opcodes242
Unique Opcodes76
Jump Instructions13
Storage Operations2

External Links

Related contracts