Overview
xDAI Balance
xDAI Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,562 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Register | 22035161 | 1081 days ago | IN | 0 xDAI | 0.00013435 | ||||
Register | 21983882 | 1084 days ago | IN | 0 xDAI | 0.0001151 | ||||
Sponsor | 21983853 | 1084 days ago | IN | 0 xDAI | 0.00003433 | ||||
Register | 20134646 | 1193 days ago | IN | 0 xDAI | 0.00007682 | ||||
Sponsor | 20134628 | 1193 days ago | IN | 0 xDAI | 0.00002291 | ||||
Register | 19594779 | 1224 days ago | IN | 0 xDAI | 0.00009363 | ||||
Sponsor | 19594761 | 1224 days ago | IN | 0 xDAI | 0.00004578 | ||||
Sponsor | 19268101 | 1243 days ago | IN | 0 xDAI | 0.00002848 | ||||
Sponsor | 19117282 | 1252 days ago | IN | 0 xDAI | 0.00004578 | ||||
Sponsor | 19051733 | 1256 days ago | IN | 0 xDAI | 0.00005723 | ||||
Register | 18891041 | 1266 days ago | IN | 0 xDAI | 0.00008442 | ||||
Sponsor | 18891024 | 1266 days ago | IN | 0 xDAI | 0.00009157 | ||||
Sponsor | 18890998 | 1266 days ago | IN | 0 xDAI | 0.00009157 | ||||
Sponsor | 18770305 | 1274 days ago | IN | 0 xDAI | 0.00002289 | ||||
Sponsor | 18496916 | 1291 days ago | IN | 0 xDAI | 0.00002289 | ||||
Sponsor | 18377359 | 1299 days ago | IN | 0 xDAI | 0.00022893 | ||||
Register | 18262234 | 1306 days ago | IN | 0 xDAI | 0.00009392 | ||||
Sponsor | 18262209 | 1306 days ago | IN | 0 xDAI | 0.00002802 | ||||
Register | 18240752 | 1307 days ago | IN | 0 xDAI | 0.00007674 | ||||
Register | 18210391 | 1309 days ago | IN | 0 xDAI | 0.00015349 | ||||
Register | 18156226 | 1312 days ago | IN | 0 xDAI | 0.00009208 | ||||
Sponsor | 18156211 | 1312 days ago | IN | 0 xDAI | 0.00002747 | ||||
Register | 18149673 | 1312 days ago | IN | 0 xDAI | 0.00012701 | ||||
Register | 18146965 | 1313 days ago | IN | 0 xDAI | 0.00014516 | ||||
Sponsor | 18146615 | 1313 days ago | IN | 0 xDAI | 0.00004578 |
View more zero value Internal Transactions in Advanced View mode
Loading...
Loading
Contract Name:
BrightIdUserRegistry
Compiler Version
v0.5.17+commit.d19bba13
Optimization Enabled:
Yes with 20 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at gnosisscan.io on 2022-08-03 */ // File @openzeppelin/contracts/GSN/[email protected] pragma solidity ^0.5.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File @openzeppelin/contracts/ownership/[email protected] pragma solidity ^0.5.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return _msgSender() == _owner; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File contracts/verifiedUserRegistry/IVerifiedUserRegistry.sol pragma solidity ^0.5.17; /** * @dev Interface of the registry of verified users. */ interface IVerifiedUserRegistry { function isVerifiedUser(address _user) external view returns (bool); } // File contracts/verifiedUserRegistry/BrightIdUserRegistry.sol pragma solidity ^0.5.17; contract BrightIdUserRegistry is Ownable, IVerifiedUserRegistry { string private constant ERROR_NEWER_VERIFICATION = 'NEWER VERIFICATION REGISTERED BEFORE'; string private constant ERROR_NOT_AUTHORIZED = 'NOT AUTHORIZED'; string private constant ERROR_INVALID_VERIFIER = 'INVALID VERIFIER'; string private constant ERROR_INVALID_CONTEXT = 'INVALID CONTEXT'; bytes32 public context; address public verifier; struct Verification { uint256 time; bool isVerified; } mapping(address => Verification) public verifications; event SetBrightIdSettings(bytes32 context, address verifier); event Sponsor(address indexed addr); /** * @param _context BrightID context used for verifying users * @param _verifier BrightID verifier address that signs BrightID verifications */ constructor(bytes32 _context, address _verifier) public { // ecrecover returns zero on error require(_verifier != address(0), ERROR_INVALID_VERIFIER); context = _context; verifier = _verifier; } /** * @notice Sponsor a BrightID user by context id * @param addr BrightID context id */ function sponsor(address addr) public { emit Sponsor(addr); } /** * @notice Set BrightID settings * @param _context BrightID context used for verifying users * @param _verifier BrightID verifier address that signs BrightID verifications */ function setSettings(bytes32 _context, address _verifier) external onlyOwner { // ecrecover returns zero on error require(_verifier != address(0), ERROR_INVALID_VERIFIER); context = _context; verifier = _verifier; emit SetBrightIdSettings(_context, _verifier); } /** * @notice Check a user is verified or not * @param _user BrightID context id used for verifying users */ function isVerifiedUser(address _user) external view returns (bool) { return verifications[_user].isVerified; } /** * @notice Register a user by BrightID verification * @param _context The context used in the users verification * @param _addrs The history of addresses used by this user in this context * @param _timestamp The BrightID node's verification timestamp * @param _v Component of signature * @param _r Component of signature * @param _s Component of signature */ function register( bytes32 _context, address[] calldata _addrs, uint _timestamp, uint8 _v, bytes32 _r, bytes32 _s ) external { require(context == _context, ERROR_INVALID_CONTEXT); require(verifications[_addrs[0]].time < _timestamp, ERROR_NEWER_VERIFICATION); bytes32 message = keccak256(abi.encodePacked(_context, _addrs, _timestamp)); address signer = ecrecover(message, _v, _r, _s); require(verifier == signer, ERROR_NOT_AUTHORIZED); verifications[_addrs[0]].time = _timestamp; verifications[_addrs[0]].isVerified = true; for(uint i = 1; i < _addrs.length; i++) { // update time of all previous context ids to be sure no one can use old verifications again verifications[_addrs[i]].time = _timestamp; // set old verifications unverified verifications[_addrs[i]].isVerified = false; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"bytes32","name":"_context","type":"bytes32"},{"internalType":"address","name":"_verifier","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"context","type":"bytes32"},{"indexed":false,"internalType":"address","name":"verifier","type":"address"}],"name":"SetBrightIdSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"}],"name":"Sponsor","type":"event"},{"constant":true,"inputs":[],"name":"context","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isVerifiedUser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_context","type":"bytes32"},{"internalType":"address[]","name":"_addrs","type":"address[]"},{"internalType":"uint256","name":"_timestamp","type":"uint256"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"}],"name":"register","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_context","type":"bytes32"},{"internalType":"address","name":"_verifier","type":"address"}],"name":"setSettings","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"sponsor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"verifications","outputs":[{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"bool","name":"isVerified","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"verifier","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610be1380380610be18339818101604052604081101561003357600080fd5b508051602090910151600061004f6001600160e01b0361017d16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152601081526f24a72b20a624a2102b22a924a324a2a960811b60208201526001600160a01b0382166101525760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156101175781810151838201526020016100ff565b50505050905090810190601f1680156101445780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600191909155600280546001600160a01b0319166001600160a01b03909216919091179055610181565b3390565b610a51806101906000396000f3fe608060405234801561001057600080fd5b50600436106100995760003560e01c8063080c98da1461009e5780632b7ac3f3146100dd5780633da1c0c31461010157806348fde2951461013b578063715018a614610169578063766c4f37146101715780638b9ede47146101975780638da5cb5b146102215780638f32d59b14610229578063d0496d6a14610231578063f2fde38b1461024b575b600080fd5b6100c4600480360360208110156100b457600080fd5b50356001600160a01b0316610271565b6040805192835290151560208301528051918290030190f35b6100e561028d565b604080516001600160a01b039092168252519081900360200190f35b6101276004803603602081101561011757600080fd5b50356001600160a01b031661029c565b604080519115158252519081900360200190f35b6101676004803603604081101561015157600080fd5b50803590602001356001600160a01b03166102bd565b005b610167610420565b6101676004803603602081101561018757600080fd5b50356001600160a01b03166104b1565b610167600480360360c08110156101ad57600080fd5b81359190810190604081016020820135600160201b8111156101ce57600080fd5b8201836020820111156101e057600080fd5b803590602001918460208302840111600160201b8311171561020157600080fd5b919350915080359060ff60208201351690604081013590606001356104e8565b6100e5610882565b610127610891565b6102396108b5565b60408051918252519081900360200190f35b6101676004803603602081101561026157600080fd5b50356001600160a01b03166108bb565b6003602052600090815260409020805460019091015460ff1682565b6002546001600160a01b031681565b6001600160a01b031660009081526003602052604090206001015460ff1690565b6102c5610891565b610304576040805162461bcd60e51b815260206004820181905260248201526000805160206109d9833981519152604482015290519081900360640190fd5b60408051808201909152601081526f24a72b20a624a2102b22a924a324a2a960811b60208201526001600160a01b0382166103bd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561038257818101518382015260200161036a565b50505050905090810190601f1680156103af5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506001829055600280546001600160a01b0319166001600160a01b03831690811790915560408051848152602081019290925280517feca6c30ee9122002d5201d3e96a6b071b79a1ed10950dda3730c970c79e0d8509281900390910190a15050565b610428610891565b610467576040805162461bcd60e51b815260206004820181905260248201526000805160206109d9833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6040516001600160a01b038216907f45731ed8c44f9ae4a6da66b49b81184a6565962041a2485f62942faa4da6df6090600090a250565b86600154146040518060400160405280600f81526020016e125395905312510810d3d395115615608a1b815250906105615760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561038257818101518382015260200161036a565b5083600360008888600081811061057457fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060000154106040518060600160405280602481526020016109f9602491399061060e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561038257818101518382015260200161036a565b506000878787876040516020018085815260200184846020028082843780830192505050828152602001945050505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156106b5573d6000803e3d6000fd5b505060408051601f19810151600254828401909352600e82526d1393d5081055551213d49256915160921b6020830152935091506001600160a01b038084169116146107425760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561038257818101518382015260200161036a565b5085600360008a8a600081811061075557fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600001819055506001600360008a8a600081811061079f57fe5b602090810292909201356001600160a01b03168352508101919091526040016000206001908101805460ff1916921515929092179091555b878110156108765786600360008b8b858181106107f057fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600001819055506000600360008b8b8581811061083957fe5b602090810292909201356001600160a01b03168352508101919091526040016000206001908101805460ff191692151592909217909155016107d7565b50505050505050505050565b6000546001600160a01b031690565b600080546001600160a01b03166108a661090e565b6001600160a01b031614905090565b60015481565b6108c3610891565b610902576040805162461bcd60e51b815260206004820181905260248201526000805160206109d9833981519152604482015290519081900360640190fd5b61090b81610912565b50565b3390565b6001600160a01b0381166109575760405162461bcd60e51b81526004018080602001828103825260268152602001806109b36026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724e4557455220564552494649434154494f4e2052454749535445524544204245464f5245a265627a7a72315820af555a2a5774fbc29d3c4e0377208eaf116c2e8fa75a45c6f7961336223ff9aa64736f6c63430005110032636c722e66756e64000000000000000000000000000000000000000000000000000000000000000000000000b1d71f62bee34e9fc349234c201090c33bcdf6db
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100995760003560e01c8063080c98da1461009e5780632b7ac3f3146100dd5780633da1c0c31461010157806348fde2951461013b578063715018a614610169578063766c4f37146101715780638b9ede47146101975780638da5cb5b146102215780638f32d59b14610229578063d0496d6a14610231578063f2fde38b1461024b575b600080fd5b6100c4600480360360208110156100b457600080fd5b50356001600160a01b0316610271565b6040805192835290151560208301528051918290030190f35b6100e561028d565b604080516001600160a01b039092168252519081900360200190f35b6101276004803603602081101561011757600080fd5b50356001600160a01b031661029c565b604080519115158252519081900360200190f35b6101676004803603604081101561015157600080fd5b50803590602001356001600160a01b03166102bd565b005b610167610420565b6101676004803603602081101561018757600080fd5b50356001600160a01b03166104b1565b610167600480360360c08110156101ad57600080fd5b81359190810190604081016020820135600160201b8111156101ce57600080fd5b8201836020820111156101e057600080fd5b803590602001918460208302840111600160201b8311171561020157600080fd5b919350915080359060ff60208201351690604081013590606001356104e8565b6100e5610882565b610127610891565b6102396108b5565b60408051918252519081900360200190f35b6101676004803603602081101561026157600080fd5b50356001600160a01b03166108bb565b6003602052600090815260409020805460019091015460ff1682565b6002546001600160a01b031681565b6001600160a01b031660009081526003602052604090206001015460ff1690565b6102c5610891565b610304576040805162461bcd60e51b815260206004820181905260248201526000805160206109d9833981519152604482015290519081900360640190fd5b60408051808201909152601081526f24a72b20a624a2102b22a924a324a2a960811b60208201526001600160a01b0382166103bd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561038257818101518382015260200161036a565b50505050905090810190601f1680156103af5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506001829055600280546001600160a01b0319166001600160a01b03831690811790915560408051848152602081019290925280517feca6c30ee9122002d5201d3e96a6b071b79a1ed10950dda3730c970c79e0d8509281900390910190a15050565b610428610891565b610467576040805162461bcd60e51b815260206004820181905260248201526000805160206109d9833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6040516001600160a01b038216907f45731ed8c44f9ae4a6da66b49b81184a6565962041a2485f62942faa4da6df6090600090a250565b86600154146040518060400160405280600f81526020016e125395905312510810d3d395115615608a1b815250906105615760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561038257818101518382015260200161036a565b5083600360008888600081811061057457fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060000154106040518060600160405280602481526020016109f9602491399061060e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561038257818101518382015260200161036a565b506000878787876040516020018085815260200184846020028082843780830192505050828152602001945050505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156106b5573d6000803e3d6000fd5b505060408051601f19810151600254828401909352600e82526d1393d5081055551213d49256915160921b6020830152935091506001600160a01b038084169116146107425760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561038257818101518382015260200161036a565b5085600360008a8a600081811061075557fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600001819055506001600360008a8a600081811061079f57fe5b602090810292909201356001600160a01b03168352508101919091526040016000206001908101805460ff1916921515929092179091555b878110156108765786600360008b8b858181106107f057fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600001819055506000600360008b8b8581811061083957fe5b602090810292909201356001600160a01b03168352508101919091526040016000206001908101805460ff191692151592909217909155016107d7565b50505050505050505050565b6000546001600160a01b031690565b600080546001600160a01b03166108a661090e565b6001600160a01b031614905090565b60015481565b6108c3610891565b610902576040805162461bcd60e51b815260206004820181905260248201526000805160206109d9833981519152604482015290519081900360640190fd5b61090b81610912565b50565b3390565b6001600160a01b0381166109575760405162461bcd60e51b81526004018080602001828103825260268152602001806109b36026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724e4557455220564552494649434154494f4e2052454749535445524544204245464f5245a265627a7a72315820af555a2a5774fbc29d3c4e0377208eaf116c2e8fa75a45c6f7961336223ff9aa64736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
636c722e66756e64000000000000000000000000000000000000000000000000000000000000000000000000b1d71f62bee34e9fc349234c201090c33bcdf6db
-----Decoded View---------------
Arg [0] : _context (bytes32): 0x636c722e66756e64000000000000000000000000000000000000000000000000
Arg [1] : _verifier (address): 0xb1d71F62bEe34E9Fc349234C201090c33BCdF6DB
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 636c722e66756e64000000000000000000000000000000000000000000000000
Arg [1] : 000000000000000000000000b1d71f62bee34e9fc349234c201090c33bcdf6db
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.