More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 84 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Gov | 65120367 | 7 days ago | IN | 0 POL | 0.013516 | ||||
Swap | 64550462 | 22 days ago | IN | 0 POL | 0.00508327 | ||||
Swap | 62867660 | 63 days ago | IN | 0 POL | 0.00274185 | ||||
Set Gov | 62777671 | 66 days ago | IN | 0 POL | 0.00100354 | ||||
Swap | 62615862 | 70 days ago | IN | 0 POL | 0.00222921 | ||||
Swap | 62494352 | 73 days ago | IN | 0 POL | 0.00283847 | ||||
Swap | 53132816 | 312 days ago | IN | 0 POL | 0.00385215 | ||||
Swap | 52496281 | 329 days ago | IN | 0 POL | 0.00245421 | ||||
Swap | 51301047 | 360 days ago | IN | 0 POL | 0.00819758 | ||||
Swap | 51300821 | 360 days ago | IN | 0 POL | 0.00546934 | ||||
Swap | 51300606 | 360 days ago | IN | 0 POL | 0.00646416 | ||||
Swap | 51300171 | 360 days ago | IN | 0 POL | 0.00918444 | ||||
Swap | 51183939 | 363 days ago | IN | 0 POL | 0.01524631 | ||||
Swap | 50853157 | 371 days ago | IN | 0 POL | 0.0116643 | ||||
Swap | 49920624 | 395 days ago | IN | 0 POL | 0.00461374 | ||||
Swap | 49909122 | 395 days ago | IN | 0 POL | 0.01393236 | ||||
Swap | 49889136 | 396 days ago | IN | 0 POL | 0.00385179 | ||||
Swap | 49734494 | 399 days ago | IN | 0 POL | 0.01355924 | ||||
Swap | 49718087 | 400 days ago | IN | 0 POL | 0.01724341 | ||||
Swap | 49634483 | 402 days ago | IN | 0 POL | 0.00553593 | ||||
Swap | 49166018 | 414 days ago | IN | 0 POL | 0.00797125 | ||||
Swap | 49117453 | 415 days ago | IN | 0 POL | 0.00629694 | ||||
Swap | 49096657 | 415 days ago | IN | 0 POL | 0.00335726 | ||||
Swap | 49096640 | 415 days ago | IN | 0 POL | 0.00781622 | ||||
Swap | 49047406 | 417 days ago | IN | 0 POL | 0.01073382 |
Loading...
Loading
Contract Name:
Swapper
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.21; import {IERC20} from "openzeppelin/token/ERC20/IERC20.sol"; contract Swapper { bool public paused; address public constant TST = 0x25717b2fa0BEc614A44Ac132B85BA0EaeeaDaE01; address public constant CREPE = 0x5516d551Af482B4eef4B909138d5e48e05a7f50a; address public constant CRE = 0xe81432473290F4ffCFc5E823F8069Db83e8A677B; // TST 또는 CREPE 토큰 스왑을 시작할 시간, 2023년 10월 1일 오전 9시(GMT+9) uint256 public constant START = 1696118400; // Governance 컨트랙트 주소 address public gov; // TST 코인을 받을 지갑 주소 address public immutable receiver; // 스왑된 TST / CREPE 토큰 수량 mapping(address => uint256) public _swapped; event Swap( address indexed account, address indexed token, uint256 indexed amount ); /// @param _receiver 스왑에 사용된 TST 토큰을 수령할 지갑 주소 constructor(address _gov, address _receiver) { gov = _gov; receiver = _receiver; } modifier notPaused() { require(!paused, "Swapper: paused"); _; } modifier onlyGov() { require(msg.sender == gov, "Swapper: only gov"); _; } function setGov(address _gov) external onlyGov { gov = _gov; } function pause() external onlyGov { paused = !paused; } function deposit(uint256 amount) external onlyGov { IERC20(CRE).transferFrom(msg.sender, address(this), amount); } function withdraw(uint256 amount) external onlyGov { require( IERC20(CRE).balanceOf(address(this)) >= amount, "Swapper: not enough balance" ); IERC20(CRE).transfer(msg.sender, amount); } /// @notice TST 또는 CREPE 토큰을 CRE 토큰을 1:1로 교환하는 함수 /// @param token swap 할 토큰 주소, TST 또는 CREPE만 가능 /// @param amount swap 할 토큰 수량 function swap(address token, uint256 amount) external notPaused { require(START <= block.timestamp, "Swapper: not started yet"); require(token == CREPE || token == TST, "Swapper: unsupported token"); unchecked { _swapped[token] += amount; } // CREPE 토큰은 소각하고, TST 토큰은 지정된 지갑으로 전송 if (token == CREPE) { IERC20(token).transferFrom( msg.sender, 0x000000000000000000000000000000000000dEaD, amount ); IERC20(CRE).transfer(msg.sender, amount); } else { IERC20(token).transferFrom(msg.sender, receiver, amount); // TST 코인은 decimals가 6이므로 1e12를 곱해서 전송 IERC20(CRE).transfer(msg.sender, amount * 1e12); } emit Swap(msg.sender, token, amount); } /// @notice 스왑된 TST / CREPE 토큰 수량 조회 function stats() external view returns (uint256, uint256) { return (_swapped[TST], _swapped[CREPE]); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 amount) external returns (bool); }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "openzeppelin/=lib/openzeppelin-contracts/contracts/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_gov","type":"address"},{"internalType":"address","name":"_receiver","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swap","type":"event"},{"inputs":[],"name":"CRE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CREPE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"START","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TST","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapped","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gov","type":"address"}],"name":"setGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stats","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a060405234801561001057600080fd5b50604051610b29380380610b2983398101604081905261002f91610075565b60008054610100600160a81b0319166101006001600160a01b0394851602179055166080526100a8565b80516001600160a01b038116811461007057600080fd5b919050565b6000806040838503121561008857600080fd5b61009183610059565b915061009f60208401610059565b90509250929050565b608051610a5f6100ca6000396000818161029a01526107c30152610a5f6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063b6b55f251161008c578063d004f0f711610066578063d004f0f7146101f3578063d80528ae14610206578063e3daba711461027a578063f7260d3e1461029557600080fd5b8063b6b55f25146101c2578063ba9a061a146101d5578063cfad57a2146101e057600080fd5b806358e68afb116100c857806358e68afb146101545780635c975abb14610182578063653bba641461019f5780638456cb59146101ba57600080fd5b806312d43a51146100ef5780632e1a7d4d1461012457806337956f1914610139575b600080fd5b6000546101079061010090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610137610132366004610917565b6102bc565b005b610107735516d551af482b4eef4b909138d5e48e05a7f50a81565b61017461016236600461094c565b60016020526000908152604090205481565b60405190815260200161011b565b60005461018f9060ff1681565b604051901515815260200161011b565b61010773e81432473290f4ffcfc5e823f8069db83e8a677b81565b610137610438565b6101376101d0366004610917565b61047b565b610174636518b68081565b6101376101ee36600461094c565b6104ee565b61013761020136600461096e565b610545565b600160209081527fbb240c1d0d52bfba6cc146aea0d6d382bd5c63344518d5be0e7e3f3a5975ea5754735516d551af482b4eef4b909138d5e48e05a7f50a6000527f2f06dd1daa8f5d5d8d5a9f544e5fa478c3e22cc738f77567e03a7a1abe0b70cb5460408051928352928201520161011b565b6101077325717b2fa0bec614a44ac132b85ba0eaeeadae0181565b6101077f000000000000000000000000000000000000000000000000000000000000000081565b60005461010090046001600160a01b031633146102f45760405162461bcd60e51b81526004016102eb90610998565b60405180910390fd5b6040516370a0823160e01b8152306004820152819073e81432473290f4ffcfc5e823f8069db83e8a677b906370a0823190602401602060405180830381865afa158015610345573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036991906109c3565b10156103b75760405162461bcd60e51b815260206004820152601b60248201527f537761707065723a206e6f7420656e6f7567682062616c616e6365000000000060448201526064016102eb565b60405163a9059cbb60e01b81523360048201526024810182905273e81432473290f4ffcfc5e823f8069db83e8a677b9063a9059cbb906044015b6020604051808303816000875af1158015610410573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043491906109dc565b5050565b60005461010090046001600160a01b031633146104675760405162461bcd60e51b81526004016102eb90610998565b6000805460ff19811660ff90911615179055565b60005461010090046001600160a01b031633146104aa5760405162461bcd60e51b81526004016102eb90610998565b6040516323b872dd60e01b81523360048201523060248201526044810182905273e81432473290f4ffcfc5e823f8069db83e8a677b906323b872dd906064016103f1565b60005461010090046001600160a01b0316331461051d5760405162461bcd60e51b81526004016102eb90610998565b600080546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60005460ff161561058a5760405162461bcd60e51b815260206004820152600f60248201526e14ddd85c1c195c8e881c185d5cd959608a1b60448201526064016102eb565b42636518b68011156105de5760405162461bcd60e51b815260206004820152601860248201527f537761707065723a206e6f74207374617274656420796574000000000000000060448201526064016102eb565b6001600160a01b038216735516d551af482b4eef4b909138d5e48e05a7f50a148061062557506001600160a01b0382167325717b2fa0bec614a44ac132b85ba0eaeeadae01145b6106715760405162461bcd60e51b815260206004820152601a60248201527f537761707065723a20756e737570706f7274656420746f6b656e00000000000060448201526064016102eb565b6001600160a01b0382166000818152600160205260409020805483019055735516d551af482b4eef4b909138d5e48e05a7f50919016107a6576040516323b872dd60e01b815233600482015261dead6024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303816000875af11580156106ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072391906109dc565b5060405163a9059cbb60e01b81523360048201526024810182905273e81432473290f4ffcfc5e823f8069db83e8a677b9063a9059cbb906044016020604051808303816000875af115801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a091906109dc565b506108db565b6040516323b872dd60e01b81523360048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390528316906323b872dd906064016020604051808303816000875af115801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f91906109dc565b5073e81432473290f4ffcfc5e823f8069db83e8a677b63a9059cbb3361086a8464e8d4a510006109fe565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156108b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d991906109dc565b505b60405181906001600160a01b0384169033907fea368a40e9570069bb8e6511d668293ad2e1f03b0d982431fd223de9f3b70ca690600090a45050565b60006020828403121561092957600080fd5b5035919050565b80356001600160a01b038116811461094757600080fd5b919050565b60006020828403121561095e57600080fd5b61096782610930565b9392505050565b6000806040838503121561098157600080fd5b61098a83610930565b946020939093013593505050565b60208082526011908201527029bbb0b83832b91d1037b7363c9033b7bb60791b604082015260600190565b6000602082840312156109d557600080fd5b5051919050565b6000602082840312156109ee57600080fd5b8151801515811461096757600080fd5b8082028115828204841417610a2357634e487b7160e01b600052601160045260246000fd5b9291505056fea2646970667358221220e1ac584efa4055aafd283034075f1ebbfdbd5e0b2037036c584680666969b1fa64736f6c634300081500330000000000000000000000001337ef3cf8aebbac95b8e3b496cfcbb489cd72cc000000000000000000000000731bcca18b3527aa212c06de9e2fb6bd6db370de
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063b6b55f251161008c578063d004f0f711610066578063d004f0f7146101f3578063d80528ae14610206578063e3daba711461027a578063f7260d3e1461029557600080fd5b8063b6b55f25146101c2578063ba9a061a146101d5578063cfad57a2146101e057600080fd5b806358e68afb116100c857806358e68afb146101545780635c975abb14610182578063653bba641461019f5780638456cb59146101ba57600080fd5b806312d43a51146100ef5780632e1a7d4d1461012457806337956f1914610139575b600080fd5b6000546101079061010090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610137610132366004610917565b6102bc565b005b610107735516d551af482b4eef4b909138d5e48e05a7f50a81565b61017461016236600461094c565b60016020526000908152604090205481565b60405190815260200161011b565b60005461018f9060ff1681565b604051901515815260200161011b565b61010773e81432473290f4ffcfc5e823f8069db83e8a677b81565b610137610438565b6101376101d0366004610917565b61047b565b610174636518b68081565b6101376101ee36600461094c565b6104ee565b61013761020136600461096e565b610545565b600160209081527fbb240c1d0d52bfba6cc146aea0d6d382bd5c63344518d5be0e7e3f3a5975ea5754735516d551af482b4eef4b909138d5e48e05a7f50a6000527f2f06dd1daa8f5d5d8d5a9f544e5fa478c3e22cc738f77567e03a7a1abe0b70cb5460408051928352928201520161011b565b6101077325717b2fa0bec614a44ac132b85ba0eaeeadae0181565b6101077f000000000000000000000000731bcca18b3527aa212c06de9e2fb6bd6db370de81565b60005461010090046001600160a01b031633146102f45760405162461bcd60e51b81526004016102eb90610998565b60405180910390fd5b6040516370a0823160e01b8152306004820152819073e81432473290f4ffcfc5e823f8069db83e8a677b906370a0823190602401602060405180830381865afa158015610345573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036991906109c3565b10156103b75760405162461bcd60e51b815260206004820152601b60248201527f537761707065723a206e6f7420656e6f7567682062616c616e6365000000000060448201526064016102eb565b60405163a9059cbb60e01b81523360048201526024810182905273e81432473290f4ffcfc5e823f8069db83e8a677b9063a9059cbb906044015b6020604051808303816000875af1158015610410573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043491906109dc565b5050565b60005461010090046001600160a01b031633146104675760405162461bcd60e51b81526004016102eb90610998565b6000805460ff19811660ff90911615179055565b60005461010090046001600160a01b031633146104aa5760405162461bcd60e51b81526004016102eb90610998565b6040516323b872dd60e01b81523360048201523060248201526044810182905273e81432473290f4ffcfc5e823f8069db83e8a677b906323b872dd906064016103f1565b60005461010090046001600160a01b0316331461051d5760405162461bcd60e51b81526004016102eb90610998565b600080546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60005460ff161561058a5760405162461bcd60e51b815260206004820152600f60248201526e14ddd85c1c195c8e881c185d5cd959608a1b60448201526064016102eb565b42636518b68011156105de5760405162461bcd60e51b815260206004820152601860248201527f537761707065723a206e6f74207374617274656420796574000000000000000060448201526064016102eb565b6001600160a01b038216735516d551af482b4eef4b909138d5e48e05a7f50a148061062557506001600160a01b0382167325717b2fa0bec614a44ac132b85ba0eaeeadae01145b6106715760405162461bcd60e51b815260206004820152601a60248201527f537761707065723a20756e737570706f7274656420746f6b656e00000000000060448201526064016102eb565b6001600160a01b0382166000818152600160205260409020805483019055735516d551af482b4eef4b909138d5e48e05a7f50919016107a6576040516323b872dd60e01b815233600482015261dead6024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303816000875af11580156106ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072391906109dc565b5060405163a9059cbb60e01b81523360048201526024810182905273e81432473290f4ffcfc5e823f8069db83e8a677b9063a9059cbb906044016020604051808303816000875af115801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a091906109dc565b506108db565b6040516323b872dd60e01b81523360048201526001600160a01b037f000000000000000000000000731bcca18b3527aa212c06de9e2fb6bd6db370de81166024830152604482018390528316906323b872dd906064016020604051808303816000875af115801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f91906109dc565b5073e81432473290f4ffcfc5e823f8069db83e8a677b63a9059cbb3361086a8464e8d4a510006109fe565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156108b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d991906109dc565b505b60405181906001600160a01b0384169033907fea368a40e9570069bb8e6511d668293ad2e1f03b0d982431fd223de9f3b70ca690600090a45050565b60006020828403121561092957600080fd5b5035919050565b80356001600160a01b038116811461094757600080fd5b919050565b60006020828403121561095e57600080fd5b61096782610930565b9392505050565b6000806040838503121561098157600080fd5b61098a83610930565b946020939093013593505050565b60208082526011908201527029bbb0b83832b91d1037b7363c9033b7bb60791b604082015260600190565b6000602082840312156109d557600080fd5b5051919050565b6000602082840312156109ee57600080fd5b8151801515811461096757600080fd5b8082028115828204841417610a2357634e487b7160e01b600052601160045260246000fd5b9291505056fea2646970667358221220e1ac584efa4055aafd283034075f1ebbfdbd5e0b2037036c584680666969b1fa64736f6c63430008150033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001337ef3cf8aebbac95b8e3b496cfcbb489cd72cc000000000000000000000000731bcca18b3527aa212c06de9e2fb6bd6db370de
-----Decoded View---------------
Arg [0] : _gov (address): 0x1337ef3cF8aEbBAc95b8E3b496CfCBB489cd72cC
Arg [1] : _receiver (address): 0x731BCca18b3527aa212c06dE9e2fB6Bd6DB370DE
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000001337ef3cf8aebbac95b8e3b496cfcbb489cd72cc
Arg [1] : 000000000000000000000000731bcca18b3527aa212c06de9e2fb6bd6db370de
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.