Luno's per-customer ether deposit address from October 2017: any payment sweeps the contract's entire balance to Luno's wallet and logs the forward.
Historical Significance
Luno, the exchange formerly known as BitX, was one of the main ways to buy ether in South Africa, Nigeria and Southeast Asia in the 2017 cycle, and this is the address its customers were given. It is about as small as a deposit contract can be: no admin, no upgrade path and no token recovery. The trade-off is visible in the code. Ether always reaches the exchange in the same transaction, but a token sent to one of these addresses has no function that could ever move it.
Key Facts
Description
Each copy of this contract was a Luno customer's ether deposit address. Every copy was deployed by the account Etherscan labels Luno: Deployer, and every copy forwards to a single hardcoded address that Etherscan labels Luno 1. This is the earliest, from 10 October 2017, and the same bytecode was still being deployed at the end of 2018.
There are no functions at all, only a payable fallback. It reads the contract's whole balance rather than msg.value, requires it to be above zero, sends it to the hardcoded destination with transfer, and emits LogForwarded with the destination as an indexed topic followed by the deposit address, the caller and the amount. Because it forwards the balance and not the payment, any call, including one carrying no ether, flushes whatever the address holds. Nothing is stored, there is no owner, and the destination cannot be changed.
The event name was recovered by brute force from its topic hash. The source was compiled with solc 0.4.17 and the optimizer off; 0.4.18 produces the same code but was released after the first deployment. 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
Spurious Dragon Era
Continued DoS protection. State trie clearing.
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.11;
contract LunoDepositForwarder {
event LogForwarded(address indexed destination, address depositAddress, address sender, uint256 amount);
function () payable {
uint256 balance = this.balance;
require(balance > 0);
address destination = 0xAf1931c20ee0c11BEA17A41BfBbAd299B2763bc0;
destination.transfer(balance);
LogForwarded(destination, this, msg.sender, balance);
}
}