ETH Price: $2,687.77 (+4.40%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Revoke Permissio...133899312021-10-10 8:45:551213 days ago1633855555IN
0x2D1711aD...6527f2Ad5
0 ETH0.0017637663.52479705
Revoke Permissio...133899262021-10-10 8:44:261213 days ago1633855466IN
0x2D1711aD...6527f2Ad5
0 ETH0.0015095754.36965275
Revoke Permissio...133899172021-10-10 8:42:591213 days ago1633855379IN
0x2D1711aD...6527f2Ad5
0 ETH0.0018287365.86481939
Grant Permission90783132019-12-09 16:11:111883 days ago1575907871IN
0x2D1711aD...6527f2Ad5
0 ETH0.0004713610
Grant Permission90765362019-12-09 8:50:351884 days ago1575881435IN
0x2D1711aD...6527f2Ad5
0 ETH0.0004713610
Grant Permission87449602019-10-15 9:04:031938 days ago1571130243IN
0x2D1711aD...6527f2Ad5
0 ETH0.000381958
Revoke Permissio...87449492019-10-15 9:00:211938 days ago1571130021IN
0x2D1711aD...6527f2Ad5
0 ETH0.000141388
Grant Permission87449172019-10-15 8:53:431939 days ago1571129623IN
0x2D1711aD...6527f2Ad5
0 ETH0.000382468
Grant Permission87448292019-10-15 8:36:071939 days ago1571128567IN
0x2D1711aD...6527f2Ad5
0 ETH0.000381958
Grant Permission87398882019-10-14 14:04:291939 days ago1571061869IN
0x2D1711aD...6527f2Ad5
0 ETH0.0004780810
Revoke Permissio...87398822019-10-14 14:03:001939 days ago1571061780IN
0x2D1711aD...6527f2Ad5
0 ETH0.0001773710
Claim Ownership87398732019-10-14 14:01:141939 days ago1571061674IN
0x2D1711aD...6527f2Ad5
0 ETH0.0001932410
Transfer Ownersh...87398602019-10-14 13:58:181939 days ago1571061498IN
0x2D1711aD...6527f2Ad5
0 ETH0.000091932.10265945
Grant Permission83853072019-08-20 5:11:341995 days ago1566277894IN
0x2D1711aD...6527f2Ad5
0 ETH0.000382468
Grant Permission...82752582019-08-03 3:22:442012 days ago1564802564IN
0x2D1711aD...6527f2Ad5
0 ETH0.0014582820
Grant Permission81725192019-07-18 4:27:152028 days ago1563424035IN
0x2D1711aD...6527f2Ad5
0 ETH0.000285696
Grant Permission81725172019-07-18 4:26:522028 days ago1563424012IN
0x2D1711aD...6527f2Ad5
0 ETH0.000286466
Grant Permission...81595382019-07-16 3:27:202030 days ago1563247640IN
0x2D1711aD...6527f2Ad5
0 ETH0.000682597
Grant Permission...78969822019-06-05 4:04:192071 days ago1559707459IN
0x2D1711aD...6527f2Ad5
0 ETH0.0012204810
Revoke Permissio...78969652019-06-05 4:00:352071 days ago1559707235IN
0x2D1711aD...6527f2Ad5
0 ETH0.0001767310
Grant Permission78225942019-05-24 13:26:232082 days ago1558704383IN
0x2D1711aD...6527f2Ad5
0 ETH0.0004780810
Grant Permission77662852019-05-15 17:31:572091 days ago1557941517IN
0x2D1711aD...6527f2Ad5
0 ETH0.000621513
Grant Permission...77662832019-05-15 17:31:492091 days ago1557941509IN
0x2D1711aD...6527f2Ad5
0 ETH0.00126613
Grant Permission...77662812019-05-15 17:31:152091 days ago1557941475IN
0x2D1711aD...6527f2Ad5
0 ETH0.0013924513
Grant Permission...77490972019-05-13 1:21:332094 days ago1557710493IN
0x2D1711aD...6527f2Ad5
0 ETH0.000291654
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Whitelist

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-09-20
*/

/**
 * Copyright (c) 2018 blockimmo AG [email protected]
 * Non-Profit Open Software License 3.0 (NPOSL-3.0)
 * https://opensource.org/licenses/NPOSL-3.0
 */


pragma solidity 0.4.25;


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  event OwnershipRenounced(address indexed previousOwner);
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(address _newOwner) public onlyOwner {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}


/**
 * @title Claimable
 * @dev Extension for the Ownable contract, where the ownership needs to be claimed.
 * This allows the new owner to accept the transfer.
 */
contract Claimable is Ownable {
  address public pendingOwner;

  /**
   * @dev Modifier throws if called by any account other than the pendingOwner.
   */
  modifier onlyPendingOwner() {
    require(msg.sender == pendingOwner);
    _;
  }

  /**
   * @dev Allows the current owner to set the pendingOwner address.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    pendingOwner = newOwner;
  }

  /**
   * @dev Allows the pendingOwner address to finalize the transfer.
   */
  function claimOwnership() public onlyPendingOwner {
    emit OwnershipTransferred(owner, pendingOwner);
    owner = pendingOwner;
    pendingOwner = address(0);
  }
}


/**
 * @title Roles
 * @author Francisco Giordano (@frangio)
 * @dev Library for managing addresses assigned to a Role.
 * See RBAC.sol for example usage.
 */
library Roles {
  struct Role {
    mapping (address => bool) bearer;
  }

  /**
   * @dev give an address access to this role
   */
  function add(Role storage _role, address _addr)
    internal
  {
    _role.bearer[_addr] = true;
  }

  /**
   * @dev remove an address' access to this role
   */
  function remove(Role storage _role, address _addr)
    internal
  {
    _role.bearer[_addr] = false;
  }

  /**
   * @dev check if an address has this role
   * // reverts
   */
  function check(Role storage _role, address _addr)
    internal
    view
  {
    require(has(_role, _addr));
  }

  /**
   * @dev check if an address has this role
   * @return bool
   */
  function has(Role storage _role, address _addr)
    internal
    view
    returns (bool)
  {
    return _role.bearer[_addr];
  }
}


/**
 * @title RBAC (Role-Based Access Control)
 * @author Matt Condon (@Shrugs)
 * @dev Stores and provides setters and getters for roles and addresses.
 * Supports unlimited numbers of roles and addresses.
 * See //contracts/mocks/RBACMock.sol for an example of usage.
 * This RBAC method uses strings to key roles. It may be beneficial
 * for you to write your own implementation of this interface using Enums or similar.
 */
contract RBAC {
  using Roles for Roles.Role;

  mapping (string => Roles.Role) private roles;

  event RoleAdded(address indexed operator, string role);
  event RoleRemoved(address indexed operator, string role);

  /**
   * @dev reverts if addr does not have role
   * @param _operator address
   * @param _role the name of the role
   * // reverts
   */
  function checkRole(address _operator, string _role)
    public
    view
  {
    roles[_role].check(_operator);
  }

  /**
   * @dev determine if addr has role
   * @param _operator address
   * @param _role the name of the role
   * @return bool
   */
  function hasRole(address _operator, string _role)
    public
    view
    returns (bool)
  {
    return roles[_role].has(_operator);
  }

  /**
   * @dev add a role to an address
   * @param _operator address
   * @param _role the name of the role
   */
  function addRole(address _operator, string _role)
    internal
  {
    roles[_role].add(_operator);
    emit RoleAdded(_operator, _role);
  }

  /**
   * @dev remove a role from an address
   * @param _operator address
   * @param _role the name of the role
   */
  function removeRole(address _operator, string _role)
    internal
  {
    roles[_role].remove(_operator);
    emit RoleRemoved(_operator, _role);
  }

  /**
   * @dev modifier to scope access to a single role (uses msg.sender as addr)
   * @param _role the name of the role
   * // reverts
   */
  modifier onlyRole(string _role)
  {
    checkRole(msg.sender, _role);
    _;
  }

  /**
   * @dev modifier to scope access to a set of roles (uses msg.sender as addr)
   * @param _roles the names of the roles to scope access to
   * // reverts
   *
   * @TODO - when solidity supports dynamic arrays as arguments to modifiers, provide this
   *  see: https://github.com/ethereum/solidity/issues/2467
   */
  // modifier onlyRoles(string[] _roles) {
  //     bool hasAnyRole = false;
  //     for (uint8 i = 0; i < _roles.length; i++) {
  //         if (hasRole(msg.sender, _roles[i])) {
  //             hasAnyRole = true;
  //             break;
  //         }
  //     }

  //     require(hasAnyRole);

  //     _;
  // }
}


/**
 * @title Whitelist
 * @dev A minimal, simple database mapping public addresses (ie users) to their permissions.
 *
 * `TokenizedProperty` references `this` to only allow tokens to be transferred to addresses with necessary permissions.
 * `TokenSale` references `this` to only allow tokens to be purchased by addresses within the necessary permissions.
 *
 * `WhitelistProxy` enables `this` to be easily and reliably upgraded if absolutely necessary.
 * `WhitelistProxy` and `this` are controlled by a centralized entity (blockimmo).
 *  This centralization is required by our legal framework to ensure investors are known and fully-legal.
 */
contract Whitelist is Claimable, RBAC {
  function grantPermission(address _operator, string _permission) public onlyOwner {
    addRole(_operator, _permission);
  }

  function revokePermission(address _operator, string _permission) public onlyOwner {
    removeRole(_operator, _permission);
  }

  function grantPermissionBatch(address[] _operators, string _permission) public onlyOwner {
    for (uint256 i = 0; i < _operators.length; i++) {
      addRole(_operators[i], _permission);
    }
  }

  function revokePermissionBatch(address[] _operators, string _permission) public onlyOwner {
    for (uint256 i = 0; i < _operators.length; i++) {
      removeRole(_operators[i], _permission);
    }
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_operator","type":"address"},{"name":"_role","type":"string"}],"name":"checkRole","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_operators","type":"address[]"},{"name":"_permission","type":"string"}],"name":"revokePermissionBatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_operator","type":"address"},{"name":"_role","type":"string"}],"name":"hasRole","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_operators","type":"address[]"},{"name":"_permission","type":"string"}],"name":"grantPermissionBatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"},{"name":"_permission","type":"string"}],"name":"revokePermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"},{"name":"_permission","type":"string"}],"name":"grantPermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"role","type":"string"}],"name":"RoleAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"role","type":"string"}],"name":"RoleRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405260008054600160a060020a031916331790556109c2806100256000396000f3006080604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630988ca8c81146100b35780630d93afef1461011c578063217fe6c6146101af578063475c051d1461022a5780634e71e0c8146102bd5780636ff89159146102d2578063715018a6146103395780638da5cb5b1461034e578063bbd9a5fa1461037f578063e30c3978146103e6578063f2fde38b146103fb575b600080fd5b3480156100bf57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261011a958335600160a060020a031695369560449491939091019190819084018382808284375094975061041c9650505050505050565b005b34801561012857600080fd5b506040805160206004803580820135838102808601850190965280855261011a9536959394602494938501929182918501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061048a9650505050505050565b3480156101bb57600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610216958335600160a060020a03169536956044949193909101919081908401838280828437509497506104dd9650505050505050565b604080519115158252519081900360200190f35b34801561023657600080fd5b506040805160206004803580820135838102808601850190965280855261011a9536959394602494938501929182918501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506105509650505050505050565b3480156102c957600080fd5b5061011a61059e565b3480156102de57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261011a958335600160a060020a03169536956044949193909101919081908401838280828437509497506106269650505050505050565b34801561034557600080fd5b5061011a610647565b34801561035a57600080fd5b506103636106b3565b60408051600160a060020a039092168252519081900360200190f35b34801561038b57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261011a958335600160a060020a03169536956044949193909101919081908401838280828437509497506106c29650505050505050565b3480156103f257600080fd5b506103636106e3565b34801561040757600080fd5b5061011a600160a060020a03600435166106f2565b610486826002836040518082805190602001908083835b602083106104525780518252601f199092019160209182019101610433565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050610738565b5050565b60008054600160a060020a031633146104a257600080fd5b5060005b82518110156104d8576104d083828151811015156104c057fe5b906020019060200201518361074d565b6001016104a6565b505050565b6000610549836002846040518082805190602001908083835b602083106105155780518252601f1990920191602091820191016104f6565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061085e565b9392505050565b60008054600160a060020a0316331461056857600080fd5b5060005b82518110156104d857610596838281518110151561058657fe5b906020019060200201518361087d565b60010161056c565b600154600160a060020a031633146105b557600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a0316331461063d57600080fd5b610486828261074d565b600054600160a060020a0316331461065e57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b600054600160a060020a031633146106d957600080fd5b610486828261087d565b600154600160a060020a031681565b600054600160a060020a0316331461070957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b610742828261085e565b151561048657600080fd5b6107b7826002836040518082805190602001908083835b602083106107835780518252601f199092019160209182019101610764565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061094f565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610820578181015183820152602001610808565b50505050905090810190601f16801561084d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a03166000908152602091909152604090205460ff1690565b6108e7826002836040518082805190602001908083835b602083106108b35780518252601f199092019160209182019101610894565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050610971565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b7004898260405180806020018281038252838181518152602001915080519060200190808383600083811015610820578181015183820152602001610808565b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0316600090815260209190915260409020805460ff191660011790555600a165627a7a72305820436f91dd993ea0fceed25bc7bf67a1a9b55090680e77a9b17f37b022637fa6640029

Deployed Bytecode

0x6080604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630988ca8c81146100b35780630d93afef1461011c578063217fe6c6146101af578063475c051d1461022a5780634e71e0c8146102bd5780636ff89159146102d2578063715018a6146103395780638da5cb5b1461034e578063bbd9a5fa1461037f578063e30c3978146103e6578063f2fde38b146103fb575b600080fd5b3480156100bf57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261011a958335600160a060020a031695369560449491939091019190819084018382808284375094975061041c9650505050505050565b005b34801561012857600080fd5b506040805160206004803580820135838102808601850190965280855261011a9536959394602494938501929182918501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975061048a9650505050505050565b3480156101bb57600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610216958335600160a060020a03169536956044949193909101919081908401838280828437509497506104dd9650505050505050565b604080519115158252519081900360200190f35b34801561023657600080fd5b506040805160206004803580820135838102808601850190965280855261011a9536959394602494938501929182918501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506105509650505050505050565b3480156102c957600080fd5b5061011a61059e565b3480156102de57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261011a958335600160a060020a03169536956044949193909101919081908401838280828437509497506106269650505050505050565b34801561034557600080fd5b5061011a610647565b34801561035a57600080fd5b506103636106b3565b60408051600160a060020a039092168252519081900360200190f35b34801561038b57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261011a958335600160a060020a03169536956044949193909101919081908401838280828437509497506106c29650505050505050565b3480156103f257600080fd5b506103636106e3565b34801561040757600080fd5b5061011a600160a060020a03600435166106f2565b610486826002836040518082805190602001908083835b602083106104525780518252601f199092019160209182019101610433565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050610738565b5050565b60008054600160a060020a031633146104a257600080fd5b5060005b82518110156104d8576104d083828151811015156104c057fe5b906020019060200201518361074d565b6001016104a6565b505050565b6000610549836002846040518082805190602001908083835b602083106105155780518252601f1990920191602091820191016104f6565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061085e565b9392505050565b60008054600160a060020a0316331461056857600080fd5b5060005b82518110156104d857610596838281518110151561058657fe5b906020019060200201518361087d565b60010161056c565b600154600160a060020a031633146105b557600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a0316331461063d57600080fd5b610486828261074d565b600054600160a060020a0316331461065e57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b600054600160a060020a031633146106d957600080fd5b610486828261087d565b600154600160a060020a031681565b600054600160a060020a0316331461070957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b610742828261085e565b151561048657600080fd5b6107b7826002836040518082805190602001908083835b602083106107835780518252601f199092019160209182019101610764565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061094f565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610820578181015183820152602001610808565b50505050905090810190601f16801561084d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a03166000908152602091909152604090205460ff1690565b6108e7826002836040518082805190602001908083835b602083106108b35780518252601f199092019160209182019101610894565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050610971565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b7004898260405180806020018281038252838181518152602001915080519060200190808383600083811015610820578181015183820152602001610808565b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0316600090815260209190915260409020805460ff191660011790555600a165627a7a72305820436f91dd993ea0fceed25bc7bf67a1a9b55090680e77a9b17f37b022637fa6640029

Swarm Source

bzzr://436f91dd993ea0fceed25bc7bf67a1a9b55090680e77a9b17f37b022637fa664

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.