ETH Price: $3,517.56 (+4.86%)

Token

 

Overview

Max Total Supply

0

Holders

0

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ChangeableRateCrowdsale

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-11-27
*/

pragma solidity ^0.4.11;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal constant returns (uint256) {
        uint256 c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal constant returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal constant returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal constant returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;


    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    function Ownable() {
        owner = msg.sender;
    }


    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }


    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) onlyOwner {
        if (newOwner != address(0)) {
            owner = newOwner;
        }
    }

}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;


    /**
     * @dev modifier to allow actions only when the contract IS paused
     */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
     * @dev modifier to allow actions only when the contract IS NOT paused
     */
    modifier whenPaused {
        require(paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() onlyOwner whenNotPaused returns (bool) {
        paused = true;
        Pause();
        return true;
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() onlyOwner whenPaused returns (bool) {
        paused = false;
        Unpause();
        return true;
    }
}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
    uint256 public totalSupply;
    function balanceOf(address who) constant returns (uint256);
    function transfer(address to, uint256 value) returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
    using SafeMath for uint256;

    mapping(address => uint256) balances;

    /**
    * @dev transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) returns (bool) {
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        Transfer(msg.sender, _to, _value);
        return true;
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param _owner The address to query the the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) constant returns (uint256);
    function transferFrom(address from, address to, uint256 value) returns (bool);
    function approve(address spender, uint256 value) returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

    mapping (address => mapping (address => uint256)) allowed;


    /**
     * @dev Transfer tokens from one address to another
     * @param _from address The address which you want to send tokens from
     * @param _to address The address which you want to transfer to
     * @param _value uint256 the amout of tokens to be transfered
     */
    function transferFrom(address _from, address _to, uint256 _value) returns (bool) {
        var _allowance = allowed[_from][msg.sender];

        // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
        // require (_value <= _allowance);

        balances[_to] = balances[_to].add(_value);
        balances[_from] = balances[_from].sub(_value);
        allowed[_from][msg.sender] = _allowance.sub(_value);
        Transfer(_from, _to, _value);
        return true;
    }

    /**
     * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * @param _spender The address which will spend the funds.
     * @param _value The amount of tokens to be spent.
     */
    function approve(address _spender, uint256 _value) returns (bool) {

        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender, 0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require((_value == 0) || (allowed[msg.sender][_spender] == 0));

        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param _owner address The address which owns the funds.
     * @param _spender address The address which will spend the funds.
     * @return A uint256 specifing the amount of tokens still avaible for the spender.
     */
    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

}

/**
 * @title HoQuToken
 * @dev HoQu.io token contract.
 */
contract HoQuToken is StandardToken, Pausable {

    string public constant name = "HOQU Token";
    string public constant symbol = "HQX";
    uint32 public constant decimals = 18;

    /**
     * @dev Give all tokens to msg.sender.
     */
    function HoQuToken(uint _totalSupply) {
        require (_totalSupply > 0);
        totalSupply = balances[msg.sender] = _totalSupply;
    }

    function transfer(address _to, uint _value) whenNotPaused returns (bool) {
        return super.transfer(_to, _value);
    }

    function transferFrom(address _from, address _to, uint _value) whenNotPaused returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }
}

/**
 * @title ClaimableCrowdsale
 * @title HoQu.io claimable crowdsale contract.
 */
contract ClaimableCrowdsale is Pausable {
    using SafeMath for uint256;

    // all accepted ethers will be sent to this address
    address beneficiaryAddress;

    // all remain tokens after ICO should go to that address
    address public bankAddress;

    // token instance
    HoQuToken public token;

    uint256 public maxTokensAmount;
    uint256 public issuedTokensAmount = 0;
    uint256 public minBuyableAmount;
    uint256 public tokenRate; // amount of HQX per 1 ETH
    
    uint256 endDate;

    bool public isFinished = false;

    // buffer for claimable tokens
    mapping(address => uint256) public tokens;
    mapping(address => bool) public approved;
    mapping(uint32 => address) internal tokenReceivers;
    uint32 internal receiversCount;

    /**
    * Events for token purchase logging
    */
    event TokenBought(address indexed _buyer, uint256 _tokens, uint256 _amount);
    event TokenAdded(address indexed _receiver, uint256 _tokens, uint256 _equivalentAmount);
    event TokenToppedUp(address indexed _receiver, uint256 _tokens, uint256 _equivalentAmount);
    event TokenSubtracted(address indexed _receiver, uint256 _tokens, uint256 _equivalentAmount);
    event TokenSent(address indexed _receiver, uint256 _tokens);

    modifier inProgress() {
        require (!isFinished);
        require (issuedTokensAmount < maxTokensAmount);
        require (now <= endDate);
        _;
    }
    
    /**
    * @param _tokenAddress address of a HQX token contract
    * @param _bankAddress address for remain HQX tokens accumulation
    * @param _beneficiaryAddress accepted ETH go to this address
    * @param _tokenRate rate HQX per 1 ETH
    * @param _minBuyableAmount min ETH per each buy action (in ETH wei)
    * @param _maxTokensAmount ICO HQX capacity (in HQX wei)
    * @param _endDate the date when ICO will expire
    */
    function ClaimableCrowdsale(
        address _tokenAddress,
        address _bankAddress,
        address _beneficiaryAddress,
        uint256 _tokenRate,
        uint256 _minBuyableAmount,
        uint256 _maxTokensAmount,
        uint256 _endDate
    ) {
        token = HoQuToken(_tokenAddress);

        bankAddress = _bankAddress;
        beneficiaryAddress = _beneficiaryAddress;

        tokenRate = _tokenRate;
        minBuyableAmount = _minBuyableAmount;
        maxTokensAmount = _maxTokensAmount;

        endDate = _endDate;
    }

    /*
     * @dev Set new HoQu token exchange rate.
     */
    function setTokenRate(uint256 _tokenRate) onlyOwner {
        require (_tokenRate > 0);
        tokenRate = _tokenRate;
    }

    /**
     * Buy HQX. Tokens will be stored in contract until claim stage
     */
    function buy() payable inProgress whenNotPaused {
        uint256 payAmount = msg.value;
        uint256 returnAmount = 0;

        // calculate token amount to be transfered to investor
        uint256 tokensAmount = tokenRate.mul(payAmount);
    
        if (issuedTokensAmount + tokensAmount > maxTokensAmount) {
            tokensAmount = maxTokensAmount.sub(issuedTokensAmount);
            payAmount = tokensAmount.div(tokenRate);
            returnAmount = msg.value.sub(payAmount);
        }
    
        issuedTokensAmount = issuedTokensAmount.add(tokensAmount);
        require (issuedTokensAmount <= maxTokensAmount);

        storeTokens(msg.sender, tokensAmount);
        TokenBought(msg.sender, tokensAmount, payAmount);

        beneficiaryAddress.transfer(payAmount);
    
        if (returnAmount > 0) {
            msg.sender.transfer(returnAmount);
        }
    }

    /**
     * Add HQX payed by another crypto (BTC, LTC). Tokens will be stored in contract until claim stage
     */
    function add(address _receiver, uint256 _equivalentEthAmount) onlyOwner inProgress whenNotPaused {
        uint256 tokensAmount = tokenRate.mul(_equivalentEthAmount);
        issuedTokensAmount = issuedTokensAmount.add(tokensAmount);

        storeTokens(_receiver, tokensAmount);
        TokenAdded(_receiver, tokensAmount, _equivalentEthAmount);
    }

    /**
     * Add HQX by referral program. Tokens will be stored in contract until claim stage
     */
    function topUp(address _receiver, uint256 _equivalentEthAmount) onlyOwner whenNotPaused {
        uint256 tokensAmount = tokenRate.mul(_equivalentEthAmount);
        issuedTokensAmount = issuedTokensAmount.add(tokensAmount);

        storeTokens(_receiver, tokensAmount);
        TokenToppedUp(_receiver, tokensAmount, _equivalentEthAmount);
    }

    /**
     * Reduce bought HQX amount. Emergency use only
     */
    function sub(address _receiver, uint256 _equivalentEthAmount) onlyOwner whenNotPaused {
        uint256 tokensAmount = tokenRate.mul(_equivalentEthAmount);

        require (tokens[_receiver] >= tokensAmount);

        tokens[_receiver] = tokens[_receiver].sub(tokensAmount);
        issuedTokensAmount = issuedTokensAmount.sub(tokensAmount);

        TokenSubtracted(_receiver, tokensAmount, _equivalentEthAmount);
    }

    /**
     * Internal method for storing tokens in contract until claim stage
     */
    function storeTokens(address _receiver, uint256 _tokensAmount) internal whenNotPaused {
        if (tokens[_receiver] == 0) {
            tokenReceivers[receiversCount] = _receiver;
            receiversCount++;
            approved[_receiver] = false;
        }
        tokens[_receiver] = tokens[_receiver].add(_tokensAmount);
    }

    /**
     * Claim all bought HQX. Available tokens will be sent to transaction sender address if it is approved
     */
    function claim() whenNotPaused {
        claimFor(msg.sender);
    }

    /**
     * Claim all bought HQX for specific approved address
     */
    function claimOne(address _receiver) onlyOwner whenNotPaused {
        claimFor(_receiver);
    }

    /**
     * Claim all bought HQX for all approved addresses
     */
    function claimAll() onlyOwner whenNotPaused {
        for (uint32 i = 0; i < receiversCount; i++) {
            address receiver = tokenReceivers[i];
            if (approved[receiver] && tokens[receiver] > 0) {
                claimFor(receiver);
            }
        }
    }

    /**
     * Internal method for claiming tokens for specific approved address
     */
    function claimFor(address _receiver) internal whenNotPaused {
        require(approved[_receiver]);
        require(tokens[_receiver] > 0);

        uint256 tokensToSend = tokens[_receiver];
        tokens[_receiver] = 0;

        token.transferFrom(bankAddress, _receiver, tokensToSend);
        TokenSent(_receiver, tokensToSend);
    }

    function approve(address _receiver) onlyOwner whenNotPaused {
        approved[_receiver] = true;
    }
    
    /**
     * Finish Sale.
     */
    function finish() onlyOwner {
        require (issuedTokensAmount >= maxTokensAmount || now > endDate);
        require (!isFinished);
        isFinished = true;
        token.transfer(bankAddress, token.balanceOf(this));
    }

    function getReceiversCount() constant onlyOwner returns (uint32) {
        return receiversCount;
    }

    function getReceiver(uint32 i) constant onlyOwner returns (address) {
        return tokenReceivers[i];
    }
    
    /**
     * Buy HQX. Tokens will be stored in contract until claim stage
     */
    function() external payable {
        buy();
    }
}

/**
 * @title ChangeableRateCrowdsale
 * @dev HoQu.io Main Sale stage
 */
contract ChangeableRateCrowdsale is ClaimableCrowdsale {

    struct RateBoundary {
        uint256 amount;
        uint256 rate;
    }

    mapping (uint => RateBoundary) public rateBoundaries;
    uint public currentBoundary = 0;
    uint public numOfBoundaries = 0;
    uint256 public nextBoundaryAmount;

    /**
    * @param _tokenAddress address of a HQX token contract
    * @param _bankAddress address for remain HQX tokens accumulation
    * @param _beneficiaryAddress accepted ETH go to this address
    * @param _tokenRate rate HQX per 1 ETH
    * @param _minBuyableAmount min ETH per each buy action (in ETH wei)
    * @param _maxTokensAmount ICO HQX capacity (in HQX wei)
    * @param _endDate the date when ICO will expire
    */
    function ChangeableRateCrowdsale(
        address _tokenAddress,
        address _bankAddress,
        address _beneficiaryAddress,
        uint256 _tokenRate,
        uint256 _minBuyableAmount,
        uint256 _maxTokensAmount,
        uint256 _endDate
    ) ClaimableCrowdsale(
        _tokenAddress,
        _bankAddress,
        _beneficiaryAddress,
        _tokenRate,
        _minBuyableAmount,
        _maxTokensAmount,
        _endDate
    ) {
        rateBoundaries[numOfBoundaries++] = RateBoundary({
            amount : 13777764 ether,
            rate : 6000
        });
        rateBoundaries[numOfBoundaries++] = RateBoundary({
            amount : 27555528 ether,
            rate : 5750
        });
        rateBoundaries[numOfBoundaries++] = RateBoundary({
            amount : 41333292 ether,
            rate : 5650
        });
        rateBoundaries[numOfBoundaries++] = RateBoundary({
            amount : 55111056 ether,
            rate : 5550
        });
        rateBoundaries[numOfBoundaries++] = RateBoundary({
            amount : 68888820 ether,
            rate : 5450
        });
        rateBoundaries[numOfBoundaries++] = RateBoundary({
            amount : 82666584 ether,
            rate : 5350
        });
        rateBoundaries[numOfBoundaries++] = RateBoundary({
            amount : 96444348 ether,
            rate : 5250
        });
        rateBoundaries[numOfBoundaries++] = RateBoundary({
            amount : 110222112 ether,
            rate : 5150
        });
        rateBoundaries[numOfBoundaries++] = RateBoundary({
            amount : 137777640 ether,
            rate : 5000
        });
        nextBoundaryAmount = rateBoundaries[currentBoundary].amount;
    }

    /**
     * Internal method to change rate if boundary is hit
     */
    function touchRate() internal {
        if (issuedTokensAmount >= nextBoundaryAmount) {
            currentBoundary++;
            if (currentBoundary >= numOfBoundaries) {
                nextBoundaryAmount = maxTokensAmount;
            }
            else {
                nextBoundaryAmount = rateBoundaries[currentBoundary].amount;
                tokenRate = rateBoundaries[currentBoundary].rate;
            }
        }
    }

    /**
     * Inherited internal method for storing tokens in contract until claim stage
     */
    function storeTokens(address _receiver, uint256 _tokensAmount) internal whenNotPaused {
        ClaimableCrowdsale.storeTokens(_receiver, _tokensAmount);
        touchRate();
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"claimOne","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxTokensAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minBuyableAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"},{"name":"_equivalentEthAmount","type":"uint256"}],"name":"sub","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint32"}],"name":"getReceiver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"rateBoundaries","outputs":[{"name":"amount","type":"uint256"},{"name":"rate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenRate","type":"uint256"}],"name":"setTokenRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bankAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentBoundary","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getReceiversCount","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numOfBoundaries","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finish","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"},{"name":"_equivalentEthAmount","type":"uint256"}],"name":"topUp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"approved","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"issuedTokensAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextBoundaryAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"},{"name":"_equivalentEthAmount","type":"uint256"}],"name":"add","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_bankAddress","type":"address"},{"name":"_beneficiaryAddress","type":"address"},{"name":"_tokenRate","type":"uint256"},{"name":"_minBuyableAmount","type":"uint256"},{"name":"_maxTokensAmount","type":"uint256"},{"name":"_endDate","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_buyer","type":"address"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"TokenBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_receiver","type":"address"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_equivalentAmount","type":"uint256"}],"name":"TokenAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_receiver","type":"address"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_equivalentAmount","type":"uint256"}],"name":"TokenToppedUp","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_receiver","type":"address"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_equivalentAmount","type":"uint256"}],"name":"TokenSubtracted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_receiver","type":"address"},{"indexed":false,"name":"_tokens","type":"uint256"}],"name":"TokenSent","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}]

60606040526000805460a060020a60ff021916815560058190556009805460ff19169055600f819055601055341561003657600080fd5b60405160e08061150f8339810160405280805191906020018051919060200180519190602001805191906020018051919060200180519190602001805160008054600160a060020a03338116600160a060020a03199283161790925560038054838d1690831617905560028054838c1690831617905560018054928a16929091169190911790556007869055600685905560048490556008819055915060409050805190810160409081526a0b658e154215c96f100000825261177060208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a16cb1c2a842b92de200000825261167660208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a2230aa3fc6415c4d300000825261161260208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a2d963855085725bc40000082526115ae60208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a38fbc66a4a6cef2b500000825261154a60208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a4461547f8c82b89a60000082526114e660208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a4fc6e294ce988209700000825261148260208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a5b2c70aa10ae4b78800000825261141e60208084019190915260108054600181019091556000908152600e90915220815181556020820151600190910155506040805190810160409081526a71f78cd494d9de56a00000825261138860208084019190915260108054600181019091556000908152600e909152208151815560208201516001909101555050600f546000908152600e6020526040902054601155505050505050611163806103ac6000396000f3006060604052600436106101665763ffffffff60e060020a6000350416630262dc1381146101705780630a3846651461018f5780632511b182146101b457806326ffee08146101c757806331711884146101e95780633c78fe07146101fc5780633f4ba83a146102345780634a7510721461025b5780634e71d92d146102895780635c975abb1461029c57806361241c28146102af5780637822ed49146102c55780637b352962146102d85780638456cb59146102eb5780638da5cb5b146102fe578063a4bd7a2014610311578063a6f2ae3a14610166578063a72a05f714610324578063d1058e5914610350578063d4f114a614610363578063d56b288914610376578063d6f7ddf914610389578063d8b964e6146103ab578063daea85c5146103ca578063e4860339146103e9578063e69b414b14610408578063f07255e31461041b578063f2fde38b1461042e578063f5d82b6b1461044d578063fc0c546a1461046f575b61016e610482565b005b341561017b57600080fd5b61016e600160a060020a0360043516610621565b341561019a57600080fd5b6101a261065f565b60405190815260200160405180910390f35b34156101bf57600080fd5b6101a2610665565b34156101d257600080fd5b61016e600160a060020a036004351660243561066b565b34156101f457600080fd5b6101a261077b565b341561020757600080fd5b61021863ffffffff60043516610781565b604051600160a060020a03909116815260200160405180910390f35b341561023f57600080fd5b6102476107bf565b604051901515815260200160405180910390f35b341561026657600080fd5b610271600435610843565b60405191825260208201526040908101905180910390f35b341561029457600080fd5b61016e61085c565b34156102a757600080fd5b61024761087e565b34156102ba57600080fd5b61016e60043561088e565b34156102d057600080fd5b6102186108bb565b34156102e357600080fd5b6102476108ca565b34156102f657600080fd5b6102476108d3565b341561030957600080fd5b61021861095c565b341561031c57600080fd5b6101a261096b565b341561032f57600080fd5b610337610971565b60405163ffffffff909116815260200160405180910390f35b341561035b57600080fd5b61016e61099a565b341561036e57600080fd5b6101a2610a59565b341561038157600080fd5b61016e610a5f565b341561039457600080fd5b61016e600160a060020a0360043516602435610ba1565b34156103b657600080fd5b610247600160a060020a0360043516610c53565b34156103d557600080fd5b61016e600160a060020a0360043516610c68565b34156103f457600080fd5b6101a2600160a060020a0360043516610cbe565b341561041357600080fd5b6101a2610cd0565b341561042657600080fd5b6101a2610cd6565b341561043957600080fd5b61016e600160a060020a0360043516610cdc565b341561045857600080fd5b61016e600160a060020a0360043516602435610d33565b341561047a57600080fd5b610218610e14565b6009546000908190819060ff161561049957600080fd5b600454600554106104a957600080fd5b6008544211156104b857600080fd5b60005460a060020a900460ff16156104cf57600080fd5b600754349350600092506104e9908463ffffffff610e2316565b90506004548160055401111561053a5760055460045461050e9163ffffffff610e4e16565b905061052560075482610e6090919063ffffffff16565b9250610537348463ffffffff610e4e16565b91505b60055461054d908263ffffffff610e7716565b600581905560045490111561056157600080fd5b61056b3382610e86565b33600160a060020a03167f28cab0d660ed8aedd61a8c9db00b97f6a2d67e07d87795994f440b18bc5f1aa3828560405191825260208201526040908101905180910390a2600154600160a060020a031683156108fc0284604051600060405180830381858888f1935050505015156105e257600080fd5b600082111561061c57600160a060020a03331682156108fc0283604051600060405180830381858888f19350505050151561061c57600080fd5b505050565b60005433600160a060020a0390811691161461063c57600080fd5b60005460a060020a900460ff161561065357600080fd5b61065c81610eaf565b50565b60045481565b60065481565b6000805433600160a060020a0390811691161461068757600080fd5b60005460a060020a900460ff161561069e57600080fd5b6007546106b1908363ffffffff610e2316565b600160a060020a0384166000908152600a6020526040902054909150819010156106da57600080fd5b600160a060020a0383166000908152600a6020526040902054610703908263ffffffff610e4e16565b600160a060020a0384166000908152600a602052604090205560055461072f908263ffffffff610e4e16565b600555600160a060020a0383167f2da8b2becb27b189a54d21689aa110c877379a94c6f59f115cedc91d66239b33828460405191825260208201526040908101905180910390a2505050565b60075481565b6000805433600160a060020a0390811691161461079d57600080fd5b5063ffffffff166000908152600c6020526040902054600160a060020a031690565b6000805433600160a060020a039081169116146107db57600080fd5b60005460a060020a900460ff1615156107f357600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b600e602052600090815260409020805460019091015482565b60005460a060020a900460ff161561087357600080fd5b61087c33610eaf565b565b60005460a060020a900460ff1681565b60005433600160a060020a039081169116146108a957600080fd5b600081116108b657600080fd5b600755565b600254600160a060020a031681565b60095460ff1681565b6000805433600160a060020a039081169116146108ef57600080fd5b60005460a060020a900460ff161561090657600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b600054600160a060020a031681565b600f5481565b6000805433600160a060020a0390811691161461098d57600080fd5b50600d5463ffffffff1690565b60008054819033600160a060020a039081169116146109b857600080fd5b60005460a060020a900460ff16156109cf57600080fd5b600091505b600d5463ffffffff9081169083161015610a55575063ffffffff81166000908152600c6020908152604080832054600160a060020a0316808452600b9092529091205460ff168015610a3c5750600160a060020a0381166000908152600a6020526040812054115b15610a4a57610a4a81610eaf565b6001909101906109d4565b5050565b60105481565b60005433600160a060020a03908116911614610a7a57600080fd5b600454600554101580610a8e575060085442115b1515610a9957600080fd5b60095460ff1615610aa957600080fd5b6009805460ff19166001179055600354600254600160a060020a039182169163a9059cbb9116826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610b1d57600080fd5b6102c65a03f11515610b2e57600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b8457600080fd5b6102c65a03f11515610b9557600080fd5b50505060405180515050565b6000805433600160a060020a03908116911614610bbd57600080fd5b60005460a060020a900460ff1615610bd457600080fd5b600754610be7908363ffffffff610e2316565b600554909150610bfd908263ffffffff610e7716565b600555610c0a8382610e86565b82600160a060020a03167ff10143e1b37ebaf3698e98976d8bddabcea045adc939c03b245da18e81ea9651828460405191825260208201526040908101905180910390a2505050565b600b6020526000908152604090205460ff1681565b60005433600160a060020a03908116911614610c8357600080fd5b60005460a060020a900460ff1615610c9a57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600a6020526000908152604090205481565b60055481565b60115481565b60005433600160a060020a03908116911614610cf757600080fd5b600160a060020a0381161561065c5760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b6000805433600160a060020a03908116911614610d4f57600080fd5b60095460ff1615610d5f57600080fd5b60045460055410610d6f57600080fd5b600854421115610d7e57600080fd5b60005460a060020a900460ff1615610d9557600080fd5b600754610da8908363ffffffff610e2316565b600554909150610dbe908263ffffffff610e7716565b600555610dcb8382610e86565b82600160a060020a03167fa818a22273fc309f0a3682b642c74c5b5c25c0615ff378d07767cd231e19fffc828460405191825260208201526040908101905180910390a2505050565b600354600160a060020a031681565b6000828202831580610e3f5750828482811515610e3c57fe5b04145b1515610e4757fe5b9392505050565b600082821115610e5a57fe5b50900390565b6000808284811515610e6e57fe5b04949350505050565b600082820183811015610e4757fe5b60005460a060020a900460ff1615610e9d57600080fd5b610ea78282610ffd565b610a556110ee565b6000805460a060020a900460ff1615610ec757600080fd5b600160a060020a0382166000908152600b602052604090205460ff161515610eee57600080fd5b600160a060020a0382166000908152600a602052604081205411610f1157600080fd5b50600160a060020a038082166000908152600a60205260408082208054908390556003546002549194908116936323b872dd93929091169186918691516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610fa157600080fd5b6102c65a03f11515610fb257600080fd5b50505060405180515050600160a060020a0382167fd4ff88d569a7ad2bfd6b17da9dbe82e2ccc016fd0051e08ff1ad1e6fe8fc9b558260405190815260200160405180910390a25050565b60005460a060020a900460ff161561101457600080fd5b600160a060020a0382166000908152600a602052604090205415156110a557600d805463ffffffff9081166000908152600c60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038916908117909155855463ffffffff19811690861660010190951694909417909455918152600b90915220805460ff191690555b600160a060020a0382166000908152600a60205260409020546110ce908263ffffffff610e7716565b600160a060020a039092166000908152600a602052604090209190915550565b6011546005541061087c57600f80546001019081905560105490106111185760045460115561087c565b600f546000908152600e602052604090208054601155600101546007555600a165627a7a723058205dcd51c36e6f1408ac87e0e8d000b315fa16ccd0bbf97ffbb808e16ac1dc65b400290000000000000000000000001b957dc4aefeed3b4a2351a6a6d5cbfbba0cecfa00000000000000000000000029f5ffb0e38e72ea60226f24b0e241bcc12868b80000000000000000000000008c097a9c954894c8779edef955398d6b8ea7226a0000000000000000000000000000000000000000000000000000000000001770000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000071f78cd494d9de56a00000000000000000000000000000000000000000000000000000000000005a949f7f

Deployed Bytecode

0x6060604052600436106101665763ffffffff60e060020a6000350416630262dc1381146101705780630a3846651461018f5780632511b182146101b457806326ffee08146101c757806331711884146101e95780633c78fe07146101fc5780633f4ba83a146102345780634a7510721461025b5780634e71d92d146102895780635c975abb1461029c57806361241c28146102af5780637822ed49146102c55780637b352962146102d85780638456cb59146102eb5780638da5cb5b146102fe578063a4bd7a2014610311578063a6f2ae3a14610166578063a72a05f714610324578063d1058e5914610350578063d4f114a614610363578063d56b288914610376578063d6f7ddf914610389578063d8b964e6146103ab578063daea85c5146103ca578063e4860339146103e9578063e69b414b14610408578063f07255e31461041b578063f2fde38b1461042e578063f5d82b6b1461044d578063fc0c546a1461046f575b61016e610482565b005b341561017b57600080fd5b61016e600160a060020a0360043516610621565b341561019a57600080fd5b6101a261065f565b60405190815260200160405180910390f35b34156101bf57600080fd5b6101a2610665565b34156101d257600080fd5b61016e600160a060020a036004351660243561066b565b34156101f457600080fd5b6101a261077b565b341561020757600080fd5b61021863ffffffff60043516610781565b604051600160a060020a03909116815260200160405180910390f35b341561023f57600080fd5b6102476107bf565b604051901515815260200160405180910390f35b341561026657600080fd5b610271600435610843565b60405191825260208201526040908101905180910390f35b341561029457600080fd5b61016e61085c565b34156102a757600080fd5b61024761087e565b34156102ba57600080fd5b61016e60043561088e565b34156102d057600080fd5b6102186108bb565b34156102e357600080fd5b6102476108ca565b34156102f657600080fd5b6102476108d3565b341561030957600080fd5b61021861095c565b341561031c57600080fd5b6101a261096b565b341561032f57600080fd5b610337610971565b60405163ffffffff909116815260200160405180910390f35b341561035b57600080fd5b61016e61099a565b341561036e57600080fd5b6101a2610a59565b341561038157600080fd5b61016e610a5f565b341561039457600080fd5b61016e600160a060020a0360043516602435610ba1565b34156103b657600080fd5b610247600160a060020a0360043516610c53565b34156103d557600080fd5b61016e600160a060020a0360043516610c68565b34156103f457600080fd5b6101a2600160a060020a0360043516610cbe565b341561041357600080fd5b6101a2610cd0565b341561042657600080fd5b6101a2610cd6565b341561043957600080fd5b61016e600160a060020a0360043516610cdc565b341561045857600080fd5b61016e600160a060020a0360043516602435610d33565b341561047a57600080fd5b610218610e14565b6009546000908190819060ff161561049957600080fd5b600454600554106104a957600080fd5b6008544211156104b857600080fd5b60005460a060020a900460ff16156104cf57600080fd5b600754349350600092506104e9908463ffffffff610e2316565b90506004548160055401111561053a5760055460045461050e9163ffffffff610e4e16565b905061052560075482610e6090919063ffffffff16565b9250610537348463ffffffff610e4e16565b91505b60055461054d908263ffffffff610e7716565b600581905560045490111561056157600080fd5b61056b3382610e86565b33600160a060020a03167f28cab0d660ed8aedd61a8c9db00b97f6a2d67e07d87795994f440b18bc5f1aa3828560405191825260208201526040908101905180910390a2600154600160a060020a031683156108fc0284604051600060405180830381858888f1935050505015156105e257600080fd5b600082111561061c57600160a060020a03331682156108fc0283604051600060405180830381858888f19350505050151561061c57600080fd5b505050565b60005433600160a060020a0390811691161461063c57600080fd5b60005460a060020a900460ff161561065357600080fd5b61065c81610eaf565b50565b60045481565b60065481565b6000805433600160a060020a0390811691161461068757600080fd5b60005460a060020a900460ff161561069e57600080fd5b6007546106b1908363ffffffff610e2316565b600160a060020a0384166000908152600a6020526040902054909150819010156106da57600080fd5b600160a060020a0383166000908152600a6020526040902054610703908263ffffffff610e4e16565b600160a060020a0384166000908152600a602052604090205560055461072f908263ffffffff610e4e16565b600555600160a060020a0383167f2da8b2becb27b189a54d21689aa110c877379a94c6f59f115cedc91d66239b33828460405191825260208201526040908101905180910390a2505050565b60075481565b6000805433600160a060020a0390811691161461079d57600080fd5b5063ffffffff166000908152600c6020526040902054600160a060020a031690565b6000805433600160a060020a039081169116146107db57600080fd5b60005460a060020a900460ff1615156107f357600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b600e602052600090815260409020805460019091015482565b60005460a060020a900460ff161561087357600080fd5b61087c33610eaf565b565b60005460a060020a900460ff1681565b60005433600160a060020a039081169116146108a957600080fd5b600081116108b657600080fd5b600755565b600254600160a060020a031681565b60095460ff1681565b6000805433600160a060020a039081169116146108ef57600080fd5b60005460a060020a900460ff161561090657600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b600054600160a060020a031681565b600f5481565b6000805433600160a060020a0390811691161461098d57600080fd5b50600d5463ffffffff1690565b60008054819033600160a060020a039081169116146109b857600080fd5b60005460a060020a900460ff16156109cf57600080fd5b600091505b600d5463ffffffff9081169083161015610a55575063ffffffff81166000908152600c6020908152604080832054600160a060020a0316808452600b9092529091205460ff168015610a3c5750600160a060020a0381166000908152600a6020526040812054115b15610a4a57610a4a81610eaf565b6001909101906109d4565b5050565b60105481565b60005433600160a060020a03908116911614610a7a57600080fd5b600454600554101580610a8e575060085442115b1515610a9957600080fd5b60095460ff1615610aa957600080fd5b6009805460ff19166001179055600354600254600160a060020a039182169163a9059cbb9116826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610b1d57600080fd5b6102c65a03f11515610b2e57600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b8457600080fd5b6102c65a03f11515610b9557600080fd5b50505060405180515050565b6000805433600160a060020a03908116911614610bbd57600080fd5b60005460a060020a900460ff1615610bd457600080fd5b600754610be7908363ffffffff610e2316565b600554909150610bfd908263ffffffff610e7716565b600555610c0a8382610e86565b82600160a060020a03167ff10143e1b37ebaf3698e98976d8bddabcea045adc939c03b245da18e81ea9651828460405191825260208201526040908101905180910390a2505050565b600b6020526000908152604090205460ff1681565b60005433600160a060020a03908116911614610c8357600080fd5b60005460a060020a900460ff1615610c9a57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600a6020526000908152604090205481565b60055481565b60115481565b60005433600160a060020a03908116911614610cf757600080fd5b600160a060020a0381161561065c5760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b6000805433600160a060020a03908116911614610d4f57600080fd5b60095460ff1615610d5f57600080fd5b60045460055410610d6f57600080fd5b600854421115610d7e57600080fd5b60005460a060020a900460ff1615610d9557600080fd5b600754610da8908363ffffffff610e2316565b600554909150610dbe908263ffffffff610e7716565b600555610dcb8382610e86565b82600160a060020a03167fa818a22273fc309f0a3682b642c74c5b5c25c0615ff378d07767cd231e19fffc828460405191825260208201526040908101905180910390a2505050565b600354600160a060020a031681565b6000828202831580610e3f5750828482811515610e3c57fe5b04145b1515610e4757fe5b9392505050565b600082821115610e5a57fe5b50900390565b6000808284811515610e6e57fe5b04949350505050565b600082820183811015610e4757fe5b60005460a060020a900460ff1615610e9d57600080fd5b610ea78282610ffd565b610a556110ee565b6000805460a060020a900460ff1615610ec757600080fd5b600160a060020a0382166000908152600b602052604090205460ff161515610eee57600080fd5b600160a060020a0382166000908152600a602052604081205411610f1157600080fd5b50600160a060020a038082166000908152600a60205260408082208054908390556003546002549194908116936323b872dd93929091169186918691516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610fa157600080fd5b6102c65a03f11515610fb257600080fd5b50505060405180515050600160a060020a0382167fd4ff88d569a7ad2bfd6b17da9dbe82e2ccc016fd0051e08ff1ad1e6fe8fc9b558260405190815260200160405180910390a25050565b60005460a060020a900460ff161561101457600080fd5b600160a060020a0382166000908152600a602052604090205415156110a557600d805463ffffffff9081166000908152600c60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038916908117909155855463ffffffff19811690861660010190951694909417909455918152600b90915220805460ff191690555b600160a060020a0382166000908152600a60205260409020546110ce908263ffffffff610e7716565b600160a060020a039092166000908152600a602052604090209190915550565b6011546005541061087c57600f80546001019081905560105490106111185760045460115561087c565b600f546000908152600e602052604090208054601155600101546007555600a165627a7a723058205dcd51c36e6f1408ac87e0e8d000b315fa16ccd0bbf97ffbb808e16ac1dc65b40029

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

0000000000000000000000001b957dc4aefeed3b4a2351a6a6d5cbfbba0cecfa00000000000000000000000029f5ffb0e38e72ea60226f24b0e241bcc12868b80000000000000000000000008c097a9c954894c8779edef955398d6b8ea7226a0000000000000000000000000000000000000000000000000000000000001770000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000071f78cd494d9de56a00000000000000000000000000000000000000000000000000000000000005a949f7f

-----Decoded View---------------
Arg [0] : _tokenAddress (address): 0x1B957Dc4aEfeed3b4A2351a6A6d5cbfbbA0CeCFa
Arg [1] : _bankAddress (address): 0x29f5FFB0E38E72eA60226f24b0E241bCC12868b8
Arg [2] : _beneficiaryAddress (address): 0x8c097a9C954894C8779EdEF955398D6b8Ea7226a
Arg [3] : _tokenRate (uint256): 6000
Arg [4] : _minBuyableAmount (uint256): 10000000000000000
Arg [5] : _maxTokensAmount (uint256): 137777640000000000000000000
Arg [6] : _endDate (uint256): 1519689599

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000001b957dc4aefeed3b4a2351a6a6d5cbfbba0cecfa
Arg [1] : 00000000000000000000000029f5ffb0e38e72ea60226f24b0e241bcc12868b8
Arg [2] : 0000000000000000000000008c097a9c954894c8779edef955398d6b8ea7226a
Arg [3] : 0000000000000000000000000000000000000000000000000000000000001770
Arg [4] : 000000000000000000000000000000000000000000000000002386f26fc10000
Arg [5] : 00000000000000000000000000000000000000000071f78cd494d9de56a00000
Arg [6] : 000000000000000000000000000000000000000000000000000000005a949f7f


Swarm Source

bzzr://5dcd51c36e6f1408ac87e0e8d000b315fa16ccd0bbf97ffbb808e16ac1dc65b4
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.