Back to Home

Pool

program
0x246b342b0fd5...0c71fba8eebe
FrontierContract #1,209Exact Bytecode MatchEdit this contract
Deployed September 17, 2015 (10 years ago)Block 249,403

A pool/lottery prototype by Thomas Bertani (Oraclize team) allowing deposits via register() and admin-gated 5x payouts via finalize().

Key Facts

Deployment Block
249,403
Deployment Date
Sep 17, 2015, 08:30 PM
Code Size
523.0 B
Gas at Deploy
156,527
Transactions by Year
20151

Description

Pool is a 504-byte contract deployed on September 17, 2015 (block 249,403) by the same Oraclize-team key that deployed GetSet three blocks earlier. It implements a simple deposit-and-payout pattern: users call register() to deposit ETH (stored in a public balances mapping), and an admin calls finalize() to send 5x a beneficiary's balance before zeroing their account.

The admin address (0x3c94923400ccc528e8ab0f849edafca06fe332e5) is another contract deployed by the same key, acting as an access control gate. The register() function takes three string parameters and a uint (selector 0x02110d25) but ignores all arguments, using only msg.value for the deposit. Registration is limited to one deposit per address: subsequent calls are rejected via an early-return guard.

The contract was called exactly once after deployment: a 7-wei test registration by the deployer at block 249,406. No finalize() call was ever made. The 5x multiplier and multi-party structure suggest this was a prototype for a lottery or betting pool that was never put into production.

Source Verified

SolidityExact bytecode match(523 bytes)
Compiler: soljson

Exact bytecode match (init + runtime). Runtime: 504 bytes. Creation: 523 bytes (19 bytes init). Uses address constant for admin, early-return guard clauses. Only called once (7-wei test deposit).

Heuristic Analysis

The following characteristics were detected through bytecode analysis and may not be accurate.

Detected Type: program

Frontier Era

The initial release of Ethereum. A bare-bones implementation for technical users.

Block span: 01,149,999
July 30, 2015March 14, 2016

Bytecode Overview

Opcodes523
Unique Opcodes85
Jump Instructions24
Storage Operations9

Verified Source Available

Source verified through compiler archaeology and exact bytecode matching.

View Verification Proof
Show source code (Solidity)
contract Pool {
    address constant admin = 0x3c94923400ccc528e8ab0f849edafca06fe332e5;
    mapping(address => uint) public balances;

    function register(string a, string b, string c, uint d) returns (uint) {
        if (balances[msg.sender] > 0) return;
        balances[msg.sender] = msg.value;
    }

    function get() returns (uint) {
        return balances[msg.sender];
    }

    function finalize(address beneficiary, uint fixPoolSupply) {
        if (admin != msg.sender) return;
        if (fixPoolSupply > 0) {
            beneficiary.send(5 * balances[beneficiary]);
        }
        balances[beneficiary] = 0;
    }
}

External Links