Proxy wallet that forwards received ETH to a configured bank address. Owner can sweep ETH and ERC-20 token balances to that same destination.
Context
November 2017 marked peak CryptoKitties congestion and the first major wave of exchange scaling pressure on Ethereum. Deploying a fresh smart contract per deposit address was a practical pattern at the time: each wallet was independently controllable, could hold multiple asset types, and forwarded funds automatically without requiring the exchange to poll for balance changes. The approach traded deployment gas cost for operational simplicity. By late 2017, gas prices were rising fast and this contract-per-address model was already becoming expensive, pushing later systems toward deterministic address generation (CREATE2, introduced in EIP-1014 in 2018) and shared custodial contracts.
Key Facts
Description
BankWallet is a minimal deposit-address contract designed for exchange or payment processing infrastructure. When ETH is sent to it directly, the fallback function immediately forwards the full value to a preconfigured bank address. The owner can also call transferToken to sweep any ERC-20 token balance to that same bank address, or transferEther to manually push a specific ETH amount.
The deployer (0x7250...2f6b7a) minted over 4,700 of these contracts across a nine-day window in November 2017, each configured to route funds back to a central collector address (0x3b65...2d833e). Observed token activity included EOS transfers, suggesting the system was used to process ERC-20 deposits alongside ETH. The pattern is characteristic of exchange hot wallet infrastructure from this era, where one unique contract per user deposit address was a common approach before more gas-efficient alternatives emerged.
Source Verified
Near-exact: v0.4.x compiler. 5 dispatch selectors: transferToken(address,uint256), transferEther(uint256), bankAddress(), owner(), unknown=0x6c3b58e0. Unknown selector blocks exact match.
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Byzantium Era
First Metropolis hard fork. Added zk-SNARK precompiles, REVERT opcode, and staticcall.
Bytecode Overview
External Links
Related contracts
UserWallet
Same eraExchange deposit wallet with ETH and ERC20 sweep functions. One of the most widely deployed bytecodes on Ethereum.
0x24eb88...a068a7January 4, 2018Contract 0x3d40c2...1ec557
Same eraToken relay contract. Forwards ERC20 token transfers via transferToken(token, recipient, amount) on behalf of a configured owner.
0x3d40c2...1ec557January 4, 2018IMG
Same eraOn-chain JPEG of a tabby cat: a 128x128 JFIF baseline image returned as a hex-text string by a single read() function. January 2018.
0x2fabe6...86c7a1January 21, 2018Contract 0xda0a31...93b07c
Same eraToken distributor contract. Transfers ERC20 tokens from the contract to recipients via sendCoin(recipient, amount, tokenAddress).
0xda0a31...93b07cJanuary 27, 2018CryptoColors
Same eraFebruary 2018 hot-potato collectible game on Ethereum. Five tokens: Red, Blue, Lime, Yellow, Orange — each storing R/G/B values on-chain.
0x3116c4...ef9b96February 3, 2018CryptHall Of Fame
Same eraFirst deploy of CryptHall Of Fame by colmea.eth, abandoned 8 minutes later. No tokens were ever created on this instance. The canonical contract is at 0xb041de4
0x04cef5...3bd45eFebruary 8, 2018