Feature Tip: Add private address tag to any address under My Name Tag !
Overview
Max Total Supply
4,997,891,952 UTNP
Holders
12,240 (0.00%)
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
UTNP
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 2018-01-13
*/
pragma solidity ^0.4.13;
/**
* @title UTN-P ERC20 token by Universa Blockchain.
*
* @dev Based on OpenZeppelin framework.
*
* Features:
*
* * ERC20 compatibility, with token details as properties.
* * total supply: 4997891952 (initially given to the contract author).
* * decimals: 18
* * BurnableToken: some addresses are allowed to burn tokens.
* * “third-party smart contract trading protection”: transferFrom/approve/allowance methods are present but do nothing.
* * TimeLock: implemented externally (in TokenTimelock contract), some tokens are time-locked for 3 months.
* * Bulk send: implemented externally (in BulkSender contract), some tokens are time-locked for 3 months.
*/
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
assert(c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure 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 pure returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
function Ownable() public {
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) public onlyOwner {
require(newOwner != address(0));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
contract ERC20Basic {
uint256 public totalSupply;
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
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) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
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) public view returns (uint256 balance) {
return balances[_owner];
}
}
contract BurnableToken is BasicToken {
event Burn(address indexed burner, uint256 value);
/**
* @dev Burns a specific amount of tokens.
* @param _value The amount of token to be burned.
*/
function burn(uint256 _value) public {
require(_value <= balances[msg.sender]);
// no need to require value <= totalSupply, since that would imply the
// sender's balance is greater than the totalSupply, which *should* be an assertion failure
address burner = msg.sender;
balances[burner] = balances[burner].sub(_value);
totalSupply = totalSupply.sub(_value);
Burn(burner, _value);
}
}
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) public view returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract UTNP is BasicToken, BurnableToken, ERC20, Ownable {
string public constant name = "UTN-P: Universa Token";
string public constant symbol = "UTNP";
uint8 public constant decimals = 18;
string public constant version = "1.0";
uint256 constant INITIAL_SUPPLY_UTN = 4997891952;
/// @dev whether an address is permitted to perform burn operations.
mapping(address => bool) public isBurner;
/**
* @dev Constructor that:
* * gives all of existing tokens to the message sender;
* * initializes the burners (also adding the message sender);
*/
function UTNP() public {
totalSupply = INITIAL_SUPPLY_UTN * (10 ** uint256(decimals));
balances[msg.sender] = totalSupply;
isBurner[msg.sender] = true;
}
/**
* @dev Standard method to comply with ERC20 interface;
* prevents some Ethereum-contract-initiated operations.
*/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
return false;
}
/**
* @dev Standard method to comply with ERC20 interface;
* prevents some Ethereum-contract-initiated operations.
*/
function approve(address _spender, uint256 _value) public returns (bool) {
return false;
}
/**
* @dev Standard method to comply with ERC20 interface;
* prevents some Ethereum-contract-initiated operations.
*/
function allowance(address _owner, address _spender) public view returns (uint256) {
return 0;
}
/**
* @dev Grant or remove burn permissions. Only owner can do that!
*/
function grantBurner(address _burner, bool _value) public onlyOwner {
isBurner[_burner] = _value;
}
/**
* @dev Throws if called by any account other than the burner.
*/
modifier onlyBurner() {
require(isBurner[msg.sender]);
_;
}
/**
* @dev Burns a specific amount of tokens.
* Only an address listed in `isBurner` can do this.
* @param _value The amount of token to be burned.
*/
function burn(uint256 _value) public onlyBurner {
super.burn(_value);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isBurner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_burner","type":"address"},{"name":"_value","type":"bool"}],"name":"grantBurner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","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"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","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"}]Contract Creation Code
6060604052341561000f57600080fd5b60028054600160a060020a033316600160a060020a031990911681179091556b102628c99c3d562bf7c00000600081815591825260016020818152604080852093909355600390529120805460ff19169091179055610768806100736000396000f3006060604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df578063095ea7b31461016957806318160ddd1461019f57806323b872dd146101c4578063313ce567146101ec57806342966c68146102155780634334614a1461022d57806354fd4d501461024c578063567a03a71461025f57806370a08231146102835780638da5cb5b146102a257806395d89b41146102d1578063a9059cbb146102e4578063dd62ed3e14610306578063f2fde38b1461032b575b600080fd5b34156100ea57600080fd5b6100f261034a565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561012e578082015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017457600080fd5b61018b600160a060020a0360043516602435610381565b604051901515815260200160405180910390f35b34156101aa57600080fd5b6101b2610389565b60405190815260200160405180910390f35b34156101cf57600080fd5b61018b600160a060020a036004358116906024351660443561038f565b34156101f757600080fd5b6101ff610398565b60405160ff909116815260200160405180910390f35b341561022057600080fd5b61022b60043561039d565b005b341561023857600080fd5b61018b600160a060020a03600435166103d0565b341561025757600080fd5b6100f26103e5565b341561026a57600080fd5b61022b600160a060020a0360043516602435151561041c565b341561028e57600080fd5b6101b2600160a060020a0360043516610462565b34156102ad57600080fd5b6102b561047d565b604051600160a060020a03909116815260200160405180910390f35b34156102dc57600080fd5b6100f261048c565b34156102ef57600080fd5b61018b600160a060020a03600435166024356104c3565b341561031157600080fd5b6101b2600160a060020a0360043581169060243516610381565b341561033657600080fd5b61022b600160a060020a03600435166105be565b60408051908101604052601581527f55544e2d503a20556e69766572736120546f6b656e0000000000000000000000602082015281565b600092915050565b60005481565b60009392505050565b601281565b600160a060020a03331660009081526003602052604090205460ff1615156103c457600080fd5b6103cd81610659565b50565b60036020526000908152604090205460ff1681565b60408051908101604052600381527f312e300000000000000000000000000000000000000000000000000000000000602082015281565b60025433600160a060020a0390811691161461043757600080fd5b600160a060020a03919091166000908152600360205260409020805460ff1916911515919091179055565b600160a060020a031660009081526001602052604090205490565b600254600160a060020a031681565b60408051908101604052600481527f55544e5000000000000000000000000000000000000000000000000000000000602082015281565b6000600160a060020a03831615156104da57600080fd5b600160a060020a0333166000908152600160205260409020548211156104ff57600080fd5b600160a060020a033316600090815260016020526040902054610528908363ffffffff61071416565b600160a060020a03338116600090815260016020526040808220939093559085168152205461055d908363ffffffff61072616565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b60025433600160a060020a039081169116146105d957600080fd5b600160a060020a03811615156105ee57600080fd5b600254600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03331660009081526001602052604081205482111561067e57600080fd5b5033600160a060020a0381166000908152600160205260409020546106a39083610714565b600160a060020a038216600090815260016020526040812091909155546106d0908363ffffffff61071416565b600055600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b60008282111561072057fe5b50900390565b60008282018381101561073557fe5b93925050505600a165627a7a72305820664588c96d34e5a74eaad24b1388f142ca884acdcabe989c3f0cfe99ef7889000029
Deployed Bytecode
0x6060604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df578063095ea7b31461016957806318160ddd1461019f57806323b872dd146101c4578063313ce567146101ec57806342966c68146102155780634334614a1461022d57806354fd4d501461024c578063567a03a71461025f57806370a08231146102835780638da5cb5b146102a257806395d89b41146102d1578063a9059cbb146102e4578063dd62ed3e14610306578063f2fde38b1461032b575b600080fd5b34156100ea57600080fd5b6100f261034a565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561012e578082015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017457600080fd5b61018b600160a060020a0360043516602435610381565b604051901515815260200160405180910390f35b34156101aa57600080fd5b6101b2610389565b60405190815260200160405180910390f35b34156101cf57600080fd5b61018b600160a060020a036004358116906024351660443561038f565b34156101f757600080fd5b6101ff610398565b60405160ff909116815260200160405180910390f35b341561022057600080fd5b61022b60043561039d565b005b341561023857600080fd5b61018b600160a060020a03600435166103d0565b341561025757600080fd5b6100f26103e5565b341561026a57600080fd5b61022b600160a060020a0360043516602435151561041c565b341561028e57600080fd5b6101b2600160a060020a0360043516610462565b34156102ad57600080fd5b6102b561047d565b604051600160a060020a03909116815260200160405180910390f35b34156102dc57600080fd5b6100f261048c565b34156102ef57600080fd5b61018b600160a060020a03600435166024356104c3565b341561031157600080fd5b6101b2600160a060020a0360043581169060243516610381565b341561033657600080fd5b61022b600160a060020a03600435166105be565b60408051908101604052601581527f55544e2d503a20556e69766572736120546f6b656e0000000000000000000000602082015281565b600092915050565b60005481565b60009392505050565b601281565b600160a060020a03331660009081526003602052604090205460ff1615156103c457600080fd5b6103cd81610659565b50565b60036020526000908152604090205460ff1681565b60408051908101604052600381527f312e300000000000000000000000000000000000000000000000000000000000602082015281565b60025433600160a060020a0390811691161461043757600080fd5b600160a060020a03919091166000908152600360205260409020805460ff1916911515919091179055565b600160a060020a031660009081526001602052604090205490565b600254600160a060020a031681565b60408051908101604052600481527f55544e5000000000000000000000000000000000000000000000000000000000602082015281565b6000600160a060020a03831615156104da57600080fd5b600160a060020a0333166000908152600160205260409020548211156104ff57600080fd5b600160a060020a033316600090815260016020526040902054610528908363ffffffff61071416565b600160a060020a03338116600090815260016020526040808220939093559085168152205461055d908363ffffffff61072616565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b60025433600160a060020a039081169116146105d957600080fd5b600160a060020a03811615156105ee57600080fd5b600254600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03331660009081526001602052604081205482111561067e57600080fd5b5033600160a060020a0381166000908152600160205260409020546106a39083610714565b600160a060020a038216600090815260016020526040812091909155546106d0908363ffffffff61071416565b600055600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b60008282111561072057fe5b50900390565b60008282018381101561073557fe5b93925050505600a165627a7a72305820664588c96d34e5a74eaad24b1388f142ca884acdcabe989c3f0cfe99ef7889000029
Swarm Source
bzzr://664588c96d34e5a74eaad24b1388f142ca884acdcabe989c3f0cfe99ef788900
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.
Add Token to MetaMask (Web3)