CREX24 token deposit address from January 2018: one public function, sendCoin(token, amount), that pushes any ERC20 balance to the exchange's hardcoded wallet.
Historical Significance
About as small as a token deposit contract can be. It replaces the usual owner check with a hardcoded destination, which turns the security question into a much simpler one: the sweep can be triggered by anyone, and the only thing it can ever do is move tokens to the exchange. Declaring transfer without a return value also sidesteps the well-known 2018 problem of tokens like USDT that did not return a boolean, which broke contracts compiled against the standard interface once solc began checking return data.
Key Facts
Description
Each copy of this contract is a token deposit address for the CREX24 exchange. Every copy was deployed by the account Etherscan labels CREX24, and that same account is hardcoded inside the contract as the only possible recipient. The first was deployed on 27 January 2018 and the same bytecode was still being deployed at the end of 2018.
The contract has a single function, sendCoin(address token, uint256 amount). It calls transfer on the given token contract, moving the amount from the deposit address to the CREX24 wallet, then returns 1. There is no access control, because none is needed: the destination cannot be changed, so anyone who calls it can only deliver the exchange's own deposits to the exchange. The token interface declares transfer with no return value, which is how the call works with both standard tokens and the older ones that return nothing. There is no fallback function, so ether sent to these addresses is rejected.
The function name sendCoin echoes the MetaCoin example that shipped with Truffle. The source was compiled with solc 0.4.19 with the optimizer on at 200 runs; 0.4.18 and 0.4.20 produce the same code. The runtime code matches the deployed bytecode; only the trailing swarm metadata hash differs, because the EthereumHistory attribution comment changes the source text. Sourcify records this as a partial match and Etherscan shows it as verified.
Source Verified
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
Verified Source Available
This contract has verified source code.
View Verification ProofShow source code (Solidity)
// Submitted by EthereumHistory (ethereumhistory.com)
pragma solidity ^0.4.18;
contract Token {
function transfer(address _to, uint256 _value) public;
}
contract Crex24Deposit {
function sendCoin(address _token, uint256 _amount) public returns (uint256) {
address crex24 = 0x521dB06bF657Ed1D6C98553A70319a8DdBAc75A3;
Token token = Token(_token);
token.transfer(crex24, _amount);
return 1;
}
}