ETH Price: $1,927.01 (-1.58%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Claim125778882021-06-06 1:13:021729 days ago1622941982IN
0x0D416ffd...b08B2deEc
0 ETH0.0005617311
Transfer123812702021-05-06 14:29:451760 days ago1620311385IN
0x0D416ffd...b08B2deEc
0.00286893 ETH0.00144969
Set Claim112589982020-11-14 23:57:051932 days ago1605398225IN
0x0D416ffd...b08B2deEc
0 ETH0.0006196713
Set Claim111278402020-10-25 20:54:271953 days ago1603659267IN
0x0D416ffd...b08B2deEc
0 ETH0.000743615.6
Set Claim111204792020-10-24 17:39:451954 days ago1603561185IN
0x0D416ffd...b08B2deEc
0 ETH0.0008577918
Set Claim111204432020-10-24 17:30:321954 days ago1603560632IN
0x0D416ffd...b08B2deEc
0 ETH0.000953120
Set Claim111201282020-10-24 16:23:131954 days ago1603556593IN
0x0D416ffd...b08B2deEc
0 ETH0.0011916725
Set Claim111201242020-10-24 16:22:271954 days ago1603556547IN
0x0D416ffd...b08B2deEc
0 ETH0.0011916725
Set Claim111198712020-10-24 15:23:401954 days ago1603553020IN
0x0D416ffd...b08B2deEc
0 ETH0.0010486722
Set Claim111197812020-10-24 15:07:421954 days ago1603552062IN
0x0D416ffd...b08B2deEc
0 ETH0.0010915722.9
Set Claim111177532020-10-24 7:39:411954 days ago1603525181IN
0x0D416ffd...b08B2deEc
0 ETH0.0010910222.9
Set Claim111177502020-10-24 7:39:041954 days ago1603525144IN
0x0D416ffd...b08B2deEc
0 ETH0.000953120
Set Claim111163872020-10-24 2:41:581954 days ago1603507318IN
0x0D416ffd...b08B2deEc
0 ETH0.0010677422.4
Set Claim111154212020-10-23 23:06:471954 days ago1603494407IN
0x0D416ffd...b08B2deEc
0 ETH0.0008675318.2
Set Claim111152642020-10-23 22:32:271954 days ago1603492347IN
0x0D416ffd...b08B2deEc
0 ETH0.0009054419
Set Claim111152622020-10-23 22:31:381954 days ago1603492298IN
0x0D416ffd...b08B2deEc
0 ETH0.0009056719
Set Claim111152572020-10-23 22:30:461954 days ago1603492246IN
0x0D416ffd...b08B2deEc
0 ETH0.0009056719
Set Claim111152522020-10-23 22:29:241954 days ago1603492164IN
0x0D416ffd...b08B2deEc
0 ETH0.0009056719
Set Claim111152222020-10-23 22:24:091954 days ago1603491849IN
0x0D416ffd...b08B2deEc
0 ETH0.0008675318.2
Set Claim111146672020-10-23 20:18:161955 days ago1603484296IN
0x0D416ffd...b08B2deEc
0 ETH0.0011916725
Set Claim111146622020-10-23 20:16:541955 days ago1603484214IN
0x0D416ffd...b08B2deEc
0 ETH0.0011916725
Set Claim111145982020-10-23 20:01:291955 days ago1603483289IN
0x0D416ffd...b08B2deEc
0 ETH0.0011913725
Set Claim111145782020-10-23 19:57:111955 days ago1603483031IN
0x0D416ffd...b08B2deEc
0 ETH0.0011916725
Set Claim111145482020-10-23 19:48:311955 days ago1603482511IN
0x0D416ffd...b08B2deEc
0 ETH0.0011916725
Set Claim111145472020-10-23 19:48:261955 days ago1603482506IN
0x0D416ffd...b08B2deEc
0 ETH0.0011916725
View all transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Registry

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

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

// TAKEN FROM https://github.com/OpenZeppelin/openzeppelin-solidity/commit/5daaf60d11ee2075260d0f3adfb22b1c536db983
pragma solidity ^0.4.24;


/**
 * @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;
  }
}


// This is an implementation (with some adaptations) of uPort erc780: https://etherscan.io/address/0xdb55d40684e7dc04655a9789937214b493a2c2c6#code && https://github.com/ethereum/EIPs/issues/780

contract Registry is Ownable {

    mapping(address =>
    mapping(address =>
    mapping(bytes32 =>
    mapping(bytes32 => bytes32)))) registry;

    event ClaimSet(
        address indexed subject,
        address indexed issuer,
        bytes32 indexed id,
        bytes32 key,
        bytes32 data,
        uint updatedAt
    );

    event ClaimRemoved(
        address indexed subject,
        address indexed issuer,
        bytes32 indexed id,
        bytes32 key,
        uint removedAt
    );

    function setClaim(
        address subject,
        address issuer,
        bytes32 id,
        bytes32 key,
        bytes32 data
    ) public {
        require(msg.sender == issuer || msg.sender == owner);
        registry[subject][issuer][id][key] = data;
        emit ClaimSet(subject, issuer, id, key, data, now);
    }

    function getClaim(
        address subject,
        address issuer,
        bytes32 id,
        bytes32 key
    )
    public view returns(bytes32) {
        return registry[subject][issuer][id][key];
    }

    function removeClaim(
        address subject,
        address issuer,
        bytes32 id,
        bytes32 key
    ) public {
        require(
            msg.sender == subject || msg.sender == issuer || msg.sender == owner
        );
        delete registry[subject][issuer][id][key];
        emit ClaimRemoved(subject, issuer, id, key, now);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"subject","type":"address"},{"name":"issuer","type":"address"},{"name":"id","type":"bytes32"},{"name":"key","type":"bytes32"}],"name":"getClaim","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","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":"subject","type":"address"},{"name":"issuer","type":"address"},{"name":"id","type":"bytes32"},{"name":"key","type":"bytes32"}],"name":"removeClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"subject","type":"address"},{"name":"issuer","type":"address"},{"name":"id","type":"bytes32"},{"name":"key","type":"bytes32"},{"name":"data","type":"bytes32"}],"name":"setClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"subject","type":"address"},{"indexed":true,"name":"issuer","type":"address"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"key","type":"bytes32"},{"indexed":false,"name":"data","type":"bytes32"},{"indexed":false,"name":"updatedAt","type":"uint256"}],"name":"ClaimSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"subject","type":"address"},{"indexed":true,"name":"issuer","type":"address"},{"indexed":true,"name":"id","type":"bytes32"},{"indexed":false,"name":"key","type":"bytes32"},{"indexed":false,"name":"removedAt","type":"uint256"}],"name":"ClaimRemoved","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"}]

608060405260008054600160a060020a03191633179055610470806100256000396000f3006080604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630eb62699811461007c578063715018a6146100bb5780638da5cb5b146100d2578063d395394414610103578063e9f6063e14610130578063f2fde38b14610160575b600080fd5b34801561008857600080fd5b506100a9600160a060020a0360043581169060243516604435606435610181565b60408051918252519081900360200190f35b3480156100c757600080fd5b506100d06101bd565b005b3480156100de57600080fd5b506100e7610229565b60408051600160a060020a039092168252519081900360200190f35b34801561010f57600080fd5b506100d0600160a060020a0360043581169060243516604435606435610238565b34801561013c57600080fd5b506100d0600160a060020a03600435811690602435166044356064356084356102f4565b34801561016c57600080fd5b506100d0600160a060020a03600435166103a4565b600160a060020a039384166000908152600160209081526040808320959096168252938452848120928152918352838220908252909152205490565b600054600160a060020a031633146101d457600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b33600160a060020a0385161480610257575033600160a060020a038416145b8061026c5750600054600160a060020a031633145b151561027757600080fd5b600160a060020a0380851660008181526001602090815260408083209488168084529482528083208784528252808320868452825280832092909255815185815242918101919091528151869493927fab1becf5c2499ad261b146bd10b18f626724242f55207bdd9f57c19f7b4aa863928290030190a450505050565b33600160a060020a03851614806103155750600054600160a060020a031633145b151561032057600080fd5b600160a060020a0380861660008181526001602090815260408083209489168084529482528083208884528252808320878452825291829020859055815186815290810185905242818301529051869392917ffd62056b5eaee89c8612d04850d81260c02d8824288386f31a9adec01067c4b1919081900360600190a45050505050565b600054600160a060020a031633146103bb57600080fd5b6103c4816103c7565b50565b600160a060020a03811615156103dc57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582063e278a0be1f9679ed8d933e25fdaa6544bc372345a3b3472ff5eace21a612980029

Deployed Bytecode

0x6080604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630eb62699811461007c578063715018a6146100bb5780638da5cb5b146100d2578063d395394414610103578063e9f6063e14610130578063f2fde38b14610160575b600080fd5b34801561008857600080fd5b506100a9600160a060020a0360043581169060243516604435606435610181565b60408051918252519081900360200190f35b3480156100c757600080fd5b506100d06101bd565b005b3480156100de57600080fd5b506100e7610229565b60408051600160a060020a039092168252519081900360200190f35b34801561010f57600080fd5b506100d0600160a060020a0360043581169060243516604435606435610238565b34801561013c57600080fd5b506100d0600160a060020a03600435811690602435166044356064356084356102f4565b34801561016c57600080fd5b506100d0600160a060020a03600435166103a4565b600160a060020a039384166000908152600160209081526040808320959096168252938452848120928152918352838220908252909152205490565b600054600160a060020a031633146101d457600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b33600160a060020a0385161480610257575033600160a060020a038416145b8061026c5750600054600160a060020a031633145b151561027757600080fd5b600160a060020a0380851660008181526001602090815260408083209488168084529482528083208784528252808320868452825280832092909255815185815242918101919091528151869493927fab1becf5c2499ad261b146bd10b18f626724242f55207bdd9f57c19f7b4aa863928290030190a450505050565b33600160a060020a03851614806103155750600054600160a060020a031633145b151561032057600080fd5b600160a060020a0380861660008181526001602090815260408083209489168084529482528083208884528252808320878452825291829020859055815186815290810185905242818301529051869392917ffd62056b5eaee89c8612d04850d81260c02d8824288386f31a9adec01067c4b1919081900360600190a45050505050565b600054600160a060020a031633146103bb57600080fd5b6103c4816103c7565b50565b600160a060020a03811615156103dc57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582063e278a0be1f9679ed8d933e25fdaa6544bc372345a3b3472ff5eace21a612980029

Swarm Source

bzzr://63e278a0be1f9679ed8d933e25fdaa6544bc372345a3b3472ff5eace21a61298

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.