ETH Price: $3,308.37 (+1.80%)
Gas: 4 Gwei

Contract

0xDfBFd64726b1B178ef8204ae4992f641F31C8248
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer78081072019-05-22 6:44:161893 days ago1558507456IN
EloPlayToken
0 ETH0.0009569125.5
Transfer62116812018-08-25 15:25:532162 days ago1535210753IN
EloPlayToken
0 ETH0.0009261941
Transfer60605982018-07-31 2:13:322188 days ago1533003212IN
EloPlayToken
0 ETH0.0015385641
Transfer58009672018-06-16 20:22:352232 days ago1529180555IN
EloPlayToken
0 ETH0.00007532
Transfer58009142018-06-16 20:09:282232 days ago1529179768IN
EloPlayToken
0 ETH0.0000482
Transfer57640442018-06-10 10:08:202239 days ago1528625300IN
EloPlayToken
0 ETH0.0044012183.79109468
Transfer57110462018-06-01 0:22:412248 days ago1527812561IN
EloPlayToken
0 ETH0.0015411941
Transfer56292312018-05-17 12:32:542263 days ago1526560374IN
EloPlayToken
0 ETH0.0004743921
Transfer55250272018-04-29 6:56:162281 days ago1524984976IN
EloPlayToken
0 ETH0.000112955
Transfer55109942018-04-26 20:29:162283 days ago1524774556IN
EloPlayToken
0 ETH0.000022591
Transfer54144042018-04-10 9:02:282300 days ago1523350948IN
EloPlayToken
0 ETH0.0006325228
Transfer54143662018-04-10 8:52:182300 days ago1523350338IN
EloPlayToken
0 ETH0.0006390317
Transfer54143102018-04-10 8:37:102300 days ago1523349430IN
EloPlayToken
0 ETH0.00137727
Transfer53798102018-04-04 15:23:402305 days ago1522855420IN
EloPlayToken
0 ETH0.0015411941
Transfer53726432018-04-03 10:57:572307 days ago1522753077IN
EloPlayToken
0 ETH0.00049616
Transfer53318702018-03-27 15:30:052313 days ago1522164605IN
EloPlayToken
0.05 ETH0.0013922564
Transfer52478492018-03-13 12:13:262328 days ago1520943206IN
EloPlayToken
0.05 ETH0.00086141
Transfer52282012018-03-10 4:04:282331 days ago1520654668IN
EloPlayToken
0 ETH0.0009235641
Transfer52058932018-03-06 9:20:012335 days ago1520328001IN
EloPlayToken
0 ETH0.0009235641
Approve52041322018-03-06 2:04:492335 days ago1520301889IN
EloPlayToken
0 ETH0.000182434
Transfer52041022018-03-06 1:57:122335 days ago1520301432IN
EloPlayToken
0 ETH0.0013532436
Transfer52014162018-03-05 15:05:542335 days ago1520262354IN
EloPlayToken
0 ETH0.0013592460
Transfer51175812018-02-19 8:21:542350 days ago1519028514IN
EloPlayToken
0 ETH0.00004352
Transfer50892352018-02-14 14:30:152354 days ago1518618615IN
EloPlayToken
0 ETH0.0002675711.84477593
Transfer50835352018-02-13 15:21:362355 days ago1518535296IN
EloPlayToken
0 ETH0.000180728
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
45570502017-11-15 11:44:232446 days ago1510746263
EloPlayToken
0.1 ETH
45532582017-11-14 21:06:452446 days ago1510693605
EloPlayToken
0.88 ETH
45530262017-11-14 20:09:382446 days ago1510690178
EloPlayToken
0.3 ETH
45529812017-11-14 20:00:482446 days ago1510689648
EloPlayToken
0.2 ETH
45524362017-11-14 17:56:302446 days ago1510682190
EloPlayToken
1 ETH
45522782017-11-14 17:17:252446 days ago1510679845
EloPlayToken
4 ETH
45510692017-11-14 12:30:072447 days ago1510662607
EloPlayToken
3.8 ETH
45508342017-11-14 11:32:392447 days ago1510659159
EloPlayToken
1.0002101 ETH
45507812017-11-14 11:20:172447 days ago1510658417
EloPlayToken
0.1 ETH
45502442017-11-14 9:14:542447 days ago1510650894
EloPlayToken
0.1 ETH
45473442017-11-13 22:00:402447 days ago1510610440
EloPlayToken
0.1 ETH
45420452017-11-13 1:36:352448 days ago1510536995
EloPlayToken
0.25 ETH
45382842017-11-12 10:53:442449 days ago1510484024
EloPlayToken
1 ETH
45343252017-11-11 19:59:502449 days ago1510430390
EloPlayToken
0.17122813 ETH
45276772017-11-10 18:37:362450 days ago1510339056
EloPlayToken
50 ETH
45245162017-11-10 6:25:152451 days ago1510295115
EloPlayToken
0.19713721 ETH
45204622017-11-09 14:48:432451 days ago1510238923
EloPlayToken
0.1 ETH
45149842017-11-08 17:27:382452 days ago1510162058
EloPlayToken
0.1 ETH
45149392017-11-08 17:17:032452 days ago1510161423
EloPlayToken
0.19254 ETH
45147162017-11-08 16:24:202452 days ago1510158260
EloPlayToken
0.8 ETH
45146562017-11-08 16:11:232452 days ago1510157483
EloPlayToken
0.1 ETH
45141262017-11-08 14:10:342452 days ago1510150234
EloPlayToken
1 ETH
45105102017-11-08 0:23:252453 days ago1510100605
EloPlayToken
0.5 ETH
45092202017-11-07 19:34:102453 days ago1510083250
EloPlayToken
0.12 ETH
45081352017-11-07 15:14:542453 days ago1510067694
EloPlayToken
1.4 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EloPlayToken

Compiler Version
v0.4.15+commit.bbb8e64f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-10-14
*/

pragma solidity ^0.4.11;

/**
 * Eloplay Crowdsale Token Contract
 * @author Eloplay team (2017)
 * The MIT Licence
 */


/**
 * Safe maths, borrowed from OpenZeppelin
 * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
 */
library SafeMath {

    /**
     * Add a number to another number, checking for overflows
     *
     * @param a           first number
     * @param b           second number
     * @return            sum of a + b
     */
     function add(uint256 a, uint256 b) internal constant returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
     }

    /**
     * Subtract a number from another number, checking for underflows
     *
     * @param a           first number
     * @param b           second number
     * @return            a - b
     */
    function sub(uint256 a, uint256 b) internal constant returns (uint256) {
        assert(b <= a);
        return a - b;
    }

}


/**
 * Owned contract gives ownership checking
 */
contract Owned {

    /**
     * Current contract owner
     */
    address public owner;
    /**
     * New owner / pretender
     */
    address public newOwner;

    /**
     * Event fires when ownership is transferred and accepted
     *
     * @param _from         initial owner
     * @param _to           new owner
     */
    event OwnershipTransferred(address indexed _from, address indexed _to);

    /**
     * Owned contract constructor
     */
    function Owned() {
        owner = msg.sender;
    }

    /**
     * Modifier - used to check actions allowed only for contract owner
     */
    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    /**
     * Request to change ownership (called by current owner)
     *
     * @param _newOwner         address to transfer ownership to
     */
    function transferOwnership(address _newOwner) onlyOwner {
        newOwner = _newOwner;
    }

    /**
     * Accept ownership request, works only if called by new owner
     */
    function acceptOwnership() {
        // Avoid multiple events triggering in case of several calls from owner
        if (msg.sender == newOwner && owner != newOwner) {
            OwnershipTransferred(owner, newOwner);
            owner = newOwner;
        }
    }
}


/**
 * ERC20 Token, with the addition of symbol, name and decimals
 * https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20Token {
    /**
     * Use SafeMath to check over/underflows
     */
    using SafeMath for uint;

    /**
     * Total Supply
     */
    uint256 public totalSupply = 0;

    /**
     * Balances for each account
     */
    mapping(address => uint256) public balanceOf;

    /**
     * Owner of account approves the transfer of an amount to another account
     */
    mapping(address => mapping (address => uint256)) public allowance;

    /**
     * Event fires when tokens are transferred
     *
     * @param _from         spender address
     * @param _to           target address
     * @param _value        amount of tokens
     */
    event Transfer(address indexed _from, address indexed _to, uint256 _value);

    /**
     * Event fires when spending of tokens are approved
     *
     * @param _owner        owner address
     * @param _spender      spender address
     * @param _value        amount of allowed tokens
     */
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    /**
     * Transfer the balance from owner's account to another account
     *
     * @param _to         target address
     * @param _amount     amount of tokens
     * @return            true on success
     */
    function transfer(address _to, uint256 _amount) returns (bool success) {
        if (balanceOf[msg.sender] >= _amount                // User has balance
            && _amount > 0                                 // Non-zero transfer
            && balanceOf[_to] + _amount > balanceOf[_to]     // Overflow check
        ) {
            balanceOf[msg.sender] -= _amount;
            balanceOf[_to] += _amount;
            Transfer(msg.sender, _to, _amount);
            return true;
        } else {
            return false;
        }
    }

    /**
     * Allow _spender to withdraw from your account, multiple times, up to the
     * _value amount. If this function is called again it overwrites the
     * current allowance with _value.
     *
     * @param _spender    spender address
     * @param _amount     amount of tokens
     * @return            true on success
     */
    function approve(address _spender, uint256 _amount) returns (bool success) {
        allowance[msg.sender][_spender] = _amount;
        Approval(msg.sender, _spender, _amount);
        return true;
    }

    /**
     * Spender of tokens transfer an amount of tokens from the token owner's
     * balance to the spender's account. The owner of the tokens must already
     * have approve(...)-d this transfer
     *
     * @param _from       spender address
     * @param _to         target address
     * @param _amount     amount of tokens
     * @return            true on success
     */
    function transferFrom(address _from, address _to, uint256 _amount) returns (bool success) {
        if (balanceOf[_from] >= _amount                  // From a/c has balance
            && allowance[_from][msg.sender] >= _amount    // Transfer approved
            && _amount > 0                              // Non-zero transfer
            && balanceOf[_to] + _amount > balanceOf[_to]  // Overflow check
        ) {
            balanceOf[_from] -= _amount;
            allowance[_from][msg.sender] -= _amount;
            balanceOf[_to] += _amount;
            Transfer(_from, _to, _amount);
            return true;
        } else {
            return false;
        }
    }
}


contract EloPlayToken is ERC20Token, Owned {

    /**
     * Token data
     */
    string public constant symbol = "ELT";
    string public constant name = "EloPlayToken";
    uint8 public constant decimals = 18;

    /**
     * Wallet where invested Ethers will be sent
     */
    address public TARGET_ADDRESS;

    /**
     * Wallet where bonus tokens will be sent
     */
    address public TARGET_TOKENS_ADDRESS;

    /**
     * Start/end timestamp (unix)
     */
    uint256 public START_TS;
    uint256 public END_TS;

    /**
     * CAP in ether - may be changed before crowdsale starts to match actual ETH/USD rate
     */
    uint256 public CAP;

    /**
     * Usd/eth rate at start of ICO. Used for raised funds calculations
     */
    uint256 public USDETHRATE;

    /**
     * Is contract halted (in case of emergency)
     * Default value will be false (not halted)
     */
    bool public halted;

    /**
     * Total Ethers invested
     */
    uint256 public totalEthers;

    /**
     * Event fires when tokens are bought
     *
     * @param buyer                     tokens buyer
     * @param ethers                    total Ethers invested (in wei)
     * @param new_ether_balance         new Ethers balance (in wei)
     * @param tokens                    tokens bought for transaction
     * @param target_address_tokens     additional tokens generated for multisignature wallet
     * @param new_total_supply          total tokens bought
     * @param buy_price                 tokens/ETH rate for transaction
     */
    event TokensBought(address indexed buyer, uint256 ethers,
        uint256 new_ether_balance, uint256 tokens, uint256 target_address_tokens,
        uint256 new_total_supply, uint256 buy_price);

    /**
     * Event fires when tokens are bought
     *
     * @param backer                    buyer
     * @param amount                    total Ethers invested (in wei)
     * @param isContribution            always true in our case
     */
    event FundTransfer(address backer, uint amount, bool isContribution);


    /**
     * EloPlayToken contract constructor
     *
     * @param _start_ts         crowdsale start timestamp (unix)
     * @param _end_ts           crowdsale end timestamp (unix)
     * @param _cap              crowdsale upper cap (in wei)
     * @param _target_address   multisignature wallet where Ethers will be sent to
     * @param _target_tokens_address   account where 30% of tokens will be sent to
     * @param _usdethrate       USD to ETH rate
     */
    function EloPlayToken(uint256 _start_ts, uint256 _end_ts, uint256 _cap, address _target_address,  address _target_tokens_address, uint256 _usdethrate) {
        START_TS        = _start_ts;
        END_TS          = _end_ts;
        CAP             = _cap;
        USDETHRATE      = _usdethrate;
        TARGET_ADDRESS  = _target_address;
        TARGET_TOKENS_ADDRESS  = _target_tokens_address;
    }

    /**
     * Update cap before crowdsale starts
     *
     * @param _cap          new crowdsale upper cap (in wei)
     * @param _usdethrate   USD to ETH rate
     */
    function updateCap(uint256 _cap, uint256 _usdethrate) onlyOwner {
        // Don't process if halted
        require(!halted);
        // Make sure crowdsale isnt started yet
        require(now < START_TS);
        CAP = _cap;
        USDETHRATE = _usdethrate;
    }

    /**
     * Get raised USD based on USDETHRATE
     *
     * @return            USD raised value
     */
    function totalUSD() constant returns (uint256) {
        return totalEthers * USDETHRATE;
    }

    /**
     * Get tokens per ETH for current date/time
     *
     * @return            current tokens/ETH rate
     */
    function buyPrice() constant returns (uint256) {
        return buyPriceAt(now);
    }

    /**
     * Get tokens per ETH for given date/time
     *
     * @param _at         timestamp (unix)
     * @return            tokens/ETH rate for given timestamp
     */
    function buyPriceAt(uint256 _at) constant returns (uint256) {
        if (_at < START_TS) {
            return 0;
        } else if (_at < START_TS + 3600) {
            // 1st hour = 10000 + 20% = 12000
            return 12000;
        } else if (_at < START_TS + 3600 * 24) {
            // 1st day = 10000 + 15% = 11500
            return 11500;
        } else if (_at < START_TS + 3600 * 24 * 7) {
            // 1st week = 10000 + 10% = 11000
            return 11000;
        } else if (_at < START_TS + 3600 * 24 * 7 * 2) {
            // 2nd week = 10000 + 5% = 10500
            return 10500;
        } else if (_at <= END_TS) {
            // More than 2 weeks = 10000
            return 10000;
        } else {
            return 0;
        }
    }

    /**
     * Halt transactions in case of emergency
     */
    function halt() onlyOwner {
        require(!halted);
        halted = true;
    }

    /**
     * Unhalt halted contract
     */
    function unhalt() onlyOwner {
        require(halted);
        halted = false;
    }

    /**
     * Owner to add precommitment funding token balance before the crowdsale commences
     * Used for pre-sale commitments, added manually
     *
     * @param _participant         address that will receive tokens
     * @param _balance             number of tokens
     * @param _ethers         Ethers value (needed for stats)
     *
     */
    function addPrecommitment(address _participant, uint256 _balance, uint256 _ethers) onlyOwner {
        require(now < START_TS);
        // Minimum value = 1ELT
        // Since we are using 18 decimals for token
        require(_balance >= 1 ether);

        // To avoid overflow, first divide then multiply (to clearly show 70%+30%, result wasn't precalculated)
        uint additional_tokens = _balance / 70 * 30;

        balanceOf[_participant] = balanceOf[_participant].add(_balance);
        balanceOf[TARGET_TOKENS_ADDRESS] = balanceOf[TARGET_TOKENS_ADDRESS].add(additional_tokens);

        totalSupply = totalSupply.add(_balance);
        totalSupply = totalSupply.add(additional_tokens);

        // Add ETH raised to total
        totalEthers = totalEthers.add(_ethers);

        Transfer(0x0, _participant, _balance);
        Transfer(0x0, TARGET_TOKENS_ADDRESS, additional_tokens);
    }

    /**
     * Buy tokens from the contract
     */
    function () payable {
        proxyPayment(msg.sender);
    }

    /**
     * Exchanges can buy on behalf of participant
     *
     * @param _participant         address that will receive tokens
     */
    function proxyPayment(address _participant) payable {
        // Don't process if halted
        require(!halted);
        // No contributions before the start of the crowdsale
        require(now >= START_TS);
        // No contributions after the end of the crowdsale
        require(now <= END_TS);
        // No contributions after CAP is reached
        require(totalEthers < CAP);
        // Require 0.1 eth minimum
        require(msg.value >= 0.1 ether);

        // Add ETH raised to total
        totalEthers = totalEthers.add(msg.value);
        // Cannot exceed cap more than 0.1 ETH (to be able to finish ICO if CAP - totalEthers < 0.1)
        require(totalEthers < CAP + 0.1 ether);

        // What is the ELT to ETH rate
        uint256 _buyPrice = buyPrice();

        // Calculate #ELT - this is safe as _buyPrice is known
        // and msg.value is restricted to valid values
        uint tokens = msg.value * _buyPrice;

        // Check tokens > 0
        require(tokens > 0);
        // Compute tokens for foundation; user tokens = 70%; TARGET_ADDRESS = 30%
        // Number of tokens restricted so maths is safe
        // To clearly show 70%+30%, result wasn't precalculated
        uint additional_tokens = tokens * 30 / 70;

        // Add to total supply
        totalSupply = totalSupply.add(tokens);
        totalSupply = totalSupply.add(additional_tokens);

        // Add to balances
        balanceOf[_participant] = balanceOf[_participant].add(tokens);
        balanceOf[TARGET_TOKENS_ADDRESS] = balanceOf[TARGET_TOKENS_ADDRESS].add(additional_tokens);

        // Log events
        TokensBought(_participant, msg.value, totalEthers, tokens, additional_tokens,
            totalSupply, _buyPrice);
        FundTransfer(_participant, msg.value, true);
        Transfer(0x0, _participant, tokens);
        Transfer(0x0, TARGET_TOKENS_ADDRESS, additional_tokens);

        // Move the funds to a safe wallet
        TARGET_ADDRESS.transfer(msg.value);
    }

    /**
     * Transfer the balance from owner's account to another account, with a
     * check that the crowdsale is finalized
     *
     * @param _to                tokens receiver
     * @param _amount            tokens amount
     * @return                   true on success
     */
    function transfer(address _to, uint _amount) returns (bool success) {
        // Cannot transfer before crowdsale ends or cap reached
        require(now > END_TS || totalEthers >= CAP);
        // Standard transfer
        return super.transfer(_to, _amount);
    }

    /**
     * Spender of tokens transfer an amount of tokens from the token owner's
     * balance to another account, with a check that the crowdsale is
     * finalized
     *
     * @param _from              tokens sender
     * @param _to                tokens receiver
     * @param _amount            tokens amount
     * @return                   true on success
     */
    function transferFrom(address _from, address _to, uint _amount)
            returns (bool success) {
        // Cannot transfer before crowdsale ends or cap reached
        require(now > END_TS || totalEthers >= CAP);
        // Standard transferFrom
        return super.transferFrom(_from, _to, _amount);
    }

    /**
     * Owner can transfer out any accidentally sent ERC20 tokens
     *
     * @param _tokenAddress       tokens address
     * @param _amount             tokens amount
     * @return                   true on success
     */
    function transferAnyERC20Token(address _tokenAddress, uint _amount)
      onlyOwner returns (bool success) {
        return ERC20Token(_tokenAddress).transfer(owner, _amount);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalEthers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_at","type":"uint256"}],"name":"buyPriceAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_cap","type":"uint256"},{"name":"_usdethrate","type":"uint256"}],"name":"updateCap","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"USDETHRATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"},{"name":"_balance","type":"uint256"},{"name":"_ethers","type":"uint256"}],"name":"addPrecommitment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TARGET_TOKENS_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"END_TS","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalUSD","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"START_TS","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TARGET_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"}],"name":"proxyPayment","outputs":[],"payable":true,"type":"function"},{"inputs":[{"name":"_start_ts","type":"uint256"},{"name":"_end_ts","type":"uint256"},{"name":"_cap","type":"uint256"},{"name":"_target_address","type":"address"},{"name":"_target_tokens_address","type":"address"},{"name":"_usdethrate","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":false,"name":"ethers","type":"uint256"},{"indexed":false,"name":"new_ether_balance","type":"uint256"},{"indexed":false,"name":"tokens","type":"uint256"},{"indexed":false,"name":"target_address_tokens","type":"uint256"},{"indexed":false,"name":"new_total_supply","type":"uint256"},{"indexed":false,"name":"buy_price","type":"uint256"}],"name":"TokensBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"backer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"isContribution","type":"bool"}],"name":"FundTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

606060405260008055341561001357600080fd5b60405160c0806113098339810160405280805191906020018051919060200180519190602001805191906020018051919060200180519150505b5b60038054600160a060020a03191633600160a060020a03161790555b600786905560088590556009849055600a81905560058054600160a060020a03808616600160a060020a03199283161790925560068054928516929091169190911790555b5050505050505b611244806100c56000396000f3006060604052361561017d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461018a578063095ea7b3146102155780630a4625af1461024b57806318160ddd1461027057806323b872dd14610295578063313ce567146102d1578063383e3a5d146102fa5780633e859fcb146103225780635ed7ca5b1461033d57806370a082311461035257806379ba5097146103835780638620410b146103985780638969fb5f146103bd5780638da5cb5b146103e257806393e4bf4f1461041157806395d89b411461043857806398182950146104c35780639a267230146104f2578063a3ae88a014610517578063a9059cbb1461053c578063b0ea1e2e14610572578063b9b8af0b14610597578063cb3e64fd146105be578063d4ee1d90146105d3578063dc39d06d14610602578063dd62ed3e14610638578063ec81b4831461066f578063eca25f4214610694578063f2fde38b146106c3578063f48c3054146106e4575b5b610187336106fa565b5b005b341561019557600080fd5b61019d6109ad565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101da5780820151818401525b6020016101c1565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022057600080fd5b610237600160a060020a03600435166024356109e4565b604051901515815260200160405180910390f35b341561025657600080fd5b61025e610a51565b60405190815260200160405180910390f35b341561027b57600080fd5b61025e610a57565b60405190815260200160405180910390f35b34156102a057600080fd5b610237600160a060020a0360043581169060243516604435610a5d565b604051901515815260200160405180910390f35b34156102dc57600080fd5b6102e4610a93565b60405160ff909116815260200160405180910390f35b341561030557600080fd5b61025e600435610a98565b60405190815260200160405180910390f35b341561032d57600080fd5b610187600435602435610b2c565b005b341561034857600080fd5b610187610b75565b005b341561035d57600080fd5b61025e600160a060020a0360043516610bb1565b60405190815260200160405180910390f35b341561038e57600080fd5b610187610bc3565b005b34156103a357600080fd5b61025e610c69565b60405190815260200160405180910390f35b34156103c857600080fd5b61025e610c7a565b60405190815260200160405180910390f35b34156103ed57600080fd5b6103f5610c80565b604051600160a060020a03909116815260200160405180910390f35b341561041c57600080fd5b610187600160a060020a0360043516602435604435610c8f565b005b341561044357600080fd5b61019d610df8565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101da5780820151818401525b6020016101c1565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104ce57600080fd5b6103f5610e2f565b604051600160a060020a03909116815260200160405180910390f35b34156104fd57600080fd5b61025e610e3e565b60405190815260200160405180910390f35b341561052257600080fd5b61025e610e44565b60405190815260200160405180910390f35b341561054757600080fd5b610237600160a060020a0360043516602435610e4f565b604051901515815260200160405180910390f35b341561057d57600080fd5b61025e610e83565b60405190815260200160405180910390f35b34156105a257600080fd5b610237610e89565b604051901515815260200160405180910390f35b34156105c957600080fd5b610187610e92565b005b34156105de57600080fd5b6103f5610ecc565b604051600160a060020a03909116815260200160405180910390f35b341561060d57600080fd5b610237600160a060020a0360043516602435610edb565b604051901515815260200160405180910390f35b341561064357600080fd5b61025e600160a060020a0360043581169060243516610f99565b60405190815260200160405180910390f35b341561067a57600080fd5b61025e610fb6565b60405190815260200160405180910390f35b341561069f57600080fd5b6103f5610fbc565b604051600160a060020a03909116815260200160405180910390f35b34156106ce57600080fd5b610187600160a060020a0360043516610fcb565b005b610187600160a060020a03600435166106fa565b005b600b546000908190819060ff161561071157600080fd5b60075442101561072057600080fd5b60085442111561072f57600080fd5b600954600c541061073f57600080fd5b67016345785d8a000034101561075457600080fd5b600c54610767903463ffffffff61101316565b600c81905560095467016345785d8a000001901061078457600080fd5b61078c610c69565b92503483029150600082116107a057600080fd5b6046601e83025b0490506107bf8260005461101390919063ffffffff16565b60008190556107d4908263ffffffff61101316565b6000908155600160a060020a0385168152600160205260409020546107ff908363ffffffff61101316565b600160a060020a038086166000908152600160205260408082209390935560065490911681522054610837908263ffffffff61101316565b600654600160a060020a0390811660009081526001602052604080822093909355600c549054918716927f6bf42ea559224a77e2bc8d284b9f2eb6ed6b198a7ef7b742b41562c6a20b9adc92349291879187918a905180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a27fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf684346001604051600160a060020a039093168352602083019190915215156040808301919091526060909101905180910390a183600160a060020a031660006000805160206111f98339815191528460405190815260200160405180910390a3600654600160a060020a031660006000805160206111f98339815191528360405190815260200160405180910390a3600554600160a060020a03163480156108fc0290604051600060405180830381858888f1935050505015156109a657600080fd5b5b50505050565b60408051908101604052600c81527f456c6f506c6179546f6b656e0000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600c5481565b60005481565b6000600854421180610a735750600954600c5410155b1515610a7e57600080fd5b610a8984848461102d565b90505b9392505050565b601281565b6000600754821015610aac57506000610b21565b600754610e1001821015610ac35750612ee0610b21565b6007546201518001821015610adb5750612cec610b21565b60075462093a8001821015610af35750612af8610b21565b6007546212750001821015610b0b5750612904610b21565b6008548211610b1d5750612710610b21565b5060005b5b5b5b5b5b5b919050565b60035433600160a060020a03908116911614610b4757600080fd5b600b5460ff1615610b5757600080fd5b6007544210610b6557600080fd5b6009829055600a8190555b5b5050565b60035433600160a060020a03908116911614610b9057600080fd5b600b5460ff1615610ba057600080fd5b600b805460ff191660011790555b5b565b60016020526000908152604090205481565b60045433600160a060020a039081169116148015610bf25750600454600354600160a060020a03908116911614155b15610bae57600454600354600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36004546003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b5b565b6000610c7442610a98565b90505b90565b600a5481565b600354600160a060020a031681565b60035460009033600160a060020a03908116911614610cad57600080fd5b6007544210610cbb57600080fd5b670de0b6b3a7640000831015610cd057600080fd5b6046835b600160a060020a038616600090815260016020526040902054919004601e029150610cff9084611013565b600160a060020a038086166000908152600160205260408082209390935560065490911681522054610d37908263ffffffff61101316565b600654600160a060020a031660009081526001602052604081209190915554610d66908463ffffffff61101316565b6000819055610d7b908263ffffffff61101316565b600055600c54610d91908363ffffffff61101316565b600c55600160a060020a03841660006000805160206111f98339815191528560405190815260200160405180910390a3600654600160a060020a031660006000805160206111f98339815191528360405190815260200160405180910390a35b5b50505050565b60408051908101604052600381527f454c540000000000000000000000000000000000000000000000000000000000602082015281565b600654600160a060020a031681565b60085481565b600a54600c54025b90565b6000600854421180610e655750600954600c5410155b1515610e7057600080fd5b610e7a838361113b565b90505b92915050565b60075481565b600b5460ff1681565b60035433600160a060020a03908116911614610ead57600080fd5b600b5460ff161515610ebe57600080fd5b600b805460ff191690555b5b565b600454600160a060020a031681565b60035460009033600160a060020a03908116911614610ef957600080fd5b600354600160a060020a038085169163a9059cbb9116846000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f7557600080fd5b6102c65a03f11515610f8657600080fd5b50505060405180519150505b5b92915050565b600260209081526000928352604080842090915290825290205481565b60095481565b600554600160a060020a031681565b60035433600160a060020a03908116911614610fe657600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60008282018381101561102257fe5b8091505b5092915050565b600160a060020a03831660009081526001602052604081205482901080159061107d5750600160a060020a0380851660009081526002602090815260408083203390941683529290522054829010155b80156110895750600082115b80156110ae5750600160a060020a038316600090815260016020526040902054828101115b1561112b57600160a060020a0380851660008181526001602081815260408084208054899003905560028252808420338716855282528084208054899003905594881680845291905290839020805486019055916000805160206111f98339815191529085905190815260200160405180910390a3506001610a8c565b506000610a8c565b5b9392505050565b600160a060020a0333166000908152600160205260408120548290108015906111645750600082115b80156111895750600160a060020a038316600090815260016020526040902054828101115b156111e957600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055916000805160206111f98339815191529085905190815260200160405180910390a3506001610a4b565b506000610a4b565b5b929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582089f6eb9310338e9e1a2fa11483778d874fccf18d3e1d0047812661209958c9a000290000000000000000000000000000000000000000000000000000000059e49f40000000000000000000000000000000000000000000000000000000005a0c2c40000000000000000000000000000000000000000000000878678326eac9000000000000000000000000000000660cdee72302d2941a43db1275eded7827023baa000000000000000000000000660cdee72302d2941a43db1275eded7827023baa000000000000000000000000000000000000000000000000000000000000012c

Deployed Bytecode

0x6060604052361561017d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461018a578063095ea7b3146102155780630a4625af1461024b57806318160ddd1461027057806323b872dd14610295578063313ce567146102d1578063383e3a5d146102fa5780633e859fcb146103225780635ed7ca5b1461033d57806370a082311461035257806379ba5097146103835780638620410b146103985780638969fb5f146103bd5780638da5cb5b146103e257806393e4bf4f1461041157806395d89b411461043857806398182950146104c35780639a267230146104f2578063a3ae88a014610517578063a9059cbb1461053c578063b0ea1e2e14610572578063b9b8af0b14610597578063cb3e64fd146105be578063d4ee1d90146105d3578063dc39d06d14610602578063dd62ed3e14610638578063ec81b4831461066f578063eca25f4214610694578063f2fde38b146106c3578063f48c3054146106e4575b5b610187336106fa565b5b005b341561019557600080fd5b61019d6109ad565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101da5780820151818401525b6020016101c1565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022057600080fd5b610237600160a060020a03600435166024356109e4565b604051901515815260200160405180910390f35b341561025657600080fd5b61025e610a51565b60405190815260200160405180910390f35b341561027b57600080fd5b61025e610a57565b60405190815260200160405180910390f35b34156102a057600080fd5b610237600160a060020a0360043581169060243516604435610a5d565b604051901515815260200160405180910390f35b34156102dc57600080fd5b6102e4610a93565b60405160ff909116815260200160405180910390f35b341561030557600080fd5b61025e600435610a98565b60405190815260200160405180910390f35b341561032d57600080fd5b610187600435602435610b2c565b005b341561034857600080fd5b610187610b75565b005b341561035d57600080fd5b61025e600160a060020a0360043516610bb1565b60405190815260200160405180910390f35b341561038e57600080fd5b610187610bc3565b005b34156103a357600080fd5b61025e610c69565b60405190815260200160405180910390f35b34156103c857600080fd5b61025e610c7a565b60405190815260200160405180910390f35b34156103ed57600080fd5b6103f5610c80565b604051600160a060020a03909116815260200160405180910390f35b341561041c57600080fd5b610187600160a060020a0360043516602435604435610c8f565b005b341561044357600080fd5b61019d610df8565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101da5780820151818401525b6020016101c1565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104ce57600080fd5b6103f5610e2f565b604051600160a060020a03909116815260200160405180910390f35b34156104fd57600080fd5b61025e610e3e565b60405190815260200160405180910390f35b341561052257600080fd5b61025e610e44565b60405190815260200160405180910390f35b341561054757600080fd5b610237600160a060020a0360043516602435610e4f565b604051901515815260200160405180910390f35b341561057d57600080fd5b61025e610e83565b60405190815260200160405180910390f35b34156105a257600080fd5b610237610e89565b604051901515815260200160405180910390f35b34156105c957600080fd5b610187610e92565b005b34156105de57600080fd5b6103f5610ecc565b604051600160a060020a03909116815260200160405180910390f35b341561060d57600080fd5b610237600160a060020a0360043516602435610edb565b604051901515815260200160405180910390f35b341561064357600080fd5b61025e600160a060020a0360043581169060243516610f99565b60405190815260200160405180910390f35b341561067a57600080fd5b61025e610fb6565b60405190815260200160405180910390f35b341561069f57600080fd5b6103f5610fbc565b604051600160a060020a03909116815260200160405180910390f35b34156106ce57600080fd5b610187600160a060020a0360043516610fcb565b005b610187600160a060020a03600435166106fa565b005b600b546000908190819060ff161561071157600080fd5b60075442101561072057600080fd5b60085442111561072f57600080fd5b600954600c541061073f57600080fd5b67016345785d8a000034101561075457600080fd5b600c54610767903463ffffffff61101316565b600c81905560095467016345785d8a000001901061078457600080fd5b61078c610c69565b92503483029150600082116107a057600080fd5b6046601e83025b0490506107bf8260005461101390919063ffffffff16565b60008190556107d4908263ffffffff61101316565b6000908155600160a060020a0385168152600160205260409020546107ff908363ffffffff61101316565b600160a060020a038086166000908152600160205260408082209390935560065490911681522054610837908263ffffffff61101316565b600654600160a060020a0390811660009081526001602052604080822093909355600c549054918716927f6bf42ea559224a77e2bc8d284b9f2eb6ed6b198a7ef7b742b41562c6a20b9adc92349291879187918a905180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a27fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf684346001604051600160a060020a039093168352602083019190915215156040808301919091526060909101905180910390a183600160a060020a031660006000805160206111f98339815191528460405190815260200160405180910390a3600654600160a060020a031660006000805160206111f98339815191528360405190815260200160405180910390a3600554600160a060020a03163480156108fc0290604051600060405180830381858888f1935050505015156109a657600080fd5b5b50505050565b60408051908101604052600c81527f456c6f506c6179546f6b656e0000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600c5481565b60005481565b6000600854421180610a735750600954600c5410155b1515610a7e57600080fd5b610a8984848461102d565b90505b9392505050565b601281565b6000600754821015610aac57506000610b21565b600754610e1001821015610ac35750612ee0610b21565b6007546201518001821015610adb5750612cec610b21565b60075462093a8001821015610af35750612af8610b21565b6007546212750001821015610b0b5750612904610b21565b6008548211610b1d5750612710610b21565b5060005b5b5b5b5b5b5b919050565b60035433600160a060020a03908116911614610b4757600080fd5b600b5460ff1615610b5757600080fd5b6007544210610b6557600080fd5b6009829055600a8190555b5b5050565b60035433600160a060020a03908116911614610b9057600080fd5b600b5460ff1615610ba057600080fd5b600b805460ff191660011790555b5b565b60016020526000908152604090205481565b60045433600160a060020a039081169116148015610bf25750600454600354600160a060020a03908116911614155b15610bae57600454600354600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36004546003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b5b565b6000610c7442610a98565b90505b90565b600a5481565b600354600160a060020a031681565b60035460009033600160a060020a03908116911614610cad57600080fd5b6007544210610cbb57600080fd5b670de0b6b3a7640000831015610cd057600080fd5b6046835b600160a060020a038616600090815260016020526040902054919004601e029150610cff9084611013565b600160a060020a038086166000908152600160205260408082209390935560065490911681522054610d37908263ffffffff61101316565b600654600160a060020a031660009081526001602052604081209190915554610d66908463ffffffff61101316565b6000819055610d7b908263ffffffff61101316565b600055600c54610d91908363ffffffff61101316565b600c55600160a060020a03841660006000805160206111f98339815191528560405190815260200160405180910390a3600654600160a060020a031660006000805160206111f98339815191528360405190815260200160405180910390a35b5b50505050565b60408051908101604052600381527f454c540000000000000000000000000000000000000000000000000000000000602082015281565b600654600160a060020a031681565b60085481565b600a54600c54025b90565b6000600854421180610e655750600954600c5410155b1515610e7057600080fd5b610e7a838361113b565b90505b92915050565b60075481565b600b5460ff1681565b60035433600160a060020a03908116911614610ead57600080fd5b600b5460ff161515610ebe57600080fd5b600b805460ff191690555b5b565b600454600160a060020a031681565b60035460009033600160a060020a03908116911614610ef957600080fd5b600354600160a060020a038085169163a9059cbb9116846000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f7557600080fd5b6102c65a03f11515610f8657600080fd5b50505060405180519150505b5b92915050565b600260209081526000928352604080842090915290825290205481565b60095481565b600554600160a060020a031681565b60035433600160a060020a03908116911614610fe657600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60008282018381101561102257fe5b8091505b5092915050565b600160a060020a03831660009081526001602052604081205482901080159061107d5750600160a060020a0380851660009081526002602090815260408083203390941683529290522054829010155b80156110895750600082115b80156110ae5750600160a060020a038316600090815260016020526040902054828101115b1561112b57600160a060020a0380851660008181526001602081815260408084208054899003905560028252808420338716855282528084208054899003905594881680845291905290839020805486019055916000805160206111f98339815191529085905190815260200160405180910390a3506001610a8c565b506000610a8c565b5b9392505050565b600160a060020a0333166000908152600160205260408120548290108015906111645750600082115b80156111895750600160a060020a038316600090815260016020526040902054828101115b156111e957600160a060020a033381166000818152600160205260408082208054879003905592861680825290839020805486019055916000805160206111f98339815191529085905190815260200160405180910390a3506001610a4b565b506000610a4b565b5b929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582089f6eb9310338e9e1a2fa11483778d874fccf18d3e1d0047812661209958c9a00029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000059e49f40000000000000000000000000000000000000000000000000000000005a0c2c40000000000000000000000000000000000000000000000878678326eac9000000000000000000000000000000660cdee72302d2941a43db1275eded7827023baa000000000000000000000000660cdee72302d2941a43db1275eded7827023baa000000000000000000000000000000000000000000000000000000000000012c

-----Decoded View---------------
Arg [0] : _start_ts (uint256): 1508155200
Arg [1] : _end_ts (uint256): 1510747200
Arg [2] : _cap (uint256): 40000000000000000000000
Arg [3] : _target_address (address): 0x660cDee72302D2941A43db1275EDED7827023baA
Arg [4] : _target_tokens_address (address): 0x660cDee72302D2941A43db1275EDED7827023baA
Arg [5] : _usdethrate (uint256): 300

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000059e49f40
Arg [1] : 000000000000000000000000000000000000000000000000000000005a0c2c40
Arg [2] : 000000000000000000000000000000000000000000000878678326eac9000000
Arg [3] : 000000000000000000000000660cdee72302d2941a43db1275eded7827023baa
Arg [4] : 000000000000000000000000660cdee72302d2941a43db1275eded7827023baa
Arg [5] : 000000000000000000000000000000000000000000000000000000000000012c


Swarm Source

bzzr://89f6eb9310338e9e1a2fa11483778d874fccf18d3e1d0047812661209958c9a0

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.