Token bZx Protocol Token

 

Overview [ERC-20]

Price
$0.06 @ 0.000042 Eth (-6.79%)
Fully Diluted Market Cap
Max Total Supply:
1,030,000,000 BZRX

Holders:
5,283 (0.00%)

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

BZRX token.

Market

Volume (24H):$4,286.61
Market Capitalization:$29,109,966.17
Circulating Supply:520,082,902.00 BZRX
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BZRXToken

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license
/**
 *Submitted for verification at Etherscan.io on 2020-07-11
*/

/**
 * Copyright 2017-2020, bZeroX, LLC <https://bzx.network/>. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0.
 */

pragma solidity 0.5.17;


contract IERC20 {
    string public name;
    uint8 public decimals;
    string public symbol;
    function totalSupply() public view returns (uint256);
    function balanceOf(address _who) public view returns (uint256);
    function allowance(address _owner, address _spender) public view returns (uint256);
    function approve(address _spender, uint256 _value) public returns (bool);
    function transfer(address _to, uint256 _value) public returns (bool);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * Copyright (C) 2019 Aragon One <https://aragon.one/>
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
/**
 * @title Checkpointing
 * @notice Checkpointing library for keeping track of historical values based on an arbitrary time
 *         unit (e.g. seconds or block numbers).
 * @dev Adapted from:
 *   - Checkpointing  (https://github.com/aragonone/voting-connectors/blob/master/shared/contract-utils/contracts/Checkpointing.sol)
 */
library Checkpointing {

    struct Checkpoint {
        uint256 time;
        uint256 value;
    }

    struct History {
        Checkpoint[] history;
    }

    function addCheckpoint(
        History storage _self,
        uint256 _time,
        uint256 _value)
        internal
    {
        uint256 length = _self.history.length;
        if (length == 0) {
            _self.history.push(Checkpoint(_time, _value));
        } else {
            Checkpoint storage currentCheckpoint = _self.history[length - 1];
            uint256 currentCheckpointTime = currentCheckpoint.time;

            if (_time > currentCheckpointTime) {
                _self.history.push(Checkpoint(_time, _value));
            } else if (_time == currentCheckpointTime) {
                currentCheckpoint.value = _value;
            } else { // ensure list ordering
                revert("past-checkpoint");
            }
        }
    }

    function getValueAt(
        History storage _self,
        uint256 _time)
        internal
        view
        returns (uint256)
    {
        return _getValueAt(_self, _time);
    }

    function lastUpdated(
        History storage _self)
        internal
        view
        returns (uint256)
    {
        uint256 length = _self.history.length;
        if (length != 0) {
            return _self.history[length - 1].time;
        }
    }

    function latestValue(
        History storage _self)
        internal
        view
        returns (uint256)
    {
        uint256 length = _self.history.length;
        if (length != 0) {
            return _self.history[length - 1].value;
        }
    }

    function _getValueAt(
        History storage _self,
        uint256 _time)
        private
        view
        returns (uint256)
    {
        uint256 length = _self.history.length;

        // Short circuit if there's no checkpoints yet
        // Note that this also lets us avoid using SafeMath later on, as we've established that
        // there must be at least one checkpoint
        if (length == 0) {
            return 0;
        }

        // Check last checkpoint
        uint256 lastIndex = length - 1;
        Checkpoint storage lastCheckpoint = _self.history[lastIndex];
        if (_time >= lastCheckpoint.time) {
            return lastCheckpoint.value;
        }

        // Check first checkpoint (if not already checked with the above check on last)
        if (length == 1 || _time < _self.history[0].time) {
            return 0;
        }

        // Do binary search
        // As we've already checked both ends, we don't need to check the last checkpoint again
        uint256 low = 0;
        uint256 high = lastIndex - 1;

        while (high != low) {
            uint256 mid = (high + low + 1) / 2; // average, ceil round
            Checkpoint storage checkpoint = _self.history[mid];
            uint256 midTime = checkpoint.time;

            if (_time > midTime) {
                low = mid;
            } else if (_time < midTime) {
                // Note that we don't need SafeMath here because mid must always be greater than 0
                // from the while condition
                high = mid - 1;
            } else {
                // _time == midTime
                return checkpoint.value;
            }
        }

        return _self.history[low].value;
    }
}

contract CheckpointingToken is IERC20 {
    using Checkpointing for Checkpointing.History;

    mapping (address => mapping (address => uint256)) internal allowances_;

    mapping (address => Checkpointing.History) internal balancesHistory_;

    struct Checkpoint {
        uint256 time;
        uint256 value;
    }

    struct History {
        Checkpoint[] history;
    }

    // override this function if a totalSupply should be tracked
    function totalSupply()
        public
        view
        returns (uint256)
    {
        return 0;
    }

    function balanceOf(
        address _owner)
        public
        view
        returns (uint256)
    {
        return balanceOfAt(_owner, block.number);
    }

    function balanceOfAt(
        address _owner,
        uint256 _blockNumber)
        public
        view
        returns (uint256)
    {
        return balancesHistory_[_owner].getValueAt(_blockNumber);
    }

    function allowance(
        address _owner,
        address _spender)
        public
        view
        returns (uint256)
    {
        return allowances_[_owner][_spender];
    }

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

    function transfer(
        address _to,
        uint256 _value)
        public
        returns (bool)
    {
        return transferFrom(
            msg.sender,
            _to,
            _value
        );
    }

    function transferFrom(
        address _from,
        address _to,
        uint256 _value)
        public
        returns (bool)
    {
        uint256 previousBalanceFrom = balanceOfAt(_from, block.number);
        require(previousBalanceFrom >= _value, "insufficient-balance");

        if (_from != msg.sender && allowances_[_from][msg.sender] != uint(-1)) {
            require(allowances_[_from][msg.sender] >= _value, "insufficient-allowance");
            allowances_[_from][msg.sender] = allowances_[_from][msg.sender] - _value; // overflow not possible
        }

        balancesHistory_[_from].addCheckpoint(
            block.number,
            previousBalanceFrom - _value // overflow not possible
        );

        balancesHistory_[_to].addCheckpoint(
            block.number,
            add(
                balanceOfAt(_to, block.number),
                _value
            )
        );

        emit Transfer(_from, _to, _value);
        return true;
    }

    function _getBlockNumber()
        internal
        view
        returns (uint256)
    {
        return block.number;
    }

    function _getTimestamp()
        internal
        view
        returns (uint256)
    {
        return block.timestamp;
    }

    function add(
        uint256 x,
        uint256 y)
        internal
        pure
        returns (uint256 c)
    {
        require((c = x + y) >= x, "addition-overflow");
    }

    function sub(
        uint256 x,
        uint256 y)
        internal
        pure
        returns (uint256 c)
    {
        require((c = x - y) <= x, "subtraction-overflow");
    }

    function mul(
        uint256 a,
        uint256 b)
        internal
        pure
        returns (uint256 c)
    {
        if (a == 0) {
            return 0;
        }
        require((c = a * b) / a == b, "multiplication-overflow");
    }

    function div(
        uint256 a,
        uint256 b)
        internal
        pure
        returns (uint256 c)
    {
        require(b != 0, "division by zero");
        c = a / b;
    }
}

contract BZRXToken is CheckpointingToken {

    string public constant name = "bZx Protocol Token";
    string public constant symbol = "BZRX";
    uint8 public constant decimals = 18;

    uint256 internal constant totalSupply_ = 1030000000e18; // 1,030,000,000 BZRX

    constructor(
        address _to)
        public
    {
        balancesHistory_[_to].addCheckpoint(_getBlockNumber(), totalSupply_);
        emit Transfer(address(0), _to, totalSupply_);
    }

    function totalSupply()
        public
        view
        returns (uint256)
    {
        return totalSupply_;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"balanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051610a80380380610a808339818101604052602081101561003357600080fd5b50516100816100496001600160e01b036100d416565b6001600160a01b038316600090815260046020908152604090912091906b0353fefbe20c8415c6000000906105b66100d8821b17901c565b604080516b0353fefbe20c8415c6000000815290516001600160a01b038316916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506101e6565b4390565b82548061011c5760408051808201909152838152602080820184815286546001818101895560008981529390932093516002909102909301928355519101556101e0565b600084600001600183038154811061013057fe5b6000918252602090912060029091020180549091508085111561018a57604080518082019091528581526020808201868152885460018181018b5560008b81529390932093516002909102909301928355519101556101dd565b8085141561019e57600182018490556101dd565b6040805162461bcd60e51b815260206004820152600f60248201526e1c185cdd0b58da1958dadc1bda5b9d608a1b604482015290519081900360640190fd5b50505b50505050565b61088b806101f56000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80634ee2cd7e116100665780634ee2cd7e146101ce57806370a08231146101fa57806395d89b4114610220578063a9059cbb14610228578063dd62ed3e146102545761009e565b806306fdde03146100a3578063095ea7b31461012057806318160ddd1461016057806323b872dd1461017a578063313ce567146101b0575b600080fd5b6100ab610282565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e55781810151838201526020016100cd565b50505050905090810190601f1680156101125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61014c6004803603604081101561013657600080fd5b506001600160a01b0381351690602001356102b0565b604080519115158252519081900360200190f35b610168610317565b60408051918252519081900360200190f35b61014c6004803603606081101561019057600080fd5b506001600160a01b03813581169160208101359091169060400135610327565b6101b861051e565b6040805160ff9092168252519081900360200190f35b610168600480360360408110156101e457600080fd5b506001600160a01b038135169060200135610523565b6101686004803603602081101561021057600080fd5b50356001600160a01b0316610552565b6100ab61055e565b61014c6004803603604081101561023e57600080fd5b506001600160a01b03813516906020013561057e565b6101686004803603604081101561026a57600080fd5b506001600160a01b038135811691602001351661058b565b60405180604001604052806012815260200171312d3c10283937ba37b1b7b6102a37b5b2b760711b81525081565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6b0353fefbe20c8415c600000090565b6000806103348543610523565b905082811015610382576040805162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742d62616c616e636560601b604482015290519081900360640190fd5b6001600160a01b03851633148015906103c057506001600160a01b038516600090815260036020908152604080832033845290915290205460001914155b15610461576001600160a01b0385166000908152600360209081526040808320338452909152902054831115610436576040805162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e742d616c6c6f77616e636560501b604482015290519081900360640190fd5b6001600160a01b03851660009081526003602090815260408083203384529091529020805484900390555b6001600160a01b038516600090815260046020526040902061048c904385840363ffffffff6105b616565b6104c8436104a361049d8743610523565b866106c4565b6001600160a01b0387166000908152600460205260409020919063ffffffff6105b616565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3506001949350505050565b601281565b6001600160a01b038216600090815260046020526040812061054b908363ffffffff61071016565b9392505050565b60006103118243610523565b60405180604001604052806004815260200163084b4a4b60e31b81525081565b600061054b338484610327565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b8254806105fa5760408051808201909152838152602080820184815286546001818101895560008981529390932093516002909102909301928355519101556106be565b600084600001600183038154811061060e57fe5b6000918252602090912060029091020180549091508085111561066857604080518082019091528581526020808201868152885460018181018b5560008b81529390932093516002909102909301928355519101556106bb565b8085141561067c57600182018490556106bb565b6040805162461bcd60e51b815260206004820152600f60248201526e1c185cdd0b58da1958dadc1bda5b9d608a1b604482015290519081900360640190fd5b50505b50505050565b80820182811015610311576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e2d6f766572666c6f7760781b604482015290519081900360640190fd5b600061054b838381546000908061072b576000915050610311565b835460001982019060009086908390811061074257fe5b906000526020600020906002020190508060000154851061076b57600101549250610311915050565b826001148061079a57508560000160008154811061078557fe5b90600052602060002090600202016000015485105b156107ab5760009350505050610311565b600060001983015b818114610828578754600283830160010104906000908a90839081106107d557fe5b600091825260209091206002909102018054909150808a11156107fa57829450610820565b808a101561080d57600183039350610820565b5060010154965061031195505050505050565b5050506107b3565b87600001828154811061083757fe5b906000526020600020906002020160010154955050505050509291505056fea265627a7a72315820498d706e06ca6ca8b3ed63e669a559c58be6d16bcf662e1bb592d158569bd68464736f6c63430005110032000000000000000000000000b7f72028d9b502dc871c444363a7ac5a52546608

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

000000000000000000000000b7f72028d9b502dc871c444363a7ac5a52546608

-----Decoded View---------------
Arg [0] : _to (address): 0xB7F72028D9b502Dc871C444363a7aC5A52546608

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b7f72028d9b502dc871c444363a7ac5a52546608


Deployed ByteCode Sourcemap

9276:613:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9276:613:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9326:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9326:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6644:252;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6644:252:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;9763:123;;;:::i;:::-;;;;;;;;;;;;;;;;7136:1007;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7136:1007:0;;;;;;;;;;;;;;;;;:::i;9428:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6224:215;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6224:215:0;;;;;;;;:::i;6050:166::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6050:166:0;-1:-1:-1;;;;;6050:166:0;;:::i;9383:38::-;;;:::i;6904:224::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6904:224:0;;;;;;;;:::i;6447:189::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6447:189:0;;;;;;;;;;:::i;9326:50::-;;;;;;;;;;;;;;-1:-1:-1;;;9326:50:0;;;;:::o;6644:252::-;6782:10;6748:4;6770:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6770:33:0;;;;;;;;;;;:42;;;6828:38;;;;;;;6748:4;;6770:33;;6782:10;;6828:38;;;;;;;;-1:-1:-1;6884:4:0;6644:252;;;;;:::o;9763:123::-;9513:13;9763:123;:::o;7136:1007::-;7264:4;7286:27;7316:32;7328:5;7335:12;7316:11;:32::i;:::-;7286:62;;7390:6;7367:19;:29;;7359:62;;;;;-1:-1:-1;;;7359:62:0;;;;;;;;;;;;-1:-1:-1;;;7359:62:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7438:19:0;;7447:10;7438:19;;;;:65;;-1:-1:-1;;;;;;7461:18:0;;;;;;:11;:18;;;;;;;;7480:10;7461:30;;;;;;;;-1:-1:-1;;7461:42:0;;7438:65;7434:285;;;-1:-1:-1;;;;;7528:18:0;;;;;;:11;:18;;;;;;;;7547:10;7528:30;;;;;;;;:40;-1:-1:-1;7528:40:0;7520:75;;;;;-1:-1:-1;;;7520:75:0;;;;;;;;;;;;-1:-1:-1;;;7520:75:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7643:18:0;;;;;;:11;:18;;;;;;;;7662:10;7643:30;;;;;;;;;:39;;;7610:72;;7434:285;-1:-1:-1;;;;;7731:23:0;;;;;;:16;:23;;;;;:143;;7783:12;7810:28;;;7731:143;:37;:143;:::i;:::-;7887:180;7937:12;7964:92;7986:30;7998:3;8003:12;7986:11;:30::i;:::-;8035:6;7964:3;:92::i;:::-;-1:-1:-1;;;;;7887:21:0;;;;;;:16;:21;;;;;;:180;;:35;:180;:::i;:::-;8101:3;-1:-1:-1;;;;;8085:28:0;8094:5;-1:-1:-1;;;;;8085:28:0;;8106:6;8085:28;;;;;;;;;;;;;;;;;;-1:-1:-1;8131:4:0;;7136:1007;-1:-1:-1;;;;7136:1007:0:o;9428:35::-;9461:2;9428:35;:::o;6224:215::-;-1:-1:-1;;;;;6382:24:0;;6350:7;6382:24;;;:16;:24;;;;;:49;;6418:12;6382:49;:35;:49;:::i;:::-;6375:56;6224:215;-1:-1:-1;;;6224:215:0:o;6050:166::-;6143:7;6175:33;6187:6;6195:12;6175:11;:33::i;9383:38::-;;;;;;;;;;;;;;-1:-1:-1;;;9383:38:0;;;;:::o;6904:224::-;7004:4;7033:87;7060:10;7085:3;7103:6;7033:12;:87::i;6447:189::-;-1:-1:-1;;;;;6599:19:0;;;6567:7;6599:19;;;:11;:19;;;;;;;;:29;;;;;;;;;;;;;6447:189::o;2160:779::-;2316:20;;2351:11;2347:585;;2398:25;;;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;2379:13:0;:45;;;;;;;;;;;;;;;;;;;;;;;2347:585;;;2457:36;2496:5;:13;;2519:1;2510:6;:10;2496:25;;;;;;;;;;;;;;;;;;;;;2568:22;;2496:25;;-1:-1:-1;2611:29:0;;;2607:314;;;2680:25;;;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;2661:13:0;:45;;;;;;;;;;;;;;;;;;;;;;;2607:314;;;2741:21;2732:5;:30;2728:193;;;2783:23;;;:32;;;2728:193;;;2880:25;;;-1:-1:-1;;;2880:25:0;;;;;;;;;;;;-1:-1:-1;;;2880:25:0;;;;;;;;;;;;;;2728:193;2347:585;;;2160:779;;;;:::o;8426:185::-;8570:5;;;8565:16;;;;8557:46;;;;;-1:-1:-1;;;8557:46:0;;;;;;;;;;;;-1:-1:-1;;;8557:46:0;;;;;;;;;;;;;;2947:192;3074:7;3106:25;3118:5;3125;3863:20;;3821:7;;4103:11;4099:52;;4138:1;4131:8;;;;;4099:52;4274:24;;-1:-1:-1;;4217:10:0;;;4197:17;;4274:5;;4217:10;;4274:24;;;;;;;;;;;;;;;;4238:60;;4322:14;:19;;;4313:5;:28;4309:88;;4365:20;;;;-1:-1:-1;4358:27:0;;-1:-1:-1;;4358:27:0;4309:88;4502:6;4512:1;4502:11;:44;;;;4525:5;:13;;4539:1;4525:16;;;;;;;;;;;;;;;;;;:21;;;4517:5;:29;4502:44;4498:85;;;4570:1;4563:8;;;;;;;4498:85;4721:11;-1:-1:-1;;4762:13:0;;4788:620;4803:3;4795:4;:11;4788:620;;4927:18;;4856:1;4838:10;;;4851:1;4838:14;4837:20;;4823:11;;4927:5;;4837:20;;4927:18;;;;;;;;;;;;;;;;;;;4978:15;;4927:18;;-1:-1:-1;5014:15:0;;;5010:387;;;5056:3;5050:9;;5010:387;;;5093:7;5085:5;:15;5081:316;;;5279:1;5273:3;:7;5266:14;;5081:316;;;-1:-1:-1;5365:16:0;;;;-1:-1:-1;5358:23:0;;-1:-1:-1;;;;;;5358:23:0;5081:316;4788:620;;;;;;5427:5;:13;;5441:3;5427:18;;;;;;;;;;;;;;;;;;:24;;;5420:31;;;;;;;3694:1765;;;;:::o

Swarm Source

bzzr://498d706e06ca6ca8b3ed63e669a559c58be6d16bcf662e1bb592d158569bd684

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.