ETH Price: $2,731.29 (+3.97%)

Contract

0xdd974D5C2e2928deA5F71b9825b8b646686BD200
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

KyberNetwork (KNC) (@$0.4349)

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
0xd7d320c034378c93fdfa5ca073249a4fc5f9b0d98cb99f964fc4cc0fe965397a Approve(pending)2025-02-14 1:09:2914 hrs ago1739495369IN
Kyber: Old KNC Token
0 ETH(Pending)(Pending)
0x2089886a86d1688d426ac928b8d455137f773d8afe19539908ce69efd698622d Transfer(pending)2025-02-11 23:12:312 days ago1739315551IN
Kyber: Old KNC Token
0 ETH(Pending)(Pending)
0xb95994181a70568c5e0bf221867e8db2cb8b0626a87a9ce295a44342b3a8fa42 Approve(pending)2025-02-11 4:50:053 days ago1739249405IN
Kyber: Old KNC Token
0 ETH(Pending)(Pending)
0xb1411db256da7baf0142a50766b682fa759fc483f4e9ddac1112c79f8cc0d2cd Transfer(pending)2025-02-10 13:03:304 days ago1739192610IN
Kyber: Old KNC Token
0 ETH(Pending)(Pending)
0xa5354b3d7b160b6a438d4e52a235901a367532188101ce237cf7c34623ccabb5 Transfer(pending)2025-02-10 9:48:404 days ago1739180920IN
Kyber: Old KNC Token
0 ETH(Pending)(Pending)
0x999e626600aa3e22bb9112cd5a102bafc44efbf6c3241fca541296d23e301296 Transfer(pending)2025-02-09 17:58:154 days ago1739123895IN
Kyber: Old KNC Token
0 ETH(Pending)(Pending)
0x4cb84e288874155ac030738634973ec3bbe48c3473af2bdef62e8ca4717fbf69 Transfer(pending)2025-02-09 6:14:555 days ago1739081695IN
Kyber: Old KNC Token
0 ETH(Pending)(Pending)
Transfer218447972025-02-14 12:47:473 hrs ago1739537267IN
Kyber: Old KNC Token
0 ETH0.000088691.79191628
Approve218447752025-02-14 12:43:233 hrs ago1739537003IN
Kyber: Old KNC Token
0 ETH0.000100832.17482375
Transfer218443112025-02-14 11:09:234 hrs ago1739531363IN
Kyber: Old KNC Token
0 ETH0.000140382.83476367
Transfer218433282025-02-14 7:51:358 hrs ago1739519495IN
Kyber: Old KNC Token
0 ETH0.000167283.08031215
Approve218431202025-02-14 7:09:598 hrs ago1739516999IN
Kyber: Old KNC Token
0 ETH0.000142563.0551845
Transfer218418912025-02-14 3:01:5913 hrs ago1739502119IN
Kyber: Old KNC Token
0 ETH0.000162312.98998129
Approve218404622025-02-13 22:12:5917 hrs ago1739484779IN
Kyber: Old KNC Token
0 ETH0.00013942.99130909
Approve218398992025-02-13 20:19:2319 hrs ago1739477963IN
Kyber: Old KNC Token
0 ETH0.000042650.91981198
Increase Allowan...218398912025-02-13 20:17:4719 hrs ago1739477867IN
Kyber: Old KNC Token
0 ETH0.000020320.91981198
Increase Allowan...218398462025-02-13 20:08:4719 hrs ago1739477327IN
Kyber: Old KNC Token
0 ETH0.00001910.86470865
Approve218349132025-02-13 3:34:5936 hrs ago1739417699IN
Kyber: Old KNC Token
0 ETH0.000054011.15763869
Approve218348102025-02-13 3:14:2336 hrs ago1739416463IN
Kyber: Old KNC Token
0 ETH0.000032971.36562015
Approve218341582025-02-13 1:02:4738 hrs ago1739408567IN
Kyber: Old KNC Token
0 ETH0.000036361.50562353
Transfer218308522025-02-12 13:58:352 days ago1739368715IN
Kyber: Old KNC Token
0 ETH0.000211124.26541606
Transfer218295062025-02-12 9:25:472 days ago1739352347IN
Kyber: Old KNC Token
0 ETH0.000148192.99181374
Approve218294482025-02-12 9:13:472 days ago1739351627IN
Kyber: Old KNC Token
0 ETH0.000051871.11162285
Transfer218292792025-02-12 8:39:592 days ago1739349599IN
Kyber: Old KNC Token
0 ETH0.00011512.12043344
Transfer218271272025-02-12 1:21:472 days ago1739323307IN
Kyber: Old KNC Token
0 ETH0.000040051.07692937
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
103173862020-06-22 19:12:371697 days ago1592853157
Kyber: Old KNC Token
1 ETH
42648982017-09-12 5:33:192712 days ago1505194399  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x3BE856c9...1a62ce385
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
KyberNetworkCrystal

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-09-12
*/

pragma solidity ^0.4.13;

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;
  }
}

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;
    }
  }

}



contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) constant returns (uint256);
  function transfer(address to, uint256 value) returns (bool);
  
  // KYBER-NOTE! code changed to comply with ERC20 standard
  event Transfer(address indexed _from, address indexed _to, uint _value);
  //event Transfer(address indexed from, address indexed to, uint256 value);
}

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];
  }

}

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);
  
  // KYBER-NOTE! code changed to comply with ERC20 standard
  event Approval(address indexed _owner, address indexed _spender, uint _value);
  //event Approval(address indexed owner, address indexed spender, uint256 value);
}

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);

    // KYBER-NOTE! code changed to comply with ERC20 standard
    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    //balances[_from] = balances[_from].sub(_value); // this was removed
    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];
  }

}

contract KyberNetworkCrystal is StandardToken, Ownable {
    string  public  constant name = "Kyber Network Crystal";
    string  public  constant symbol = "KNC";
    uint    public  constant decimals = 18;

    uint    public  saleStartTime;
    uint    public  saleEndTime;

    address public  tokenSaleContract;

    modifier onlyWhenTransferEnabled() {
        if( now <= saleEndTime && now >= saleStartTime ) {
            require( msg.sender == tokenSaleContract );
        }
        _;
    }

    modifier validDestination( address to ) {
        require(to != address(0x0));
        require(to != address(this) );
        _;
    }

    function KyberNetworkCrystal( uint tokenTotalAmount, uint startTime, uint endTime, address admin ) {
        // Mint all tokens. Then disable minting forever.
        balances[msg.sender] = tokenTotalAmount;
        totalSupply = tokenTotalAmount;
        Transfer(address(0x0), msg.sender, tokenTotalAmount);

        saleStartTime = startTime;
        saleEndTime = endTime;

        tokenSaleContract = msg.sender;
        transferOwnership(admin); // admin could drain tokens that were sent here by mistake
    }

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

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

    event Burn(address indexed _burner, uint _value);

    function burn(uint _value) onlyWhenTransferEnabled
        returns (bool){
        balances[msg.sender] = balances[msg.sender].sub(_value);
        totalSupply = totalSupply.sub(_value);
        Burn(msg.sender, _value);
        Transfer(msg.sender, address(0x0), _value);
        return true;
    }

    // save some gas by making only one contract call
    function burnFrom(address _from, uint256 _value) onlyWhenTransferEnabled
        returns (bool) {
        assert( transferFrom( _from, msg.sender, _value ) );
        return burn(_value);
    }

    function emergencyERC20Drain( ERC20 token, uint amount ) onlyOwner {
        token.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":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"saleStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleContract","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"emergencyERC20Drain","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"saleEndTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"tokenTotalAmount","type":"uint256"},{"name":"startTime","type":"uint256"},{"name":"endTime","type":"uint256"},{"name":"admin","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_burner","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Burn","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"},{"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"}]

Deployed Bytecode

0x606060405236156100ee5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100f3578063095ea7b31461017e57806318160ddd146101b45780631cbaee2d146101d957806323b872dd146101fe578063313ce5671461023a57806342966c681461025f5780635d5aa2771461028957806370a08231146102b857806379cc6790146102e95780638da5cb5b1461031f57806395d89b411461034e578063a9059cbb146103d9578063db0e16f11461040f578063dd62ed3e14610433578063ed338ff11461046a578063f2fde38b1461048f575b600080fd5b34156100fe57600080fd5b6101066104b0565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101435780820151818401525b60200161012a565b50505050905090810190601f1680156101705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018957600080fd5b6101a0600160a060020a03600435166024356104e7565b604051901515815260200160405180910390f35b34156101bf57600080fd5b6101c761058e565b60405190815260200160405180910390f35b34156101e457600080fd5b6101c7610594565b60405190815260200160405180910390f35b341561020957600080fd5b6101a0600160a060020a036004358116906024351660443561059a565b604051901515815260200160405180910390f35b341561024557600080fd5b6101c7610620565b60405190815260200160405180910390f35b341561026a57600080fd5b6101a0600435610625565b604051901515815260200160405180910390f35b341561029457600080fd5b61029c61073b565b604051600160a060020a03909116815260200160405180910390f35b34156102c357600080fd5b6101c7600160a060020a036004351661074a565b60405190815260200160405180910390f35b34156102f457600080fd5b6101a0600160a060020a0360043516602435610769565b604051901515815260200160405180910390f35b341561032a57600080fd5b61029c6107c6565b604051600160a060020a03909116815260200160405180910390f35b341561035957600080fd5b6101066107d5565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101435780820151818401525b60200161012a565b50505050905090810190601f1680156101705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103e457600080fd5b6101a0600160a060020a036004351660243561080c565b604051901515815260200160405180910390f35b341561041a57600080fd5b610431600160a060020a0360043516602435610890565b005b341561043e57600080fd5b6101c7600160a060020a0360043581169060243516610948565b60405190815260200160405180910390f35b341561047557600080fd5b6101c7610975565b60405190815260200160405180910390f35b341561049a57600080fd5b610431600160a060020a036004351661097b565b005b60408051908101604052601581527f4b79626572204e6574776f726b204372797374616c0000000000000000000000602082015281565b60008115806105195750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b151561052457600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60005481565b60045481565b600060055442111580156105b057506004544210155b156105d05760065433600160a060020a039081169116146105d057600080fd5b5b82600160a060020a03811615156105e757600080fd5b30600160a060020a031681600160a060020a03161415151561060857600080fd5b6106138585856109d3565b91505b5b505b9392505050565b601281565b6000600554421115801561063b57506004544210155b1561065b5760065433600160a060020a0390811691161461065b57600080fd5b5b600160a060020a033316600090815260016020526040902054610685908363ffffffff610ae516565b600160a060020a033316600090815260016020526040812091909155546106b2908363ffffffff610ae516565b600055600160a060020a0333167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a2600033600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b5b919050565b600654600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b6000600554421115801561077f57506004544210155b1561079f5760065433600160a060020a0390811691161461079f57600080fd5b5b6107ab83338461059a565b15156107b357fe5b6107bc82610625565b90505b5b92915050565b600354600160a060020a031681565b60408051908101604052600381527f4b4e430000000000000000000000000000000000000000000000000000000000602082015281565b6000600554421115801561082257506004544210155b156108425760065433600160a060020a0390811691161461084257600080fd5b5b82600160a060020a038116151561085957600080fd5b30600160a060020a031681600160a060020a03161415151561087a57600080fd5b6108848484610afc565b91505b5b505b92915050565b60035433600160a060020a039081169116146108ab57600080fd5b600354600160a060020a038084169163a9059cbb9116836000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561092757600080fd5b6102c65a03f1151561093857600080fd5b505050604051805150505b5b5050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60055481565b60035433600160a060020a0390811691161461099657600080fd5b600160a060020a038116156109ce576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600160a060020a038084166000818152600260209081526040808320339095168352938152838220549282526001905291822054610a17908463ffffffff610ae516565b600160a060020a038087166000908152600160205260408082209390935590861681522054610a4c908463ffffffff610bbc16565b600160a060020a038516600090815260016020526040902055610a75818463ffffffff610ae516565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600191505b509392505050565b600082821115610af157fe5b508082035b92915050565b600160a060020a033316600090815260016020526040812054610b25908363ffffffff610ae516565b600160a060020a033381166000908152600160205260408082209390935590851681522054610b5a908363ffffffff610bbc16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600082820183811015610bcb57fe5b8091505b50929150505600a165627a7a723058207caf63297f1744c81dc22b3fcc78ec19977d0bb4d5160ae1fd8cb6aca1957bcc0029

Swarm Source

bzzr://7caf63297f1744c81dc22b3fcc78ec19977d0bb4d5160ae1fd8cb6aca1957bcc

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

KNC token is migrating to new token contract 0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202.

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.