ETH Price: $1,979.56 (-5.01%)
Gas: 0.03 Gwei

Token

HashToken (HTK)
 

Overview

Max Total Supply

0 HTK

Holders

64

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 16 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:
HashToken

Compiler Version
v0.3.5-2016-06-14-371690f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2016-06-17
*/

// Most of the code taken from
// https://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts/StandardToken.sol

contract TokenInterface {

    /// @return total amount of tokens
    function totalSupply() constant returns (uint256 supply) {}

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) constant returns (uint256 balance) {}

    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint256 _value) returns (bool success) {}

    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {}

    /// @notice `msg.sender` approves `_addr` to spend `_value` tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of wei to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address _spender, uint256 _value) returns (bool success) {}

    /// @param _owner The address of the account owning tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {}

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

contract HashToken is TokenInterface {

    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;
    uint256 public totalSupply;

    bytes32 public prev_hash;
    uint public max_value;

    // Meta info
    string public name;
    uint8 public decimals;
    string public symbol;
    
    function HashToken() {
        prev_hash = sha3(block.blockhash(block.number));
        max_value = 2 ** 255;
        // Meta info
        name = 'HashToken';
        decimals = 16;
        symbol = 'HTK';
    }

    function transfer(address _to, uint256 _value) returns (bool success) {
        if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
            balances[msg.sender] -= _value;
            balances[_to] += _value;
            Transfer(msg.sender, _to, _value);
            return true;
        } else { return false; }
    }

    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
        if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
            balances[_to] += _value;
            balances[_from] -= _value;
            allowed[_from][msg.sender] -= _value;
            Transfer(_from, _to, _value);
            return true;
        } else { return false; }
    }

    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
      return allowed[_owner][_spender];
    }

    event Mint(address indexed minter);

    function mint(bytes32 value) {
        if (uint(sha3(value, prev_hash)) > max_value) {
            throw;
        }
        balances[msg.sender] += 10 ** 16;
        prev_hash = sha3(block.blockhash(block.number), prev_hash);
        // increase the difficulty
        max_value -=  max_value / 100;
        Mint(msg.sender);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"type":"function"},{"constant":true,"inputs":[],"name":"max_value","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"value","type":"bytes32"}],"name":"mint","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"prev_hash","outputs":[{"name":"","type":"bytes32"}],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"type":"function"},{"inputs":[],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"minter","type":"address"}],"name":"Mint","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"}]

4340606090815260208082206003557f800000000000000000000000000000000000000000000000000000000000000060045560a060405260099091527f48617368546f6b656e00000000000000000000000000000000000000000000006080526005805460008290527f48617368546f6b656e0000000000000000000000000000000000000000000012825590916100e691601f6002610100600184161502600019019092169190910401047f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0908101905b8082111561018b57600081556001016100d2565b50506006805460ff19908116601017825560408051808201909152600381527f48544b0000000000000000000000000000000000000000000000000000000000602091820190815260078054600082905291519093169093178255909161018f9160026001831615610100026000190190921691909104601f01047fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688908101906100d2565b5090565b50506105908061019f6000396000f3606060405236156100985760e060020a600035046306fdde03811461009a578063095ea7b3146100f857806318160ddd1461016d57806323b872dd14610176578063313ce5671461027a57806370a082311461028657806395d89b41146102b45780639859762914610312578063a9059cbb1461031b578063adf2cead146103d1578063c69b5df214610401578063dd62ed3e1461040a575b005b6040805160058054602060026001831615610100026000190190921691909104601f810182900482028401820190945283835261043e93908301828280156105015780601f106104d657610100808354040283529160200191610501565b6104ac60043560243533600160a060020a03908116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b6102a260025481565b6104ac600435602435604435600160a060020a0383166000908152602081905260408120548290108015906101c9575060016020908152604080832033600160a060020a03168452909152812054829010155b80156101ee5750600160a060020a038316600090815260208190526040902054808301115b1561050957600160a060020a0383811660008181526020818152604080832080548801905588851680845281842080548990039055600183528184203390961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600161050d565b6104c060065460ff1681565b600160a060020a03600435166000908152602081905260409020545b60408051918252519081900360200190f35b61043e6007805460408051602060026101006001861615026000190190941693909304601f810184900484028201840190925281815292918301828280156105015780601f106104d657610100808354040283529160200191610501565b6102a260045481565b6104ac60043560243533600160a060020a031660009081526020819052604081205482901080159061035e5750600160a060020a03831681526040812054828101115b156105145733600160a060020a0390811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610167565b61009860043560035460045460408051848152602081019390935280519283900301909120111561051c57610002565b6102a260035481565b6102a2600435602435600160a060020a03828116600090815260016020908152604080832093851683529290522054610167565b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f16801561049e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b604080519115158252519081900360200190f35b6040805160ff9092168252519081900360200190f35b820191906000526020600020905b8154815290600101906020018083116104e457829003601f168201915b505050505081565b5060005b9392505050565b506000610167565b33600160a060020a03166000818152602081815260408083208054662386f26fc100000190556003805482514340815293840152815192839003909101822090556004805460648104900390557f3c3284d117c92d0b1699230960384e794dcba184cc48ff114fe4fed20c9b05659190a25056

Deployed Bytecode

0x606060405236156100985760e060020a600035046306fdde03811461009a578063095ea7b3146100f857806318160ddd1461016d57806323b872dd14610176578063313ce5671461027a57806370a082311461028657806395d89b41146102b45780639859762914610312578063a9059cbb1461031b578063adf2cead146103d1578063c69b5df214610401578063dd62ed3e1461040a575b005b6040805160058054602060026001831615610100026000190190921691909104601f810182900482028401820190945283835261043e93908301828280156105015780601f106104d657610100808354040283529160200191610501565b6104ac60043560243533600160a060020a03908116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b6102a260025481565b6104ac600435602435604435600160a060020a0383166000908152602081905260408120548290108015906101c9575060016020908152604080832033600160a060020a03168452909152812054829010155b80156101ee5750600160a060020a038316600090815260208190526040902054808301115b1561050957600160a060020a0383811660008181526020818152604080832080548801905588851680845281842080548990039055600183528184203390961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600161050d565b6104c060065460ff1681565b600160a060020a03600435166000908152602081905260409020545b60408051918252519081900360200190f35b61043e6007805460408051602060026101006001861615026000190190941693909304601f810184900484028201840190925281815292918301828280156105015780601f106104d657610100808354040283529160200191610501565b6102a260045481565b6104ac60043560243533600160a060020a031660009081526020819052604081205482901080159061035e5750600160a060020a03831681526040812054828101115b156105145733600160a060020a0390811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610167565b61009860043560035460045460408051848152602081019390935280519283900301909120111561051c57610002565b6102a260035481565b6102a2600435602435600160a060020a03828116600090815260016020908152604080832093851683529290522054610167565b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f16801561049e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b604080519115158252519081900360200190f35b6040805160ff9092168252519081900360200190f35b820191906000526020600020905b8154815290600101906020018083116104e457829003601f168201915b505050505081565b5060005b9392505050565b506000610167565b33600160a060020a03166000818152602081815260408083208054662386f26fc100000190556003805482514340815293840152815192839003909101822090556004805460648104900390557f3c3284d117c92d0b1699230960384e794dcba184cc48ff114fe4fed20c9b05659190a25056

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.