Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 67 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Change Owner | 14792134 | 917 days ago | IN | 0 ETH | 0.00084393 | ||||
Set Tradable For... | 14792124 | 917 days ago | IN | 0 ETH | 0.01802845 | ||||
Change Owner | 14704589 | 931 days ago | IN | 0 ETH | 0.00140655 | ||||
Set Tradable For... | 14704268 | 931 days ago | IN | 0 ETH | 0.06818548 | ||||
Change Owner | 14526602 | 959 days ago | IN | 0 ETH | 0.00168786 | ||||
Set Tradable For... | 14519384 | 960 days ago | IN | 0 ETH | 0.0652358 | ||||
Set Tradable For... | 14448286 | 971 days ago | IN | 0 ETH | 0.04947144 | ||||
Set Tradable For... | 14366340 | 984 days ago | IN | 0 ETH | 0.1374807 | ||||
Set Tradable For... | 14177898 | 1013 days ago | IN | 0 ETH | 0.08811575 | ||||
Change Owner | 14067694 | 1030 days ago | IN | 0 ETH | 0.00253179 | ||||
Set Tradable For... | 14067686 | 1030 days ago | IN | 0 ETH | 0.16963128 | ||||
Set Tradable For... | 13990268 | 1042 days ago | IN | 0 ETH | 0.333697 | ||||
Change Owner | 13796958 | 1072 days ago | IN | 0 ETH | 0.00140655 | ||||
Set Tradable For... | 13796942 | 1072 days ago | IN | 0 ETH | 0.07533844 | ||||
Set Tradable For... | 13751041 | 1079 days ago | IN | 0 ETH | 0.17377057 | ||||
Set Tradable For... | 13690361 | 1089 days ago | IN | 0 ETH | 0.14317912 | ||||
Set Tradable For... | 13648511 | 1096 days ago | IN | 0 ETH | 0.17286934 | ||||
Set Tradable For... | 13612974 | 1101 days ago | IN | 0 ETH | 0.53685608 | ||||
Set Tradable For... | 13587863 | 1105 days ago | IN | 0 ETH | 0.18103338 | ||||
Set Tradable For... | 13581368 | 1106 days ago | IN | 0 ETH | 0.01643964 | ||||
Change Owner | 13549625 | 1111 days ago | IN | 0 ETH | 0.00379768 | ||||
Set Tradable For... | 13549551 | 1111 days ago | IN | 0 ETH | 0.42532555 | ||||
Change Owner | 13486892 | 1121 days ago | IN | 0 ETH | 0.00309441 | ||||
Set Tradable For... | 13486875 | 1121 days ago | IN | 0 ETH | 0.1307034 | ||||
Change Owner | 13442806 | 1128 days ago | IN | 0 ETH | 0.00253179 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TokenRegistry
Compiler Version
v0.8.3+commit.8d00100c
Optimization Enabled:
Yes with 999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// Copyright (C) 2018 Argent Labs Ltd. <https://argent.xyz> // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // SPDX-License-Identifier: GPL-3.0-only pragma solidity ^0.8.3; import "./ITokenRegistry.sol"; import "./base/Managed.sol"; /** * @title TokenRegistry * @notice Contract storing a list of tokens that can be safely traded. * @notice Only the owner can make a token tradable. Managers can make a token untradable. */ contract TokenRegistry is ITokenRegistry, Managed { // Tradable flag per token mapping(address => bool) public isTradable; function isTokenTradable(address _token) external override view returns (bool _isTradable) { _isTradable = isTradable[_token]; } function areTokensTradable(address[] calldata _tokens) external override view returns (bool _areTradable) { for (uint256 i = 0; i < _tokens.length; i++) { if(!isTradable[_tokens[i]]) { return false; } } return true; } function getTradableForTokenList(address[] calldata _tokens) external view returns (bool[] memory _tradable) { _tradable = new bool[](_tokens.length); for (uint256 i = 0; i < _tokens.length; i++) { _tradable[i] = isTradable[_tokens[i]]; } } function setTradableForTokenList(address[] calldata _tokens, bool[] calldata _tradable) external { require(_tokens.length == _tradable.length, "TR: Array length mismatch"); if(msg.sender == owner) { for (uint256 i = 0; i < _tokens.length; i++) { isTradable[_tokens[i]] = _tradable[i]; } } else { require(managers[msg.sender], "TR: Unauthorised"); for (uint256 i = 0; i < _tokens.length; i++) { require(_tradable[i] == false, "TR: Unauthorised operation"); isTradable[_tokens[i]] = _tradable[i]; } } } }
// This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // SPDX-License-Identifier: GPL-3.0-only pragma solidity ^0.8.3; /** * @title ITokenRegistry * @notice TokenRegistry interface */ interface ITokenRegistry { function isTokenTradable(address _token) external view returns (bool _isTradable); function areTokensTradable(address[] calldata _tokens) external view returns (bool _areTradable); }
// Copyright (C) 2018 Argent Labs Ltd. <https://argent.xyz> // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // SPDX-License-Identifier: GPL-3.0-only pragma solidity ^0.8.3; import "./Owned.sol"; /** * @title Managed * @notice Basic contract that defines a set of managers. Only the owner can add/remove managers. * @author Julien Niset, Olivier VDB - <[email protected]>, <[email protected]> */ contract Managed is Owned { // The managers mapping (address => bool) public managers; /** * @notice Throws if the sender is not a manager. */ modifier onlyManager { require(managers[msg.sender] == true, "M: Must be manager"); _; } event ManagerAdded(address indexed _manager); event ManagerRevoked(address indexed _manager); /** * @notice Adds a manager. * @param _manager The address of the manager. */ function addManager(address _manager) external onlyOwner { require(_manager != address(0), "M: Address must not be null"); if (managers[_manager] == false) { managers[_manager] = true; emit ManagerAdded(_manager); } } /** * @notice Revokes a manager. * @param _manager The address of the manager. */ function revokeManager(address _manager) external virtual onlyOwner { // solhint-disable-next-line reason-string require(managers[_manager] == true, "M: Target must be an existing manager"); delete managers[_manager]; emit ManagerRevoked(_manager); } }
// Copyright (C) 2018 Argent Labs Ltd. <https://argent.xyz> // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // SPDX-License-Identifier: GPL-3.0-only pragma solidity >=0.5.4 <0.9.0; /** * @title Owned * @notice Basic contract to define an owner. * @author Julien Niset - <[email protected]> */ contract Owned { // The owner address public owner; event OwnerChanged(address indexed _newOwner); /** * @notice Throws if the sender is not the owner. */ modifier onlyOwner { require(msg.sender == owner, "Must be owner"); _; } constructor() public { owner = msg.sender; } /** * @notice Lets the owner transfer ownership of the contract to a new owner. * @param _newOwner The new owner. */ function changeOwner(address _newOwner) external onlyOwner { require(_newOwner != address(0), "Address must not be null"); owner = _newOwner; emit OwnerChanged(_newOwner); } }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 999 }, "evmVersion": "istanbul", "libraries": { "": {} }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_manager","type":"address"}],"name":"ManagerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_manager","type":"address"}],"name":"ManagerRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"name":"addManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"}],"name":"areTokensTradable","outputs":[{"internalType":"bool","name":"_areTradable","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"}],"name":"getTradableForTokenList","outputs":[{"internalType":"bool[]","name":"_tradable","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"isTokenTradable","outputs":[{"internalType":"bool","name":"_isTradable","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTradable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"managers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"name":"revokeManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"bool[]","name":"_tradable","type":"bool[]"}],"name":"setTradableForTokenList","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610b5f806100326000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063aa1e1eec11610076578063b699e2b81161005b578063b699e2b8146101a0578063e153ed09146101b3578063fdff9b4d146101d3576100be565b8063aa1e1eec14610161578063af730b1a14610174576100be565b8063447b4a47116100a7578063447b4a47146100eb5780638da5cb5b14610123578063a6f9dae11461014e576100be565b80632d06177a146100c3578063377e32e6146100d8575b600080fd5b6100d66100d13660046109c5565b6101f6565b005b6100d66100e63660046109c5565b61030b565b61010e6100f93660046109c5565b60026020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b600054610136906001600160a01b031681565b6040516001600160a01b03909116815260200161011a565b6100d661015c3660046109c5565b610432565b61010e61016f3660046109f3565b610532565b61010e6101823660046109c5565b6001600160a01b031660009081526002602052604090205460ff1690565b6100d66101ae366004610a33565b6105c0565b6101c66101c13660046109f3565b610877565b60405161011a9190610abc565b61010e6101e13660046109c5565b60016020526000908152604090205460ff1681565b6000546001600160a01b031633146102455760405162461bcd60e51b815260206004820152600d60248201526c26bab9ba1031329037bbb732b960991b60448201526064015b60405180910390fd5b6001600160a01b03811661029b5760405162461bcd60e51b815260206004820152601b60248201527f4d3a2041646472657373206d757374206e6f74206265206e756c6c0000000000604482015260640161023c565b6001600160a01b03811660009081526001602052604090205460ff16610308576001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f3b4a40cccf2058c593542587329dd385be4f0b588db5471fbd9598e56dd7093a9190a25b50565b6000546001600160a01b031633146103555760405162461bcd60e51b815260206004820152600d60248201526c26bab9ba1031329037bbb732b960991b604482015260640161023c565b6001600160a01b03811660009081526001602081905260409091205460ff161515146103e95760405162461bcd60e51b815260206004820152602560248201527f4d3a20546172676574206d75737420626520616e206578697374696e67206d6160448201527f6e61676572000000000000000000000000000000000000000000000000000000606482015260840161023c565b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe5def11e0516f317f9c37b8835aec29fc01db4d4b6d6fecaca339d3596a29bc19190a250565b6000546001600160a01b0316331461047c5760405162461bcd60e51b815260206004820152600d60248201526c26bab9ba1031329037bbb732b960991b604482015260640161023c565b6001600160a01b0381166104d25760405162461bcd60e51b815260206004820152601860248201527f41646472657373206d757374206e6f74206265206e756c6c0000000000000000604482015260640161023c565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117825560405190917fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3691a250565b6000805b828110156105b4576002600085858481811061056257634e487b7160e01b600052603260045260246000fd5b905060200201602081019061057791906109c5565b6001600160a01b0316815260208101919091526040016000205460ff166105a25760009150506105ba565b806105ac81610b02565b915050610536565b50600190505b92915050565b82811461060f5760405162461bcd60e51b815260206004820152601960248201527f54523a204172726179206c656e677468206d69736d6174636800000000000000604482015260640161023c565b6000546001600160a01b03163314156106db5760005b838110156106d55782828281811061064d57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906106629190610a9c565b6002600087878581811061068657634e487b7160e01b600052603260045260246000fd5b905060200201602081019061069b91906109c5565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806106cd81610b02565b915050610625565b50610871565b3360009081526001602052604090205460ff1661073a5760405162461bcd60e51b815260206004820152601060248201527f54523a20556e617574686f726973656400000000000000000000000000000000604482015260640161023c565b60005b8381101561086f5782828281811061076557634e487b7160e01b600052603260045260246000fd5b905060200201602081019061077a9190610a9c565b156107c75760405162461bcd60e51b815260206004820152601a60248201527f54523a20556e617574686f7269736564206f7065726174696f6e000000000000604482015260640161023c565b8282828181106107e757634e487b7160e01b600052603260045260246000fd5b90506020020160208101906107fc9190610a9c565b6002600087878581811061082057634e487b7160e01b600052603260045260246000fd5b905060200201602081019061083591906109c5565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061086781610b02565b91505061073d565b505b50505050565b60608167ffffffffffffffff8111156108a057634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156108c9578160200160208202803683370190505b50905060005b8281101561097457600260008585848181106108fb57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061091091906109c5565b6001600160a01b03168152602081019190915260400160002054825160ff9091169083908390811061095257634e487b7160e01b600052603260045260246000fd5b911515602092830291909101909101528061096c81610b02565b9150506108cf565b5092915050565b60008083601f84011261098c578182fd5b50813567ffffffffffffffff8111156109a3578182fd5b6020830191508360208260051b85010111156109be57600080fd5b9250929050565b6000602082840312156109d6578081fd5b81356001600160a01b03811681146109ec578182fd5b9392505050565b60008060208385031215610a05578081fd5b823567ffffffffffffffff811115610a1b578182fd5b610a278582860161097b565b90969095509350505050565b60008060008060408587031215610a48578182fd5b843567ffffffffffffffff80821115610a5f578384fd5b610a6b8883890161097b565b90965094506020870135915080821115610a83578384fd5b50610a908782880161097b565b95989497509550505050565b600060208284031215610aad578081fd5b813580151581146109ec578182fd5b6020808252825182820181905260009190848201906040850190845b81811015610af6578351151583529284019291840191600101610ad8565b50909695505050505050565b6000600019821415610b2257634e487b7160e01b81526011600452602481fd5b506001019056fea26469706673582212208718757081fc6392b38d756ce0baad470d622425d4357f9a378fd963bb82118164736f6c63430008030033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063aa1e1eec11610076578063b699e2b81161005b578063b699e2b8146101a0578063e153ed09146101b3578063fdff9b4d146101d3576100be565b8063aa1e1eec14610161578063af730b1a14610174576100be565b8063447b4a47116100a7578063447b4a47146100eb5780638da5cb5b14610123578063a6f9dae11461014e576100be565b80632d06177a146100c3578063377e32e6146100d8575b600080fd5b6100d66100d13660046109c5565b6101f6565b005b6100d66100e63660046109c5565b61030b565b61010e6100f93660046109c5565b60026020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b600054610136906001600160a01b031681565b6040516001600160a01b03909116815260200161011a565b6100d661015c3660046109c5565b610432565b61010e61016f3660046109f3565b610532565b61010e6101823660046109c5565b6001600160a01b031660009081526002602052604090205460ff1690565b6100d66101ae366004610a33565b6105c0565b6101c66101c13660046109f3565b610877565b60405161011a9190610abc565b61010e6101e13660046109c5565b60016020526000908152604090205460ff1681565b6000546001600160a01b031633146102455760405162461bcd60e51b815260206004820152600d60248201526c26bab9ba1031329037bbb732b960991b60448201526064015b60405180910390fd5b6001600160a01b03811661029b5760405162461bcd60e51b815260206004820152601b60248201527f4d3a2041646472657373206d757374206e6f74206265206e756c6c0000000000604482015260640161023c565b6001600160a01b03811660009081526001602052604090205460ff16610308576001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517f3b4a40cccf2058c593542587329dd385be4f0b588db5471fbd9598e56dd7093a9190a25b50565b6000546001600160a01b031633146103555760405162461bcd60e51b815260206004820152600d60248201526c26bab9ba1031329037bbb732b960991b604482015260640161023c565b6001600160a01b03811660009081526001602081905260409091205460ff161515146103e95760405162461bcd60e51b815260206004820152602560248201527f4d3a20546172676574206d75737420626520616e206578697374696e67206d6160448201527f6e61676572000000000000000000000000000000000000000000000000000000606482015260840161023c565b6001600160a01b038116600081815260016020526040808220805460ff19169055517fe5def11e0516f317f9c37b8835aec29fc01db4d4b6d6fecaca339d3596a29bc19190a250565b6000546001600160a01b0316331461047c5760405162461bcd60e51b815260206004820152600d60248201526c26bab9ba1031329037bbb732b960991b604482015260640161023c565b6001600160a01b0381166104d25760405162461bcd60e51b815260206004820152601860248201527f41646472657373206d757374206e6f74206265206e756c6c0000000000000000604482015260640161023c565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117825560405190917fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3691a250565b6000805b828110156105b4576002600085858481811061056257634e487b7160e01b600052603260045260246000fd5b905060200201602081019061057791906109c5565b6001600160a01b0316815260208101919091526040016000205460ff166105a25760009150506105ba565b806105ac81610b02565b915050610536565b50600190505b92915050565b82811461060f5760405162461bcd60e51b815260206004820152601960248201527f54523a204172726179206c656e677468206d69736d6174636800000000000000604482015260640161023c565b6000546001600160a01b03163314156106db5760005b838110156106d55782828281811061064d57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906106629190610a9c565b6002600087878581811061068657634e487b7160e01b600052603260045260246000fd5b905060200201602081019061069b91906109c5565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806106cd81610b02565b915050610625565b50610871565b3360009081526001602052604090205460ff1661073a5760405162461bcd60e51b815260206004820152601060248201527f54523a20556e617574686f726973656400000000000000000000000000000000604482015260640161023c565b60005b8381101561086f5782828281811061076557634e487b7160e01b600052603260045260246000fd5b905060200201602081019061077a9190610a9c565b156107c75760405162461bcd60e51b815260206004820152601a60248201527f54523a20556e617574686f7269736564206f7065726174696f6e000000000000604482015260640161023c565b8282828181106107e757634e487b7160e01b600052603260045260246000fd5b90506020020160208101906107fc9190610a9c565b6002600087878581811061082057634e487b7160e01b600052603260045260246000fd5b905060200201602081019061083591906109c5565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061086781610b02565b91505061073d565b505b50505050565b60608167ffffffffffffffff8111156108a057634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156108c9578160200160208202803683370190505b50905060005b8281101561097457600260008585848181106108fb57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061091091906109c5565b6001600160a01b03168152602081019190915260400160002054825160ff9091169083908390811061095257634e487b7160e01b600052603260045260246000fd5b911515602092830291909101909101528061096c81610b02565b9150506108cf565b5092915050565b60008083601f84011261098c578182fd5b50813567ffffffffffffffff8111156109a3578182fd5b6020830191508360208260051b85010111156109be57600080fd5b9250929050565b6000602082840312156109d6578081fd5b81356001600160a01b03811681146109ec578182fd5b9392505050565b60008060208385031215610a05578081fd5b823567ffffffffffffffff811115610a1b578182fd5b610a278582860161097b565b90969095509350505050565b60008060008060408587031215610a48578182fd5b843567ffffffffffffffff80821115610a5f578384fd5b610a6b8883890161097b565b90965094506020870135915080821115610a83578384fd5b50610a908782880161097b565b95989497509550505050565b600060208284031215610aad578081fd5b813580151581146109ec578182fd5b6020808252825182820181905260009190848201906040850190845b81811015610af6578351151583529284019291840191600101610ad8565b50909695505050505050565b6000600019821415610b2257634e487b7160e01b81526011600452602481fd5b506001019056fea26469706673582212208718757081fc6392b38d756ce0baad470d622425d4357f9a378fd963bb82118164736f6c63430008030033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.