ETH Price: $3,362.37 (-3.25%)

Contract

0xf60d4A1C2188d8Da10F0690c0fFd2cdd87E635AA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00
Transaction Hash
Method
Block
From
To
Redeem172850762023-05-18 7:53:35588 days ago1684396415IN
0xf60d4A1C...d87E635AA
0 ETH0.0041807741
Redeem172414922023-05-12 3:30:47594 days ago1683862247IN
0xf60d4A1C...d87E635AA
0 ETH0.0079571278.03402315
Redeem172260532023-05-09 23:09:11596 days ago1683673751IN
0xf60d4A1C...d87E635AA
0 ETH0.0097541395.65688712
Redeem172234162023-05-09 14:14:11596 days ago1683641651IN
0xf60d4A1C...d87E635AA
0 ETH0.01152598113.03312672
Redeem172224432023-05-09 10:57:47597 days ago1683629867IN
0xf60d4A1C...d87E635AA
0 ETH0.0054816153.75714945
Redeem172215332023-05-09 7:53:23597 days ago1683618803IN
0xf60d4A1C...d87E635AA
0 ETH0.006280961.59565908
Redeem172214792023-05-09 7:42:23597 days ago1683618143IN
0xf60d4A1C...d87E635AA
0 ETH0.0057048355.94624967
Redeem172210142023-05-09 6:08:11597 days ago1683612491IN
0xf60d4A1C...d87E635AA
0 ETH0.0061495960.30784742
Redeem172205572023-05-09 4:36:11597 days ago1683606971IN
0xf60d4A1C...d87E635AA
0 ETH0.0066476565.19223864
Redeem172193262023-05-09 0:26:47597 days ago1683592007IN
0xf60d4A1C...d87E635AA
0 ETH0.0063922362.68737002
Redeem172191722023-05-08 23:55:35597 days ago1683590135IN
0xf60d4A1C...d87E635AA
0 ETH0.0074326372.89038849
Redeem172191602023-05-08 23:53:11597 days ago1683589991IN
0xf60d4A1C...d87E635AA
0 ETH0.0120817682.06548188
Redeem172190892023-05-08 23:38:59597 days ago1683589139IN
0xf60d4A1C...d87E635AA
0 ETH0.0106075172.05161347
Redeem172190862023-05-08 23:38:23597 days ago1683589103IN
0xf60d4A1C...d87E635AA
0 ETH0.0112649576.51733333
Redeem172189632023-05-08 23:13:35597 days ago1683587615IN
0xf60d4A1C...d87E635AA
0 ETH0.0076026374.55761164
Redeem172188812023-05-08 22:57:11597 days ago1683586631IN
0xf60d4A1C...d87E635AA
0 ETH0.0078762577.24094425
Redeem172188512023-05-08 22:51:11597 days ago1683586271IN
0xf60d4A1C...d87E635AA
0 ETH0.0079896878.35333211
Redeem172187642023-05-08 22:33:23597 days ago1683585203IN
0xf60d4A1C...d87E635AA
0 ETH0.0082315580.72529791
Redeem172187602023-05-08 22:32:35597 days ago1683585155IN
0xf60d4A1C...d87E635AA
0 ETH0.0022924682.15552303
Redeem172187592023-05-08 22:32:23597 days ago1683585143IN
0xf60d4A1C...d87E635AA
0 ETH0.0089541887.81196612
Redeem172187442023-05-08 22:29:23597 days ago1683584963IN
0xf60d4A1C...d87E635AA
0 ETH0.0087432585.74343165
Redeem172187342023-05-08 22:27:23597 days ago1683584843IN
0xf60d4A1C...d87E635AA
0 ETH0.0081831680.25072399
Update Redeem Ac...172186722023-05-08 22:14:59597 days ago1683584099IN
0xf60d4A1C...d87E635AA
0 ETH0.0024729585.85175611
Update Precision172182782023-05-08 20:55:11597 days ago1683579311IN
0xf60d4A1C...d87E635AA
0 ETH0.0039294885.78152995
Update Rate172182772023-05-08 20:54:59597 days ago1683579299IN
0xf60d4A1C...d87E635AA
0 ETH0.0040748388.82270205
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
171980432023-05-06 0:37:23600 days ago1683333443
0xf60d4A1C...d87E635AA
0.028 ETH
171953902023-05-05 15:41:23600 days ago1683301283
0xf60d4A1C...d87E635AA
0.05 ETH
171944522023-05-05 12:32:23601 days ago1683289943
0xf60d4A1C...d87E635AA
0.1 ETH
171944332023-05-05 12:28:35601 days ago1683289715
0xf60d4A1C...d87E635AA
0.1 ETH
171891942023-05-04 18:51:11601 days ago1683226271
0xf60d4A1C...d87E635AA
0.0669 ETH
171884472023-05-04 16:19:47601 days ago1683217187
0xf60d4A1C...d87E635AA
0.235 ETH
171874652023-05-04 13:01:11601 days ago1683205271
0xf60d4A1C...d87E635AA
0.1 ETH
171761152023-05-02 22:41:11603 days ago1683067271
0xf60d4A1C...d87E635AA
0.03 ETH
171734372023-05-02 13:38:35603 days ago1683034715
0xf60d4A1C...d87E635AA
0.1 ETH
171722302023-05-02 9:34:23604 days ago1683020063
0xf60d4A1C...d87E635AA
0.12 ETH
171719652023-05-02 8:40:11604 days ago1683016811
0xf60d4A1C...d87E635AA
2 ETH
171710642023-05-02 5:37:35604 days ago1683005855
0xf60d4A1C...d87E635AA
0.05 ETH
171683302023-05-01 20:24:47604 days ago1682972687
0xf60d4A1C...d87E635AA
0.02 ETH
171676262023-05-01 18:01:47604 days ago1682964107
0xf60d4A1C...d87E635AA
3 ETH
171674722023-05-01 17:30:47604 days ago1682962247
0xf60d4A1C...d87E635AA
0.028 ETH
171672652023-05-01 16:48:35604 days ago1682959715
0xf60d4A1C...d87E635AA
2.7 ETH
171672552023-05-01 16:46:35604 days ago1682959595
0xf60d4A1C...d87E635AA
0.13 ETH
171669522023-05-01 15:45:35604 days ago1682955935
0xf60d4A1C...d87E635AA
0.2 ETH
171668802023-05-01 15:31:11604 days ago1682955071
0xf60d4A1C...d87E635AA
0.02 ETH
171667882023-05-01 15:12:35604 days ago1682953955
0xf60d4A1C...d87E635AA
0.198 ETH
171667852023-05-01 15:11:59604 days ago1682953919
0xf60d4A1C...d87E635AA
0.045 ETH
171667632023-05-01 15:07:23604 days ago1682953643
0xf60d4A1C...d87E635AA
0.25 ETH
171667552023-05-01 15:05:47604 days ago1682953547
0xf60d4A1C...d87E635AA
0.12 ETH
171667502023-05-01 15:04:47604 days ago1682953487
0xf60d4A1C...d87E635AA
0.02 ETH
171667452023-05-01 15:03:47604 days ago1682953427
0xf60d4A1C...d87E635AA
0.26 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Presale

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : Presale.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

interface IERC721 {
    function tokensOfOwner(
        address owner
    ) external view returns (uint256[] memory);
}

contract Presale is Ownable {
    IERC20 public BURNS;
    IERC20 public XBURNS;
    IERC721 public NFT;

    address payable public TREASURY;

    bool public contributeActive = false;
    bool public redeemActive = false;
    bool public refundActive = false;

    uint256 public minContribution;
    uint256 public rate;
    uint256 public precision;

    uint256 public totalContributions = 0;
    uint256 public totalBonus = 0;

    mapping(address => uint256) public contributions;
    mapping(address => uint256) public bonus;
    mapping(uint256 => bool) public redeemedNfts;
    mapping(address => bool) public redeemedTokens;
    mapping(address => bool) public refunded;

    constructor(
        address burns,
        address xburns,
        address nft,
        address payable treasury,
        uint256 minContribution_,
        uint256 rate_,
        uint256 precision_
    ) {
        BURNS = IERC20(burns);
        XBURNS = IERC20(xburns);
        NFT = IERC721(nft);

        TREASURY = treasury;

        minContribution = minContribution_;
        rate = rate_;
        precision = precision_;
    }

    function updateBurns(address value) public onlyOwner {
        BURNS = IERC20(value);
    }

    function updateXburns(address value) public onlyOwner {
        XBURNS = IERC20(value);
    }

    function updateNtf(address value) public onlyOwner {
        NFT = IERC721(value);
    }

    function updateTreasury(address payable value) public onlyOwner {
        TREASURY = value;
    }

    function updateContributeActive(bool value) public onlyOwner {
        contributeActive = value;
    }

    function updateRedeemActive(bool value) public onlyOwner {
        redeemActive = value;
    }

    function updateRefundActive(bool value) public onlyOwner {
        redeemActive = value;
    }

    function updateMinContribution(uint256 value) public onlyOwner {
        minContribution = value;
    }

    function updateRate(uint256 value) public onlyOwner {
        rate = value;
    }

    function updatePrecision(uint256 value) public onlyOwner {
        precision = value;
    }

    function withdrawErc20(address _token) external onlyOwner {
        if (IERC20(_token).balanceOf(address(this)) > 0) {
            IERC20(_token).transfer(
                TREASURY,
                IERC20(_token).balanceOf(address(this))
            );
        }
    }

    function withdrawEth() external onlyOwner {
        (bool sent, bytes memory data) = payable(TREASURY).call{
            value: address(this).balance
        }("");
        require(sent, "Failed to send Ether");
    }

    function userBoosterCount(address user) public view returns (uint256) {
        uint256[] memory nfts = NFT.tokensOfOwner(user);
        uint256 boosters = 0;
        for (uint256 i = 0; i < nfts.length; i++) {
            if (!redeemedNfts[nfts[i]]) {
                boosters++;
            }
        }
        return boosters;
    }

    function contribute() public payable {
        require(contributeActive, "CONT: Can't contribute yet.");
        uint256 amount = msg.value;
        require(amount >= minContribution, "CONT: Amount too low.");

        (bool sent, bytes memory data) = payable(TREASURY).call{value: amount}(
            ""
        );
        require(sent, "Failed to send Ether");

        contributions[_msgSender()] += amount;
        totalContributions += amount;

        uint256[] memory nfts = NFT.tokensOfOwner(_msgSender());
        uint256 boosters = 0;
        for (uint256 i = 0; i < nfts.length; i++) {
            if (!redeemedNfts[nfts[i]]) {
                redeemedNfts[nfts[i]] = true;
                boosters++;
            }
        }

        if (boosters > 0) {
            amount = (5 * boosters * amount) / 100;
            bonus[_msgSender()] += amount;
            totalBonus += amount;
        }
    }

    function redeem() public {
        require(redeemActive, "REDEEM: Can't redeem yet.");
        uint256 contribution = contributions[_msgSender()];
        require(contribution > 0, "REDEEM: No contribution.");
        require(!redeemedTokens[_msgSender()], "REDEEM: Already redeemed.");

        redeemedTokens[_msgSender()] = true;

        BURNS.transferFrom(
            TREASURY,
            _msgSender(),
            (contribution * rate) / precision
        );

        uint256 bonusContribution = bonus[_msgSender()];
        if (bonusContribution > 0)
            XBURNS.transferFrom(
                TREASURY,
                _msgSender(),
                (bonusContribution * rate) / precision
            );
    }
}

File 2 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @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.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * 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.
 */
abstract 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() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the 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 virtual onlyOwner {
        _transferOwnership(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 virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 4 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.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);
}

File 4 of 4 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.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 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.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"burns","type":"address"},{"internalType":"address","name":"xburns","type":"address"},{"internalType":"address","name":"nft","type":"address"},{"internalType":"address payable","name":"treasury","type":"address"},{"internalType":"uint256","name":"minContribution_","type":"uint256"},{"internalType":"uint256","name":"rate_","type":"uint256"},{"internalType":"uint256","name":"precision_","type":"uint256"}],"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"},{"inputs":[],"name":"BURNS","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NFT","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TREASURY","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"XBURNS","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contribute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"contributeActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contributions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minContribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precision","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"redeemActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"redeemedNfts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"redeemedTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refundActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"refunded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalContributions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"name":"updateBurns","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"updateContributeActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"updateMinContribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"name":"updateNtf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"updatePrecision","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"updateRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"updateRedeemActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"updateRefundActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"value","type":"address"}],"name":"updateTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"name":"updateXburns","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"userBoosterCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdrawErc20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526004805462ffffff60a01b19169055600060088190556009553480156200002a57600080fd5b506040516200158f3803806200158f8339810160408190526200004d9162000127565b6200005833620000be565b600180546001600160a01b039889166001600160a01b0319918216179091556002805497891697821697909717909655600380549588169587169590951790945560048054939096169290941691909117909355600592909255600655600755620001ae565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200012457600080fd5b50565b600080600080600080600060e0888a0312156200014357600080fd5b875162000150816200010e565b602089015190975062000163816200010e565b604089015190965062000176816200010e565b606089015190955062000189816200010e565b809450506080880151925060a0880151915060c0880151905092959891949750929550565b6113d180620001be6000396000f3fe6080604052600436106102045760003560e01c80638da5cb5b11610118578063d3b5dc3b116100a0578063dc9eb1151161006f578063dc9eb115146105e6578063de1ad09314610606578063ea770b0f1461032f578063eeeaa7bd14610626578063f2fde38b1461064657600080fd5b8063d3b5dc3b1461057b578063d7bb99ba14610591578063d8cb4aa314610599578063dc0a1687146105c657600080fd5b8063aaffadf3116100e7578063aaffadf3146104df578063be040fb0146104f5578063c033a4901461050a578063c7e42b1b1461053a578063cb0269bc1461055a57600080fd5b80638da5cb5b146104755780639883151314610493578063a0ef91df146104b4578063a8dd07dc146104c957600080fd5b80634efd9e2c1161019b578063715018a61161016a578063715018a6146103df5780637a792c8b146103f45780637c0b8de2146104155780637f51bb1f14610435578063894713eb1461045557600080fd5b80634efd9e2c1461034f57806356157f031461036f578063682eb32b1461038f57806369ea1771146103bf57600080fd5b806334da76c8116101d757806334da76c8146102cc57806337c08923146102ec57806342e94c901461030257806345bd5d6b1461032f57600080fd5b80632432b37f146102095780632908eb101461022b5780632c4e722e146102705780632d2c556514610294575b600080fd5b34801561021557600080fd5b50610229610224366004611192565b610666565b005b34801561023757600080fd5b5061025b6102463660046111b6565b600c6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561027c57600080fd5b5061028660065481565b604051908152602001610267565b3480156102a057600080fd5b506004546102b4906001600160a01b031681565b6040516001600160a01b039091168152602001610267565b3480156102d857600080fd5b506102866102e7366004611192565b610690565b3480156102f857600080fd5b5061028660085481565b34801561030e57600080fd5b5061028661031d366004611192565b600a6020526000908152604090205481565b34801561033b57600080fd5b5061022961034a3660046111dd565b610775565b34801561035b57600080fd5b5061022961036a3660046111b6565b61079b565b34801561037b57600080fd5b5061022961038a3660046111b6565b6107a8565b34801561039b57600080fd5b5061025b6103aa366004611192565b600d6020526000908152604090205460ff1681565b3480156103cb57600080fd5b506102296103da3660046111b6565b6107b5565b3480156103eb57600080fd5b506102296107c2565b34801561040057600080fd5b5060045461025b90600160a01b900460ff1681565b34801561042157600080fd5b506003546102b4906001600160a01b031681565b34801561044157600080fd5b50610229610450366004611192565b6107d6565b34801561046157600080fd5b506001546102b4906001600160a01b031681565b34801561048157600080fd5b506000546001600160a01b03166102b4565b34801561049f57600080fd5b5060045461025b90600160a81b900460ff1681565b3480156104c057600080fd5b50610229610800565b3480156104d557600080fd5b5061028660095481565b3480156104eb57600080fd5b5061028660055481565b34801561050157600080fd5b506102296108b0565b34801561051657600080fd5b5061025b610525366004611192565b600e6020526000908152604090205460ff1681565b34801561054657600080fd5b50610229610555366004611192565b610b5a565b34801561056657600080fd5b5060045461025b90600160b01b900460ff1681565b34801561058757600080fd5b5061028660075481565b610229610cc1565b3480156105a557600080fd5b506102866105b4366004611192565b600b6020526000908152604090205481565b3480156105d257600080fd5b506002546102b4906001600160a01b031681565b3480156105f257600080fd5b506102296106013660046111dd565b610fe3565b34801561061257600080fd5b50610229610621366004611192565b611009565b34801561063257600080fd5b50610229610641366004611192565b611033565b34801561065257600080fd5b50610229610661366004611192565b61105d565b61066e6110d3565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600354604051632118854760e21b81526001600160a01b0383811660048301526000928392911690638462151c90602401600060405180830381865afa1580156106de573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107069190810190611210565b90506000805b825181101561076d57600c600084838151811061072b5761072b6112ce565b60209081029190910181015182528101919091526040016000205460ff1661075b5781610757816112fa565b9250505b80610765816112fa565b91505061070c565b509392505050565b61077d6110d3565b60048054911515600160a81b0260ff60a81b19909216919091179055565b6107a36110d3565b600555565b6107b06110d3565b600755565b6107bd6110d3565b600655565b6107ca6110d3565b6107d4600061112d565b565b6107de6110d3565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6108086110d3565b60045460405160009182916001600160a01b039091169047908381818185875af1925050503d8060008114610859576040519150601f19603f3d011682016040523d82523d6000602084013e61085e565b606091505b5091509150816108ac5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b60448201526064015b60405180910390fd5b5050565b600454600160a81b900460ff166109095760405162461bcd60e51b815260206004820152601960248201527f52454445454d3a2043616e27742072656465656d207965742e0000000000000060448201526064016108a3565b336000908152600a6020526040902054806109665760405162461bcd60e51b815260206004820152601860248201527f52454445454d3a204e6f20636f6e747269627574696f6e2e000000000000000060448201526064016108a3565b336000908152600d602052604090205460ff16156109c65760405162461bcd60e51b815260206004820152601960248201527f52454445454d3a20416c72656164792072656465656d65642e0000000000000060448201526064016108a3565b336000818152600d60205260409020805460ff19166001908117909155546004546007546006546001600160a01b03938416946323b872dd9493909316929190610a109087611313565b610a1a9190611330565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a929190611352565b50336000908152600b602052604090205480156108ac576002546004546001600160a01b03918216916323b872dd911633600754600654610ad39087611313565b610add9190611330565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015610b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b559190611352565b505050565b610b626110d3565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcd919061136f565b1115610cbe57600480546040516370a0823160e01b815230928101929092526001600160a01b038381169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f919061136f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ac9190611352565b50565b600454600160a01b900460ff16610d1a5760405162461bcd60e51b815260206004820152601b60248201527f434f4e543a2043616e277420636f6e74726962757465207965742e000000000060448201526064016108a3565b6005543490811015610d665760405162461bcd60e51b815260206004820152601560248201527421a7a72a1d1020b6b7bab73a103a37b7903637bb9760591b60448201526064016108a3565b60045460405160009182916001600160a01b039091169084908381818185875af1925050503d8060008114610db7576040519150601f19603f3d011682016040523d82523d6000602084013e610dbc565b606091505b509150915081610e055760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b60448201526064016108a3565b336000908152600a602052604081208054859290610e24908490611388565b925050819055508260086000828254610e3d9190611388565b90915550506003546000906001600160a01b0316638462151c336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381865afa158015610e9b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ec39190810190611210565b90506000805b8251811015610f7057600c6000848381518110610ee857610ee86112ce565b60209081029190910181015182528101919091526040016000205460ff16610f5e576001600c6000858481518110610f2257610f226112ce565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508180610f5a906112fa565b9250505b80610f68816112fa565b915050610ec9565b508015610fdc57606485610f85836005611313565b610f8f9190611313565b610f999190611330565b336000908152600b6020526040812080549297508792909190610fbd908490611388565b925050819055508460096000828254610fd69190611388565b90915550505b5050505050565b610feb6110d3565b60048054911515600160a01b0260ff60a01b19909216919091179055565b6110116110d3565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b61103b6110d3565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6110656110d3565b6001600160a01b0381166110ca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a3565b610cbe8161112d565b6000546001600160a01b031633146107d45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610cbe57600080fd5b6000602082840312156111a457600080fd5b81356111af8161117d565b9392505050565b6000602082840312156111c857600080fd5b5035919050565b8015158114610cbe57600080fd5b6000602082840312156111ef57600080fd5b81356111af816111cf565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561122357600080fd5b825167ffffffffffffffff8082111561123b57600080fd5b818501915085601f83011261124f57600080fd5b815181811115611261576112616111fa565b8060051b604051601f19603f83011681018181108582111715611286576112866111fa565b6040529182528482019250838101850191888311156112a457600080fd5b938501935b828510156112c2578451845293850193928501926112a9565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161130c5761130c6112e4565b5060010190565b808202811582820484141761132a5761132a6112e4565b92915050565b60008261134d57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561136457600080fd5b81516111af816111cf565b60006020828403121561138157600080fd5b5051919050565b8082018082111561132a5761132a6112e456fea2646970667358221220d8e3da7198e81cf2cb8c46c74f0fbd11a0dd8979d0d42f887ea7ef8cdc873c9a64736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffc38c7007cc4c466055117fcd1868455a79feba0000000000000000000000001ea8e4063ebbaef78e7efbb3a5327e98a1a9372d00000000000000000000000000000000000000000000000000470de4df82000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102045760003560e01c80638da5cb5b11610118578063d3b5dc3b116100a0578063dc9eb1151161006f578063dc9eb115146105e6578063de1ad09314610606578063ea770b0f1461032f578063eeeaa7bd14610626578063f2fde38b1461064657600080fd5b8063d3b5dc3b1461057b578063d7bb99ba14610591578063d8cb4aa314610599578063dc0a1687146105c657600080fd5b8063aaffadf3116100e7578063aaffadf3146104df578063be040fb0146104f5578063c033a4901461050a578063c7e42b1b1461053a578063cb0269bc1461055a57600080fd5b80638da5cb5b146104755780639883151314610493578063a0ef91df146104b4578063a8dd07dc146104c957600080fd5b80634efd9e2c1161019b578063715018a61161016a578063715018a6146103df5780637a792c8b146103f45780637c0b8de2146104155780637f51bb1f14610435578063894713eb1461045557600080fd5b80634efd9e2c1461034f57806356157f031461036f578063682eb32b1461038f57806369ea1771146103bf57600080fd5b806334da76c8116101d757806334da76c8146102cc57806337c08923146102ec57806342e94c901461030257806345bd5d6b1461032f57600080fd5b80632432b37f146102095780632908eb101461022b5780632c4e722e146102705780632d2c556514610294575b600080fd5b34801561021557600080fd5b50610229610224366004611192565b610666565b005b34801561023757600080fd5b5061025b6102463660046111b6565b600c6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561027c57600080fd5b5061028660065481565b604051908152602001610267565b3480156102a057600080fd5b506004546102b4906001600160a01b031681565b6040516001600160a01b039091168152602001610267565b3480156102d857600080fd5b506102866102e7366004611192565b610690565b3480156102f857600080fd5b5061028660085481565b34801561030e57600080fd5b5061028661031d366004611192565b600a6020526000908152604090205481565b34801561033b57600080fd5b5061022961034a3660046111dd565b610775565b34801561035b57600080fd5b5061022961036a3660046111b6565b61079b565b34801561037b57600080fd5b5061022961038a3660046111b6565b6107a8565b34801561039b57600080fd5b5061025b6103aa366004611192565b600d6020526000908152604090205460ff1681565b3480156103cb57600080fd5b506102296103da3660046111b6565b6107b5565b3480156103eb57600080fd5b506102296107c2565b34801561040057600080fd5b5060045461025b90600160a01b900460ff1681565b34801561042157600080fd5b506003546102b4906001600160a01b031681565b34801561044157600080fd5b50610229610450366004611192565b6107d6565b34801561046157600080fd5b506001546102b4906001600160a01b031681565b34801561048157600080fd5b506000546001600160a01b03166102b4565b34801561049f57600080fd5b5060045461025b90600160a81b900460ff1681565b3480156104c057600080fd5b50610229610800565b3480156104d557600080fd5b5061028660095481565b3480156104eb57600080fd5b5061028660055481565b34801561050157600080fd5b506102296108b0565b34801561051657600080fd5b5061025b610525366004611192565b600e6020526000908152604090205460ff1681565b34801561054657600080fd5b50610229610555366004611192565b610b5a565b34801561056657600080fd5b5060045461025b90600160b01b900460ff1681565b34801561058757600080fd5b5061028660075481565b610229610cc1565b3480156105a557600080fd5b506102866105b4366004611192565b600b6020526000908152604090205481565b3480156105d257600080fd5b506002546102b4906001600160a01b031681565b3480156105f257600080fd5b506102296106013660046111dd565b610fe3565b34801561061257600080fd5b50610229610621366004611192565b611009565b34801561063257600080fd5b50610229610641366004611192565b611033565b34801561065257600080fd5b50610229610661366004611192565b61105d565b61066e6110d3565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600354604051632118854760e21b81526001600160a01b0383811660048301526000928392911690638462151c90602401600060405180830381865afa1580156106de573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107069190810190611210565b90506000805b825181101561076d57600c600084838151811061072b5761072b6112ce565b60209081029190910181015182528101919091526040016000205460ff1661075b5781610757816112fa565b9250505b80610765816112fa565b91505061070c565b509392505050565b61077d6110d3565b60048054911515600160a81b0260ff60a81b19909216919091179055565b6107a36110d3565b600555565b6107b06110d3565b600755565b6107bd6110d3565b600655565b6107ca6110d3565b6107d4600061112d565b565b6107de6110d3565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6108086110d3565b60045460405160009182916001600160a01b039091169047908381818185875af1925050503d8060008114610859576040519150601f19603f3d011682016040523d82523d6000602084013e61085e565b606091505b5091509150816108ac5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b60448201526064015b60405180910390fd5b5050565b600454600160a81b900460ff166109095760405162461bcd60e51b815260206004820152601960248201527f52454445454d3a2043616e27742072656465656d207965742e0000000000000060448201526064016108a3565b336000908152600a6020526040902054806109665760405162461bcd60e51b815260206004820152601860248201527f52454445454d3a204e6f20636f6e747269627574696f6e2e000000000000000060448201526064016108a3565b336000908152600d602052604090205460ff16156109c65760405162461bcd60e51b815260206004820152601960248201527f52454445454d3a20416c72656164792072656465656d65642e0000000000000060448201526064016108a3565b336000818152600d60205260409020805460ff19166001908117909155546004546007546006546001600160a01b03938416946323b872dd9493909316929190610a109087611313565b610a1a9190611330565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a929190611352565b50336000908152600b602052604090205480156108ac576002546004546001600160a01b03918216916323b872dd911633600754600654610ad39087611313565b610add9190611330565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015610b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b559190611352565b505050565b610b626110d3565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcd919061136f565b1115610cbe57600480546040516370a0823160e01b815230928101929092526001600160a01b038381169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4f919061136f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ac9190611352565b50565b600454600160a01b900460ff16610d1a5760405162461bcd60e51b815260206004820152601b60248201527f434f4e543a2043616e277420636f6e74726962757465207965742e000000000060448201526064016108a3565b6005543490811015610d665760405162461bcd60e51b815260206004820152601560248201527421a7a72a1d1020b6b7bab73a103a37b7903637bb9760591b60448201526064016108a3565b60045460405160009182916001600160a01b039091169084908381818185875af1925050503d8060008114610db7576040519150601f19603f3d011682016040523d82523d6000602084013e610dbc565b606091505b509150915081610e055760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b60448201526064016108a3565b336000908152600a602052604081208054859290610e24908490611388565b925050819055508260086000828254610e3d9190611388565b90915550506003546000906001600160a01b0316638462151c336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381865afa158015610e9b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ec39190810190611210565b90506000805b8251811015610f7057600c6000848381518110610ee857610ee86112ce565b60209081029190910181015182528101919091526040016000205460ff16610f5e576001600c6000858481518110610f2257610f226112ce565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508180610f5a906112fa565b9250505b80610f68816112fa565b915050610ec9565b508015610fdc57606485610f85836005611313565b610f8f9190611313565b610f999190611330565b336000908152600b6020526040812080549297508792909190610fbd908490611388565b925050819055508460096000828254610fd69190611388565b90915550505b5050505050565b610feb6110d3565b60048054911515600160a01b0260ff60a01b19909216919091179055565b6110116110d3565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b61103b6110d3565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6110656110d3565b6001600160a01b0381166110ca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a3565b610cbe8161112d565b6000546001600160a01b031633146107d45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610cbe57600080fd5b6000602082840312156111a457600080fd5b81356111af8161117d565b9392505050565b6000602082840312156111c857600080fd5b5035919050565b8015158114610cbe57600080fd5b6000602082840312156111ef57600080fd5b81356111af816111cf565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561122357600080fd5b825167ffffffffffffffff8082111561123b57600080fd5b818501915085601f83011261124f57600080fd5b815181811115611261576112616111fa565b8060051b604051601f19603f83011681018181108582111715611286576112866111fa565b6040529182528482019250838101850191888311156112a457600080fd5b938501935b828510156112c2578451845293850193928501926112a9565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161130c5761130c6112e4565b5060010190565b808202811582820484141761132a5761132a6112e4565b92915050565b60008261134d57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561136457600080fd5b81516111af816111cf565b60006020828403121561138157600080fd5b5051919050565b8082018082111561132a5761132a6112e456fea2646970667358221220d8e3da7198e81cf2cb8c46c74f0fbd11a0dd8979d0d42f887ea7ef8cdc873c9a64736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffc38c7007cc4c466055117fcd1868455a79feba0000000000000000000000001ea8e4063ebbaef78e7efbb3a5327e98a1a9372d00000000000000000000000000000000000000000000000000470de4df82000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : burns (address): 0x0000000000000000000000000000000000000000
Arg [1] : xburns (address): 0x0000000000000000000000000000000000000000
Arg [2] : nft (address): 0xFfC38C7007Cc4c466055117fcd1868455A79fEba
Arg [3] : treasury (address): 0x1Ea8e4063ebbAef78e7eFBb3a5327e98A1A9372D
Arg [4] : minContribution_ (uint256): 20000000000000000
Arg [5] : rate_ (uint256): 0
Arg [6] : precision_ (uint256): 0

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 000000000000000000000000ffc38c7007cc4c466055117fcd1868455a79feba
Arg [3] : 0000000000000000000000001ea8e4063ebbaef78e7efbb3a5327e98a1a9372d
Arg [4] : 00000000000000000000000000000000000000000000000000470de4df820000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.