Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
14673262 | 898 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x10CD5fbe...7bdaf42E2 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
GemJoin
Compiler Version
v0.5.12+commit.7709ece9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-10-18 */ // hevm: flattened sources of src/join.sol pragma solidity >=0.5.12; ////// src/lib.sol // 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/>. /* pragma solidity >=0.5.12; */ contract LibNote { event LogNote( bytes4 indexed sig, address indexed usr, bytes32 indexed arg1, bytes32 indexed arg2, bytes data ) anonymous; modifier note { _; assembly { // log an 'anonymous' event with a constant 6 words of calldata // and four indexed topics: selector, caller, arg1 and arg2 let mark := msize() // end of memory ensures zero mstore(0x40, add(mark, 288)) // update free memory pointer mstore(mark, 0x20) // bytes type data offset mstore(add(mark, 0x20), 224) // bytes size (padded) calldatacopy(add(mark, 0x40), 0, 224) // bytes payload log4(mark, 288, // calldata shl(224, shr(224, calldataload(0))), // msg.sig caller(), // msg.sender calldataload(4), // arg1 calldataload(36) // arg2 ) } } } ////// src/join.sol /// join.sol -- Basic token adapters // Copyright (C) 2018 Rain <[email protected]> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero 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 Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. /* pragma solidity >=0.5.12; */ /* import "./lib.sol"; */ interface GemLike_3 { function decimals() external view returns (uint); function transfer(address,uint) external returns (bool); function transferFrom(address,address,uint) external returns (bool); } interface DSTokenLike { function mint(address,uint) external; function burn(address,uint) external; } interface VatLike_6 { function slip(bytes32,address,int) external; function move(address,address,uint) external; } /* Here we provide *adapters* to connect the Vat to arbitrary external token implementations, creating a bounded context for the Vat. The adapters here are provided as working examples: - `GemJoin`: For well behaved ERC20 tokens, with simple transfer semantics. - `ETHJoin`: For native Ether. - `DaiJoin`: For connecting internal Dai balances to an external `DSToken` implementation. In practice, adapter implementations will be varied and specific to individual collateral types, accounting for different transfer semantics and token standards. Adapters need to implement two basic methods: - `join`: enter collateral into the system - `exit`: remove collateral from the system */ contract GemJoin is LibNote { // --- Auth --- mapping (address => uint) public wards; function rely(address usr) external note auth { wards[usr] = 1; } function deny(address usr) external note auth { wards[usr] = 0; } modifier auth { require(wards[msg.sender] == 1, "GemJoin/not-authorized"); _; } VatLike_6 public vat; // CDP Engine bytes32 public ilk; // Collateral Type GemLike_3 public gem; uint public dec; uint public live; // Active Flag constructor(address vat_, bytes32 ilk_, address gem_) public { wards[msg.sender] = 1; live = 1; vat = VatLike_6(vat_); ilk = ilk_; gem = GemLike_3(gem_); dec = gem.decimals(); } function cage() external note auth { live = 0; } function join(address usr, uint wad) external note { require(live == 1, "GemJoin/not-live"); require(int(wad) >= 0, "GemJoin/overflow"); vat.slip(ilk, usr, int(wad)); require(gem.transferFrom(msg.sender, address(this), wad), "GemJoin/failed-transfer"); } function exit(address usr, uint wad) external note { require(wad <= 2 ** 255, "GemJoin/overflow"); vat.slip(ilk, msg.sender, -int(wad)); require(gem.transfer(usr, wad), "GemJoin/failed-transfer"); } } contract DaiJoin is LibNote { // --- Auth --- mapping (address => uint) public wards; function rely(address usr) external note auth { wards[usr] = 1; } function deny(address usr) external note auth { wards[usr] = 0; } modifier auth { require(wards[msg.sender] == 1, "DaiJoin/not-authorized"); _; } VatLike_6 public vat; // CDP Engine DSTokenLike public dai; // Stablecoin Token uint public live; // Active Flag constructor(address vat_, address dai_) public { wards[msg.sender] = 1; live = 1; vat = VatLike_6(vat_); dai = DSTokenLike(dai_); } function cage() external note auth { live = 0; } uint constant ONE = 10 ** 27; function mul(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x); } function join(address usr, uint wad) external note { vat.move(address(this), usr, mul(ONE, wad)); dai.burn(msg.sender, wad); } function exit(address usr, uint wad) external note { require(live == 1, "DaiJoin/not-live"); vat.move(msg.sender, address(this), mul(ONE, wad)); dai.mint(usr, wad); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"vat_","type":"address"},{"internalType":"bytes32","name":"ilk_","type":"bytes32"},{"internalType":"address","name":"gem_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":true,"inputs":[{"indexed":true,"internalType":"bytes4","name":"sig","type":"bytes4"},{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"arg1","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"arg2","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"LogNote","type":"event"},{"constant":false,"inputs":[],"name":"cage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dec","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gem","outputs":[{"internalType":"contract GemLike_3","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ilk","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"join","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"live","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vat","outputs":[{"internalType":"contract VatLike_6","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063957aa58c11610071578063957aa58c146101de5780639c52a7f1146101fc578063b3bcfa8214610240578063bf353dbb1461025e578063c5ce281e146102b6578063ef693bed146102d4576100a9565b806336569e77146100ae5780633b4da69f146100f857806365fae35e14610146578063692450091461018a5780637bd2bea714610194575b600080fd5b6100b6610322565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101446004803603604081101561010e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610348565b005b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106c3565b005b6101926107f1565b005b61019c6108e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101e6610908565b6040518082815260200191505060405180910390f35b61023e6004803603602081101561021257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090e565b005b610248610a3c565b6040518082815260200191505060405180910390f35b6102a06004803603602081101561027457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a42565b6040518082815260200191505060405180910390f35b6102be610a5a565b6040518082815260200191505060405180910390f35b610320600480360360408110156102ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a60565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001600554146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6e6f742d6c6976650000000000000000000000000000000081525060200191505060405180910390fd5b6000811215610437576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637cdd3fde60025484846040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156104ea57600080fd5b505af11580156104fe573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156105df57600080fd5b505af11580156105f3573d6000803e3d6000fd5b505050506040513d602081101561060957600080fd5b810190808051906020019092919050505061068c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f47656d4a6f696e2f6661696c65642d7472616e7366657200000000000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610777576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60006005819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f47656d4a6f696e2f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60045481565b60006020528060005260406000206000915090505481565b60025481565b7f8000000000000000000000000000000000000000000000000000000000000000811115610af6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f47656d4a6f696e2f6f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637cdd3fde60025433846000036040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b158015610bac57600080fd5b505af1158015610bc0573d6000803e3d6000fd5b50505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c6d57600080fd5b505af1158015610c81573d6000803e3d6000fd5b505050506040513d6020811015610c9757600080fd5b8101908080519060200190929190505050610d1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f47656d4a6f696e2f6661696c65642d7472616e7366657200000000000000000081525060200191505060405180910390fd5b5961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a450505056fea265627a7a72315820ff8ee869cc20c51bd4d50786d842615504da352e9d165c4261175c3e468dbcaf64736f6c634300050c0032
Deployed Bytecode Sourcemap
4122:1382:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4122:1382:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4970:295;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4970:295:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4223:65;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4223:65:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4902:62;;;:::i;:::-;;4564:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4616:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4294:65;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4294:65:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4591:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4178:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4178:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4518:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5271:230;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5271:230:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4475:20;;;;;;;;;;;;;:::o;4970:295::-;5048:1;5040:4;;:9;5032:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5101:1;5093:3;5089:13;;5081:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5134:3;;;;;;;;;;;:8;;;5143:3;;5148;5157;5134:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5134:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5134:28:0;;;;5181:3;;;;;;;;;;;:16;;;5198:10;5218:4;5225:3;5181:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5181:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5181:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5181:48:0;;;;;;;;;;;;;;;;5173:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1237:7;1333:3;1327:4;1323:14;1317:4;1310:28;1408:4;1402;1395:18;1500:3;1493:4;1487;1483:15;1476:28;1587:3;1584:1;1577:4;1571;1567:15;1554:37;1909:2;1896:16;1846:1;1833:15;1764:8;1729:1;1716:15;1711:3;1707:25;1702:3;1698:35;1637:3;1631:4;1626:333;1060:910;;;:::o;4223:65::-;4419:1;4398:5;:17;4404:10;4398:17;;;;;;;;;;;;;;;;:22;4390:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4284:1;4271:5;:10;4277:3;4271:10;;;;;;;;;;;;;;;:14;;;;1237:7;1333:3;1327:4;1323:14;1317:4;1310:28;1408:4;1402;1395:18;1500:3;1493:4;1487;1483:15;1476:28;1587:3;1584:1;1577:4;1571;1567:15;1554:37;1909:2;1896:16;1846:1;1833:15;1764:8;1729:1;1716:15;1711:3;1707:25;1702:3;1698:35;1637:3;1631:4;1626:333;1060:910;;:::o;4902:62::-;4419:1;4398:5;:17;4404:10;4398:17;;;;;;;;;;;;;;;;:22;4390:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4955:1;4948:4;:8;;;;1237:7;1333:3;1327:4;1323:14;1317:4;1310:28;1408:4;1402;1395:18;1500:3;1493:4;1487;1483:15;1476:28;1587:3;1584:1;1577:4;1571;1567:15;1554:37;1909:2;1896:16;1846:1;1833:15;1764:8;1729:1;1716:15;1711:3;1707:25;1702:3;1698:35;1637:3;1631:4;1626:333;1060:910;:::o;4564:20::-;;;;;;;;;;;;;:::o;4616:19::-;;;;:::o;4294:65::-;4419:1;4398:5;:17;4404:10;4398:17;;;;;;;;;;;;;;;;:22;4390:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4355:1;4342:5;:10;4348:3;4342:10;;;;;;;;;;;;;;;:14;;;;1237:7;1333:3;1327:4;1323:14;1317:4;1310:28;1408:4;1402;1395:18;1500:3;1493:4;1487;1483:15;1476:28;1587:3;1584:1;1577:4;1571;1567:15;1554:37;1909:2;1896:16;1846:1;1833:15;1764:8;1729:1;1716:15;1711:3;1707:25;1702:3;1698:35;1637:3;1631:4;1626:333;1060:910;;:::o;4591:18::-;;;;:::o;4178:38::-;;;;;;;;;;;;;;;;;:::o;4518:18::-;;;;:::o;5271:230::-;5348:8;5341:3;:15;;5333:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5388:3;;;;;;;;;;;:8;;;5397:3;;5402:10;5419:3;5414:9;;5388:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5388:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5388:36:0;;;;5443:3;;;;;;;;;;;:12;;;5456:3;5461;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5443:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5443:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5443:22:0;;;;;;;;;;;;;;;;5435:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1237:7;1333:3;1327:4;1323:14;1317:4;1310:28;1408:4;1402;1395:18;1500:3;1493:4;1487;1483:15;1476:28;1587:3;1584:1;1577:4;1571;1567:15;1554:37;1909:2;1896:16;1846:1;1833:15;1764:8;1729:1;1716:15;1711:3;1707:25;1702:3;1698:35;1637:3;1631:4;1626:333;1060:910;;;:::o
Swarm Source
bzzr://ff8ee869cc20c51bd4d50786d842615504da352e9d165c4261175c3e468dbcaf
Loading...
Loading
Loading...
Loading
OVERVIEW
Sky (formerly Maker) enables users to get rewarded for non-custodial savings.Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,913.18 | 209,897.5794 | $611,469,430.25 |
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.