ETH Price: $3,313.64 (+1.97%)
Gas: 3 Gwei

Token

Ayuso Coin v1 (AYUSOS)
 

Overview

Max Total Supply

47,000,000,000 AYUSOS

Holders

605

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 7 Decimals)

Balance
0 AYUSOS

Value
$0.00
0x0b70a904c77b90eba8c3619dbe810669c193917d
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:
Ayusocoin

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2021-08-20
*/

// SPDX-License-Identifier: MIT

// Ayusocoin - simple ERC20 token for a campaign to educate
// spanish politicians about Ethereum and cryptocurrencies
// in general.

pragma solidity >=0.6.6; 

// Interfaz ERC20 - Estandar para tokens sobre Ethereum
// En Ethereum los "tokens" o "monedas" son contratos.
// Ojo: un contrato es un programa de ordenador.

// El código viene después de definir la interfaz del contrato.
// Es decir, primero decimos qué cosas se pueden hacer con el contrato
// y después ponemos el código del contrato.

/* Esto el lo que implementa el contrato:
  function totalSupply() public returns (uint256 supply);
  function balanceOf(address _owner) public returns (uint256 balance);
  function transfer(address _to, uint256 _value) public returns (bool success);
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
  function approve(address _spender, uint256 _value) public returns (bool success);
  function allowance(address _owner, address _spender) public view returns (uint256 remaining);

  // solhint-disable-next-line no-simple-event-func-name
  event Transfer(address indexed _from, address indexed _to, uint256 _value);
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);

}
 */

contract Ayusocoin {

  // Nombre y símbolo con el que se da a conocer el 'token':
  // Algunas wallets ignoran esto, pero mola verlo ;-)
  string public constant name = "Ayuso Coin v1";
  string public constant symbol = "AYUSOS";

  // Parámetros técnicos
  uint8 public constant decimals = 7; // La bandera de la Comunida de Madrid tiene siete estrellas.
  uint256 public _totalSupply = 470000000000000000; // 1000 ayusos * 47.000.000 de españoles (*10_000_000 por los 7 decimales) - un número divertido

  
  // Propio de este token

  // El contrato tiene un balance maximo por direccion para evitar
  // que se haga trading con el token durante los primeros días.
  // Tambien sirve para "pausar" temporalmente el movimiento del token de un usuario a otro.
  // Al poner un límite al balance por dirección, si alguien quiere manipular el precio 
  // tiene que hacer una operación coordinada grande con un coste importante.

  uint256 public maxbalance_per_addr = 10000000000; // El limite de tokens que puede tener una direccion.

  address private _root ; // Direccion del superusuario del contrato: puede cambiar los limites y parámetros

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

  // Estos dos mapping sirven para guardar datos en el blockchain de Ethereum
  // el almacenamiento en el blockchain es _muy_ caro: estamos guardando
  // datos en millones de ordenadores hasta el final de los tiempos y eso
  // hay que pagarlo (con el GAS)

  // Primer mapping: ¿cuántos ayusos tiene cada dirección de Ethereum?
  mapping (address => uint256) private balance;

  // Segundo mapping: permisos para enviar tokens a otras direcciones
  // esto es lo que se toca cuando una aplicación pide permiso a tu wallet
  // para hacer una transacción.
  // Hay un doble mapping: el primero es para identificar el dueño,
  // y el segundo a qué dirección tiene permiso para enviar tokens.
  // El uint256 es la cantidad con la que se puede operar (MAX_UINT256 = ilimitado)
  mapping (address => mapping (address => uint256)) public allowed;

  // necesitamos esto por seguridad...
  uint256 constant private MAX_UINT256 = 2**256 - 1;

  // métodos del token

  // totalSupply -> ¿cuántos tokens hay en circulación
  function totalSupply() public view returns (uint256) { return _totalSupply; }

  // balanceOf -> ¿cuántos tiene cada dirección?
  function balanceOf(address _quien) public view returns (uint256 _balance) {
    return balance[_quien];
  }

  /*
  ** Gestion del contrato por el superusuario.
  */

  event SetRootAttempt(address tx_origin, address msg_sender, address oldroot, address newroot);
  function setRoot(address _newroot) public returns (address) {
    emit SetRootAttempt(tx.origin, msg.sender, _root, _newroot);
    require(isRoot(msg.sender));
    _root = _newroot;
    return _newroot;
  }

  function getRoot() public view returns (address) {
     return _root;
  }
   
  function isRoot(address addy) public view returns (bool) {
    require(msg.sender == tx.origin);
    address myroot = getRoot();
    return addy == myroot;
   //   return (tx.origin == _root) && (msg.sender == _root); // Humans only
  }

  function setMaxBalancePerAddress(uint256 maxbal) public returns (uint256) {
      require(isRoot(tx.origin)); // OnlyRoot
      maxbalance_per_addr = maxbal;
      return maxbal;
  }

  /*
  ** A partir de aqui _movemos_ "dinero" virtual.
  */

  // La funcion transfer(to,value) ordena uan transferencia de los tokens.
  // Se utiliza por el dueño de los tokens (sea o no un contrato).
  
  function transfer(address _to, uint256 _value) public returns (bool success) {

    // Antes de mover los tokens hay que asegurarse de que:
    // 1 - Tenemos saldo suficiente 
    // 2 - No nos llaman desde un contrato. Sólo para humanos.

    require(balance[msg.sender] >= _value);
    // require(msg.sender == tx.origin, 'Humans only');
    require(balance[_to] + _value <= maxbalance_per_addr, 'Limite de balance alcanzado');

    // Movemos balances

    balance[msg.sender] -= _value ;
    balance[_to] += _value;

    // Este mensaje avisa de que ha ocurrido algo...
    emit Transfer(msg.sender, _to, _value);

    return true;
  }

  function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {

    // Esta funcion es casi igual que transfer(), pero dando con una dirección de origem.
    // ¿Para qué necesitamos esta función? ¿no basta con transfer() ?
    // Pues no, esta funcion se llama desde otro smart contract (como Uniswap, o cualquier otro DEX)
    // Por eso tenemos ese parámetro "allowance" en ERC20: Para que el smart contract
    // que llama a esta función no nos pueda dejar vacía la billetera.
    
    uint256 limit;

    // Por seguridad evitamos reentrada pero la transacción es más cara (cuesta más gas) :-S
    limit = allowed[_from][_to];

    // Antes de mover los tokens hay que asegurarse de que
    // 1 - Tenemos saldo suficiente 
    // 2 - Se permite mandar esa cantidad al destino

    require(balance[_from] >= _value);
    require(limit >= _value, 'Se debe permitir transferencia' );
    require(balance[_to] + _value <= maxbalance_per_addr, 'Limite de balance alcanzado');

    // Movemos balances

    if (limit < MAX_UINT256) {
        // actualizamos los permisos... con cuidado para que no nos ataquen con un underflow.
        require(limit - _value < limit, "Evita integer underflow");
        allowed[_from][_to] = 0;
        limit -= _value;
        allowed[msg.sender][_to] = limit;
    }

    balance[msg.sender] -= _value ;
    balance[_to] += _value;  // Lo ultimo que se hace siempre es _mover_ hacia otra direccion,

    // Este mensaje notifica que ha ocurrido algo... (se puede consultar en Etherscan / web3 / infura...)
    emit Transfer(_from, _to, _value);
    return true;

  }

  // Gestión de allowance (la asignación)

  // approve(_direccion, _valor) -> Aprueba que la dirección haga un gasto
  // Esta función se suele llamar desde el wallet.
  // No queremos que un contrato lo cambie. Sólo personas humanas.
  
  function approve(address _to, uint256 _value) public returns (bool success) {
    require(msg.sender == tx.origin, "Humans only");
    allowed[msg.sender][_to] = _value;
    emit Approval(msg.sender, _to, _value);

    return true;
  }

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

  // Constructor - desde aqui se crea el contrato y se acuñan los tokens

  constructor () {
     balance[msg.sender] = _totalSupply;
     _root = tx.origin; // Direccion del dueño del contrato
  }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"tx_origin","type":"address"},{"indexed":false,"internalType":"address","name":"msg_sender","type":"address"},{"indexed":false,"internalType":"address","name":"oldroot","type":"address"},{"indexed":false,"internalType":"address","name":"newroot","type":"address"}],"name":"SetRootAttempt","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":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_quien","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"_balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRoot","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"isRoot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxbalance_per_addr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxbal","type":"uint256"}],"name":"setMaxBalancePerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newroot","type":"address"}],"name":"setRoot","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

6080604052670685c682846f00006000556402540be40060015534801561002557600080fd5b50600080543382526003602052604090912055600280546001600160a01b03191632179055610a0f806100596000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c80635c658165116100975780637edabc4f116100665780637edabc4f1461027357806395d89b411461027c578063a9059cbb146102b8578063dd62ed3e146102cb576100ff565b80635c658165146101fb5780635ca1e1651461022657806370a08231146102375780637519508c14610260576100ff565b806323b872dd116100d357806323b872dd146101b2578063313ce567146101c55780633eaaf86b146101df578063557a6403146101e8576100ff565b80623ba1ed1461010457806306fdde0314610134578063095ea7b31461017d57806318160ddd146101a0575b600080fd5b610117610112366004610859565b610304565b6040516001600160a01b0390911681526020015b60405180910390f35b6101706040518060400160405280600d81526020017f417975736f20436f696e2076310000000000000000000000000000000000000081525081565b60405161012b9190610928565b61019061018b3660046108e7565b6103a7565b604051901515815260200161012b565b6000545b60405190815260200161012b565b6101906101c03660046108ac565b610462565b6101cd600781565b60405160ff909116815260200161012b565b6101a460005481565b6101906101f6366004610859565b6106ce565b6101a461020936600461087a565b600460209081526000928352604080842090915290825290205481565b6002546001600160a01b0316610117565b6101a4610245366004610859565b6001600160a01b031660009081526003602052604090205490565b6101a461026e366004610910565b610706565b6101a460015481565b6101706040518060400160405280600681526020017f415955534f53000000000000000000000000000000000000000000000000000081525081565b6101906102c63660046108e7565b610723565b6101a46102d936600461087a565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600254604080513281523360208201526001600160a01b03928316818301529183166060830152516000917fccc7d6b0f3f8ef418622c6270e710f78e00d6d4a2bbc6a8eaf753411c61eae7b919081900360800190a1610363336106ce565b61036c57600080fd5b50600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316179055805b919050565b60003332146103fd5760405162461bcd60e51b815260206004820152600b60248201527f48756d616e73206f6e6c7900000000000000000000000000000000000000000060448201526064015b60405180910390fd5b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a350600192915050565b6001600160a01b03808416600081815260046020908152604080832094871683529381528382205492825260039052918220548311156104a157600080fd5b828110156104f15760405162461bcd60e51b815260206004820152601e60248201527f53652064656265207065726d69746972207472616e73666572656e636961000060448201526064016103f4565b6001546001600160a01b03851660009081526003602052604090205461051890859061097b565b11156105665760405162461bcd60e51b815260206004820152601b60248201527f4c696d6974652064652062616c616e636520616c63616e7a61646f000000000060448201526064016103f4565b600019811015610623578061057b8482610993565b106105c85760405162461bcd60e51b815260206004820152601760248201527f457669746120696e746567657220756e646572666c6f7700000000000000000060448201526064016103f4565b6001600160a01b0380861660009081526004602090815260408083209388168352929052908120556105fa8382610993565b3360009081526004602090815260408083206001600160a01b0389168452909152902081905590505b3360009081526003602052604081208054859290610642908490610993565b90915550506001600160a01b0384166000908152600360205260408120805485929061066f90849061097b565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516106bb91815260200190565b60405180910390a3506001949350505050565b60003332146106dc57600080fd5b60006106f06002546001600160a01b031690565b6001600160a01b03848116911614915050919050565b6000610711326106ce565b61071a57600080fd5b50600181905590565b3360009081526003602052604081205482111561073f57600080fd5b6001546001600160a01b03841660009081526003602052604090205461076690849061097b565b11156107b45760405162461bcd60e51b815260206004820152601b60248201527f4c696d6974652064652062616c616e636520616c63616e7a61646f000000000060448201526064016103f4565b33600090815260036020526040812080548492906107d3908490610993565b90915550506001600160a01b0383166000908152600360205260408120805484929061080090849061097b565b90915550506040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610451565b80356001600160a01b03811681146103a257600080fd5b60006020828403121561086a578081fd5b61087382610842565b9392505050565b6000806040838503121561088c578081fd5b61089583610842565b91506108a360208401610842565b90509250929050565b6000806000606084860312156108c0578081fd5b6108c984610842565b92506108d760208501610842565b9150604084013590509250925092565b600080604083850312156108f9578182fd5b61090283610842565b946020939093013593505050565b600060208284031215610921578081fd5b5035919050565b6000602080835283518082850152825b8181101561095457858101830151858201604001528201610938565b818111156109655783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561098e5761098e6109aa565b500190565b6000828210156109a5576109a56109aa565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122073121acee90f968c0ea88742091952c9cffefdb8bd6da456ac6c7972ba3c061064736f6c63430008030033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ff5760003560e01c80635c658165116100975780637edabc4f116100665780637edabc4f1461027357806395d89b411461027c578063a9059cbb146102b8578063dd62ed3e146102cb576100ff565b80635c658165146101fb5780635ca1e1651461022657806370a08231146102375780637519508c14610260576100ff565b806323b872dd116100d357806323b872dd146101b2578063313ce567146101c55780633eaaf86b146101df578063557a6403146101e8576100ff565b80623ba1ed1461010457806306fdde0314610134578063095ea7b31461017d57806318160ddd146101a0575b600080fd5b610117610112366004610859565b610304565b6040516001600160a01b0390911681526020015b60405180910390f35b6101706040518060400160405280600d81526020017f417975736f20436f696e2076310000000000000000000000000000000000000081525081565b60405161012b9190610928565b61019061018b3660046108e7565b6103a7565b604051901515815260200161012b565b6000545b60405190815260200161012b565b6101906101c03660046108ac565b610462565b6101cd600781565b60405160ff909116815260200161012b565b6101a460005481565b6101906101f6366004610859565b6106ce565b6101a461020936600461087a565b600460209081526000928352604080842090915290825290205481565b6002546001600160a01b0316610117565b6101a4610245366004610859565b6001600160a01b031660009081526003602052604090205490565b6101a461026e366004610910565b610706565b6101a460015481565b6101706040518060400160405280600681526020017f415955534f53000000000000000000000000000000000000000000000000000081525081565b6101906102c63660046108e7565b610723565b6101a46102d936600461087a565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600254604080513281523360208201526001600160a01b03928316818301529183166060830152516000917fccc7d6b0f3f8ef418622c6270e710f78e00d6d4a2bbc6a8eaf753411c61eae7b919081900360800190a1610363336106ce565b61036c57600080fd5b50600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316179055805b919050565b60003332146103fd5760405162461bcd60e51b815260206004820152600b60248201527f48756d616e73206f6e6c7900000000000000000000000000000000000000000060448201526064015b60405180910390fd5b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a350600192915050565b6001600160a01b03808416600081815260046020908152604080832094871683529381528382205492825260039052918220548311156104a157600080fd5b828110156104f15760405162461bcd60e51b815260206004820152601e60248201527f53652064656265207065726d69746972207472616e73666572656e636961000060448201526064016103f4565b6001546001600160a01b03851660009081526003602052604090205461051890859061097b565b11156105665760405162461bcd60e51b815260206004820152601b60248201527f4c696d6974652064652062616c616e636520616c63616e7a61646f000000000060448201526064016103f4565b600019811015610623578061057b8482610993565b106105c85760405162461bcd60e51b815260206004820152601760248201527f457669746120696e746567657220756e646572666c6f7700000000000000000060448201526064016103f4565b6001600160a01b0380861660009081526004602090815260408083209388168352929052908120556105fa8382610993565b3360009081526004602090815260408083206001600160a01b0389168452909152902081905590505b3360009081526003602052604081208054859290610642908490610993565b90915550506001600160a01b0384166000908152600360205260408120805485929061066f90849061097b565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516106bb91815260200190565b60405180910390a3506001949350505050565b60003332146106dc57600080fd5b60006106f06002546001600160a01b031690565b6001600160a01b03848116911614915050919050565b6000610711326106ce565b61071a57600080fd5b50600181905590565b3360009081526003602052604081205482111561073f57600080fd5b6001546001600160a01b03841660009081526003602052604090205461076690849061097b565b11156107b45760405162461bcd60e51b815260206004820152601b60248201527f4c696d6974652064652062616c616e636520616c63616e7a61646f000000000060448201526064016103f4565b33600090815260036020526040812080548492906107d3908490610993565b90915550506001600160a01b0383166000908152600360205260408120805484929061080090849061097b565b90915550506040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610451565b80356001600160a01b03811681146103a257600080fd5b60006020828403121561086a578081fd5b61087382610842565b9392505050565b6000806040838503121561088c578081fd5b61089583610842565b91506108a360208401610842565b90509250929050565b6000806000606084860312156108c0578081fd5b6108c984610842565b92506108d760208501610842565b9150604084013590509250925092565b600080604083850312156108f9578182fd5b61090283610842565b946020939093013593505050565b600060208284031215610921578081fd5b5035919050565b6000602080835283518082850152825b8181101561095457858101830151858201604001528201610938565b818111156109655783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561098e5761098e6109aa565b500190565b6000828210156109a5576109a56109aa565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122073121acee90f968c0ea88742091952c9cffefdb8bd6da456ac6c7972ba3c061064736f6c63430008030033

Deployed Bytecode Sourcemap

1331:6987:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4158:211;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1662:55:1;;;1644:74;;1632:2;1617:18;4158:211:0;;;;;;;;1476:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7720:241::-;;;;;;:::i;:::-;;:::i;:::-;;;2387:14:1;;2380:22;2362:41;;2350:2;2335:18;7720:241:0;2317:92:1;3747:77:0;3791:7;3809:12;3747:77;;;4575:25:1;;;4563:2;4548:18;3747:77:0;4530:76:1;5778:1686:0;;;;;;:::i;:::-;;:::i;1601:34::-;;1634:1;1601:34;;;;;4783:4:1;4771:17;;;4753:36;;4741:2;4726:18;1601:34:0;4708:87:1;1702:48:0;;;;;;4459:241;;;;;;:::i;:::-;;:::i;3494:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;4375:75;4439:5;;-1:-1:-1;;;;;4439:5:0;4375:75;;3883:109;;;;;;:::i;:::-;-1:-1:-1;;;;;3971:15:0;3939:16;3971:15;;;:7;:15;;;;;;;3883:109;4706:186;;;;;;:::i;:::-;;:::i;2292:48::-;;;;;;1526:40;;;;;;;;;;;;;;;;;;;;;5112:660;;;;;;:::i;:::-;;:::i;7967:138::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8074:15:0;;;8041:17;8074:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;7967:138;4158:211;4268:5;;4230:54;;;4245:9;2021:34:1;;4256:10:0;2086:2:1;2071:18;;2064:43;-1:-1:-1;;;;;4268:5:0;;;2123:18:1;;;2116:43;2195:15;;;2190:2;2175:18;;2168:43;4230:54:0;-1:-1:-1;;4230:54:0;;;;;;1947:3:1;4230:54:0;;;4299:18;4306:10;4299:6;:18::i;:::-;4291:27;;;;;;-1:-1:-1;4325:5:0;:16;;;;-1:-1:-1;;;;;4325:16:0;;;;;;4158:211;;;;:::o;7720:241::-;7782:12;7811:10;7825:9;7811:23;7803:47;;;;-1:-1:-1;;;7803:47:0;;4291:2:1;7803:47:0;;;4273:21:1;4330:2;4310:18;;;4303:30;4369:13;4349:18;;;4342:41;4400:18;;7803:47:0;;;;;;;;;7865:10;7857:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7857:24:0;;;;;;;;;;;;:33;;;7902;4575:25:1;;;7857:24:0;;7865:10;7902:33;;4548:18:1;7902:33:0;;;;;;;;-1:-1:-1;7951:4:0;7720:241;;;;:::o;5778:1686::-;-1:-1:-1;;;;;6447:14:0;;;5860:12;6447:14;;;:7;:14;;;;;;;;:19;;;;;;;;;;;;6637:14;;;:7;:14;;;;;;:24;-1:-1:-1;6637:24:0;6629:33;;;;;;6686:6;6677:5;:15;;6669:59;;;;-1:-1:-1;;;6669:59:0;;3576:2:1;6669:59:0;;;3558:21:1;3615:2;3595:18;;;3588:30;3654:32;3634:18;;;3627:60;3704:18;;6669:59:0;3548:180:1;6669:59:0;6768:19;;-1:-1:-1;;;;;6743:12:0;;;;;;:7;:12;;;;;;:21;;6758:6;;6743:21;:::i;:::-;:44;;6735:84;;;;-1:-1:-1;;;6735:84:0;;3935:2:1;6735:84:0;;;3917:21:1;3974:2;3954:18;;;3947:30;4013:29;3993:18;;;3986:57;4060:18;;6735:84:0;3907:177:1;6735:84:0;-1:-1:-1;;6859:5:0;:19;6855:300;;;7011:5;6994:14;7002:6;7011:5;6994:14;:::i;:::-;:22;6986:58;;;;-1:-1:-1;;;6986:58:0;;3224:2:1;6986:58:0;;;3206:21:1;3263:2;3243:18;;;3236:30;3302:25;3282:18;;;3275:53;3345:18;;6986:58:0;3196:173:1;6986:58:0;-1:-1:-1;;;;;7055:14:0;;;7077:1;7055:14;;;:7;:14;;;;;;;;:19;;;;;;;;;;;:23;7089:15;7098:6;7089:15;;:::i;:::-;7123:10;7115:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7115:24:0;;;;;;;;;:32;;;7089:15;-1:-1:-1;6855:300:0;7171:10;7163:19;;;;:7;:19;;;;;:29;;7186:6;;7163:19;:29;;7186:6;;7163:29;:::i;:::-;;;;-1:-1:-1;;;;;;;7200:12:0;;;;;;:7;:12;;;;;:22;;7216:6;;7200:12;:22;;7216:6;;7200:22;:::i;:::-;;;;;;;;7426:3;-1:-1:-1;;;;;7410:28:0;7419:5;-1:-1:-1;;;;;7410:28:0;;7431:6;7410:28;;;;4575:25:1;;4563:2;4548:18;;4530:76;7410:28:0;;;;;;;;-1:-1:-1;7452:4:0;;5778:1686;-1:-1:-1;;;;5778:1686:0:o;4459:241::-;4510:4;4531:10;4545:9;4531:23;4523:32;;;;;;4562:14;4579:9;4439:5;;-1:-1:-1;;;;;4439:5:0;4375:75;;4579:9;-1:-1:-1;;;;;4602:14:0;;;;;;;-1:-1:-1;;4459:241:0;;;:::o;4706:186::-;4771:7;4797:17;4804:9;4797:6;:17::i;:::-;4789:26;;;;;;-1:-1:-1;4836:19:0;:28;;;;4706:186::o;5112:660::-;5380:10;5175:12;5372:19;;;:7;:19;;;;;;:29;-1:-1:-1;5372:29:0;5364:38;;;;;;5499:19;;-1:-1:-1;;;;;5474:12:0;;;;;;:7;:12;;;;;;:21;;5489:6;;5474:21;:::i;:::-;:44;;5466:84;;;;-1:-1:-1;;;5466:84:0;;3935:2:1;5466:84:0;;;3917:21:1;3974:2;3954:18;;;3947:30;4013:29;3993:18;;;3986:57;4060:18;;5466:84:0;3907:177:1;5466:84:0;5594:10;5586:19;;;;:7;:19;;;;;:29;;5609:6;;5586:19;:29;;5609:6;;5586:29;:::i;:::-;;;;-1:-1:-1;;;;;;;5623:12:0;;;;;;:7;:12;;;;;:22;;5639:6;;5623:12;:22;;5639:6;;5623:22;:::i;:::-;;;;-1:-1:-1;;5713:33:0;;4575:25:1;;;-1:-1:-1;;;;;5713:33:0;;;5722:10;;5713:33;;4563:2:1;4548:18;5713:33:0;4530:76:1;14:196;82:20;;-1:-1:-1;;;;;131:54:1;;121:65;;111:2;;200:1;197;190:12;215:196;;327:2;315:9;306:7;302:23;298:32;295:2;;;348:6;340;333:22;295:2;376:29;395:9;376:29;:::i;:::-;366:39;285:126;-1:-1:-1;;;285:126:1:o;416:270::-;;;545:2;533:9;524:7;520:23;516:32;513:2;;;566:6;558;551:22;513:2;594:29;613:9;594:29;:::i;:::-;584:39;;642:38;676:2;665:9;661:18;642:38;:::i;:::-;632:48;;503:183;;;;;:::o;691:338::-;;;;837:2;825:9;816:7;812:23;808:32;805:2;;;858:6;850;843:22;805:2;886:29;905:9;886:29;:::i;:::-;876:39;;934:38;968:2;957:9;953:18;934:38;:::i;:::-;924:48;;1019:2;1008:9;1004:18;991:32;981:42;;795:234;;;;;:::o;1034:264::-;;;1163:2;1151:9;1142:7;1138:23;1134:32;1131:2;;;1184:6;1176;1169:22;1131:2;1212:29;1231:9;1212:29;:::i;:::-;1202:39;1288:2;1273:18;;;;1260:32;;-1:-1:-1;;;1121:177:1:o;1303:190::-;;1415:2;1403:9;1394:7;1390:23;1386:32;1383:2;;;1436:6;1428;1421:22;1383:2;-1:-1:-1;1464:23:1;;1373:120;-1:-1:-1;1373:120:1:o;2414:603::-;;2555:2;2584;2573:9;2566:21;2616:6;2610:13;2659:6;2654:2;2643:9;2639:18;2632:34;2684:4;2697:140;2711:6;2708:1;2705:13;2697:140;;;2806:14;;;2802:23;;2796:30;2772:17;;;2791:2;2768:26;2761:66;2726:10;;2697:140;;;2855:6;2852:1;2849:13;2846:2;;;2925:4;2920:2;2911:6;2900:9;2896:22;2892:31;2885:45;2846:2;-1:-1:-1;3001:2:1;2980:15;-1:-1:-1;;2976:29:1;2961:45;;;;3008:2;2957:54;;2535:482;-1:-1:-1;;;2535:482:1:o;4800:128::-;;4871:1;4867:6;4864:1;4861:13;4858:2;;;4877:18;;:::i;:::-;-1:-1:-1;4913:9:1;;4848:80::o;4933:125::-;;5001:1;4998;4995:8;4992:2;;;5006:18;;:::i;:::-;-1:-1:-1;5043:9:1;;4982:76::o;5063:184::-;5115:77;5112:1;5105:88;5212:4;5209:1;5202:15;5236:4;5233:1;5226:15

Swarm Source

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