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.
Historian Categories
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
Contract 0xb3c5f3...9a2462
Same eraMinimal delegatecall proxy. Forwards all calls to a hardcoded implementation address using DELEGATECALL, preserving the caller's storage context.
0xb3c5f3...9a2462January 4, 2018UserWallet
Same eraExchange deposit wallet with ETH and ERC20 sweep functions. One of the most widely deployed bytecodes on Ethereum.
0x24eb88...a068a7January 4, 2018Contract 0x493bbd...50d3bb
Same eraToken sweeper contract. Collects ERC20 balances from deposit addresses by calling sweep(tokenAddress) and forwarding tokens to a master wallet.
0x493bbd...50d3bbJanuary 4, 2018Contract 0x5d200d...52b7fa
Same eraETH forwarder with configurable destination. Forwards incoming Ether to a parent address set at deployment, with an owner-only flush() method.
0x5d200d...52b7faJanuary 4, 2018Contract 0x600719...e09409
Same eraMinimal ETH forwarder. Hardcodes a destination address at deployment and unconditionally forwards all incoming Ether to it.
0x600719...e09409January 7, 2018Contract 0xf53188...a66c1c
Same eraExchange deposit wallet that collects ERC20 tokens via collect(tokenAddress, recipient, amount) and ETH via a payable fallback function.
0xf53188...a66c1cJanuary 22, 2018