ETH Price: $2,300.12 (-5.36%)

Contract

0xBf47522C2b6d9e56195F5B6D4C7479be9B3ee3DB

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Claim4269503902026-01-30 22:46:142 days ago1769813174IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050120.020054
Claim4269501482026-01-30 22:45:142 days ago1769813114IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050230.020098
Claim4267775412026-01-30 10:50:362 days ago1769770236IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050820.020346
Claim4265174142026-01-29 16:50:283 days ago1769705428IN
0xBf47522C...e9B3ee3DB
0 ETH0.000054410.021684
Claim4261838212026-01-28 17:44:474 days ago1769622287IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050030.02
Claim4261727642026-01-28 16:58:524 days ago1769619532IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050030.02
Claim4261372272026-01-28 14:31:204 days ago1769610680IN
0xBf47522C...e9B3ee3DB
0 ETH0.000049890.020024
Claim4260182112026-01-28 6:16:335 days ago1769580993IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050190.020096
Claim4254365342026-01-26 13:59:026 days ago1769435942IN
0xBf47522C...e9B3ee3DB
0 ETH0.00009970.020076
Claim4254210682026-01-26 12:54:496 days ago1769432089IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050170.020066
Claim4253909662026-01-26 10:49:426 days ago1769424582IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050040.020016
Claim4253870892026-01-26 10:33:346 days ago1769423614IN
0xBf47522C...e9B3ee3DB
0 ETH0.000099730.020074
Claim4251333702026-01-25 16:57:267 days ago1769360246IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050010.02001
Claim4251328282026-01-25 16:55:117 days ago1769360111IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050050.02
Claim4250530242026-01-25 11:23:087 days ago1769340188IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050040.02002
Claim4247993742026-01-24 17:39:368 days ago1769276376IN
0xBf47522C...e9B3ee3DB
0 ETH0.000057820.023148
Claim4247659952026-01-24 15:20:128 days ago1769268012IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050080.02002
Claim4247598772026-01-24 14:54:448 days ago1769266484IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050420.020168
Claim4247571052026-01-24 14:43:108 days ago1769265790IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050120.020048
Claim4247561522026-01-24 14:39:118 days ago1769265551IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050120.020046
Claim4247547442026-01-24 14:33:198 days ago1769265199IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050110.020042
Claim4247518762026-01-24 14:21:238 days ago1769264483IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050.02
Claim4247475112026-01-24 14:03:128 days ago1769263392IN
0xBf47522C...e9B3ee3DB
0 ETH0.000049990.02
Claim4247456322026-01-24 13:55:248 days ago1769262924IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050330.020134
Claim4247437412026-01-24 13:47:318 days ago1769262451IN
0xBf47522C...e9B3ee3DB
0 ETH0.000050.02
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ClaimHelper

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: UNLICENSED
// Copyright (c) Eywa.Fi, 2021-2023 - all rights reserved
pragma solidity ^0.8.17;

import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
import "./interfaces/IVestingManager.sol";
import "./interfaces/IManagedVestingWallet.sol";
import "./interfaces/IWalletFactory.sol";


contract ClaimHelper is ReentrancyGuard {

    struct VestingData {
        address manager;
        uint256 amount;
        bytes32[] proof;
    }

    address public EYWA;

    constructor(address token) {
        require(token != address(0), "ClaimHelper: zero address");
        EYWA = token;
    }

    function claim(
        address beneficiary,
        VestingData[] calldata data
    ) external nonReentrant {
        for (uint256 i; i < data.length; ++i) {
            IVestingByWhitelist impl = IVestingByWhitelist(data[i].manager);
            try impl.claim(beneficiary, data[i].amount, data[i].proof) {
            } catch Error(string memory reason) {
                revert(reason);
            } catch Panic(uint256) {
                revert("ClaimHelper: something went wrong");
            } catch (bytes memory) {
                revert("ClaimHelper: something went wrong");
            }
        }
    }

    function releasable(
        address beneficiary,
        address factory,
        address[] calldata managers
    ) external view returns (uint256[] memory amounts) {
        IWalletFactory factoryImpl = IWalletFactory(factory);
        amounts = new uint256[](managers.length);
        for (uint256 i; i < managers.length; ++i) {
            address wallet = factoryImpl.walletFor(beneficiary, managers[i], 0, true);
            if (wallet != address(0)) {
                IVestingWallet walletImpl = IVestingWallet(wallet);
                amounts[i] = walletImpl.releasable(EYWA);
            }
        }
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
     * `nonReentrant` function in the call stack.
     */
    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == _ENTERED;
    }
}

// SPDX-License-Identifier: UNLICENSED
// Copyright (c) Eywa.Fi, 2021-2023 - all rights reserved
pragma solidity ^0.8.17;

import "./IWalletFactory.sol";


interface IVestingWallet {
    function start() external view returns (uint256);

    function duration() external view returns (uint256);

    function cliff(uint64 timestamp) external view returns (uint256);

    function beneficiary() external view returns (address);

    function releasable(address token) external view returns (uint256);
    
    function released(address token) external view returns (uint256);
}

interface IManagedVestingWallet is IVestingWallet {
    function vestingManager() external view returns (address);
}

interface ITransferableVestingWallet1 is IManagedVestingWallet {
    function pinnedTo() external view returns (uint256);
    function pin(uint256 tokenId_) external;
    function unpin(uint256 tokenId_) external;
    function merge(address to) external;
    function increaseReleased(address token, uint256 amount) external;
}

interface ITransferableVestingWallet2 is ITransferableVestingWallet1 {
    function transfer(address beneficiary_, uint8 v, bytes32 r, bytes32 s, uint256 deadline) external;
    function transfer(address beneficiary_) external;
}

// SPDX-License-Identifier: UNLICENSED
// Copyright (c) Eywa.Fi, 2021-2023 - all rights reserved
pragma solidity ^0.8.17;

import "./IWalletFactory.sol";

interface IVestingManager {
    function PERCENTAGE_DENOM() external view returns (uint256);
    function token() external view returns (address);
    function NFT() external view returns (address);
    function DAO() external view returns (address);
    function start() external view returns (uint64);
    function duration() external view returns (uint64);
    function allowMultipleReleases() external view returns (bool);
    function cliff(uint256 timestamp) external view returns (uint256);
    function setStart(uint64) external;
    function setDuration(uint64) external;
    function addCliff(uint256 timestamp, uint256 cliff_) external;
    function removeCliff(uint256 cliffId) external;
    function setNFT(address NFT_) external;
    function setDAO(address DAO_) external;
    function walletFactory() external view returns (address);
    function attachWallet(address currentBeneficiary, address newBeneficiary) external;
    function getBeneficiaryWallets(address) external view returns (address[] memory wallets);
}

interface IVestingByWhitelist is IVestingManager {
    function claim(address beneficiary, uint256 amount, bytes32[] calldata merkleProof) external;
}

interface IVestingByNFT is IVestingManager {
    function claim(address beneficiary, uint256 amount, uint256 tokenId) external returns (address);
    function transferToWallet(address wallet, uint256 amount) external; 
}

// SPDX-License-Identifier: UNLICENSED
// Copyright (c) Eywa.Fi, 2021-2023 - all rights reserved
pragma solidity ^0.8.17;


interface IWalletFactory {
    function walletFor(address beneficiary, address vestingManager, uint256 idx, bool strict) external view returns (address);
    function createWallet(address beneficiary, address vestingManager, uint256 idx) external returns (address);
    function walletToIdx(address wallet) external returns (uint256);
    function isValidWallet(address wallet) external returns (bool);
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"EYWA","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"components":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"internalType":"struct ClaimHelper.VestingData[]","name":"data","type":"tuple[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"address","name":"factory","type":"address"},{"internalType":"address[]","name":"managers","type":"address[]"}],"name":"releasable","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"}]

608060405234801561000f575f80fd5b506040516109eb3803806109eb83398101604081905261002e916100b1565b60015f556001600160a01b03811661008c5760405162461bcd60e51b815260206004820152601960248201527f436c61696d48656c7065723a207a65726f206164647265737300000000000000604482015260640160405180910390fd5b600180546001600160a01b0319166001600160a01b03929092169190911790556100de565b5f602082840312156100c1575f80fd5b81516001600160a01b03811681146100d7575f80fd5b9392505050565b610900806100eb5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80632dbb963a146100435780634cd47f3914610058578063e5eb1ac414610088575b5f80fd5b6100566100513660046104fd565b6100a8565b005b60015461006b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61009b61009636600461054e565b61028a565b60405161007f91906105af565b6100b0610447565b5f5b8181101561027b575f8383838181106100cd576100cd6105f2565b90506020028101906100df9190610606565b6100ed906020810190610624565b9050806001600160a01b0316633d13f87486868686818110610111576101116105f2565b90506020028101906101239190610606565b60200135878787818110610139576101396105f2565b905060200281019061014b9190610606565b610159906040810190610646565b6040518563ffffffff1660e01b8152600401610178949392919061068c565b5f604051808303815f87803b15801561018f575f80fd5b505af19250505080156101a0575060015b61026a576101ac6106dc565b806308c379a0036101ee57506101c0610742565b806101cb5750610223565b8060405162461bcd60e51b81526004016101e591906107cb565b60405180910390fd5b634e487b710361022357610200610816565b9061020b5750610223565b60405162461bcd60e51b81526004016101e590610833565b3d80801561024c576040519150601f19603f3d011682016040523d82523d5f602084013e610251565b606091505b5060405162461bcd60e51b81526004016101e590610833565b5061027481610874565b90506100b2565b5061028560015f55565b505050565b6060838267ffffffffffffffff8111156102a6576102a66106f5565b6040519080825280602002602001820160405280156102cf578160200160208202803683370190505b5091505f5b8381101561043d575f826001600160a01b031663cea4bb8b898888868181106102ff576102ff6105f2565b90506020020160208101906103149190610624565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201525f604482015260016064820152608401602060405180830381865afa15801561036a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038e9190610898565b90506001600160a01b0381161561042c576001546040516351fc756760e11b81526001600160a01b039182166004820152829182169063a3f8eace90602401602060405180830381865afa1580156103e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040c91906108b3565b85848151811061041e5761041e6105f2565b602002602001018181525050505b5061043681610874565b90506102d4565b5050949350505050565b60025f54036104985760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101e5565b60025f55565b6001600160a01b03811681146104b2575f80fd5b50565b5f8083601f8401126104c5575f80fd5b50813567ffffffffffffffff8111156104dc575f80fd5b6020830191508360208260051b85010111156104f6575f80fd5b9250929050565b5f805f6040848603121561050f575f80fd5b833561051a8161049e565b9250602084013567ffffffffffffffff811115610535575f80fd5b610541868287016104b5565b9497909650939450505050565b5f805f8060608587031215610561575f80fd5b843561056c8161049e565b9350602085013561057c8161049e565b9250604085013567ffffffffffffffff811115610597575f80fd5b6105a3878288016104b5565b95989497509550505050565b602080825282518282018190525f9190848201906040850190845b818110156105e6578351835292840192918401916001016105ca565b50909695505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e1983360301811261061a575f80fd5b9190910192915050565b5f60208284031215610634575f80fd5b813561063f8161049e565b9392505050565b5f808335601e1984360301811261065b575f80fd5b83018035915067ffffffffffffffff821115610675575f80fd5b6020019150600581901b36038213156104f6575f80fd5b6001600160a01b03851681526020810184905260606040820181905281018290525f6001600160fb1b038311156106c1575f80fd5b8260051b808560808501379190910160800195945050505050565b5f60033d11156106f25760045f803e505f5160e01c5b90565b634e487b7160e01b5f52604160045260245ffd5b601f8201601f1916810167ffffffffffffffff8111828210171561073b57634e487b7160e01b5f52604160045260245ffd5b6040525050565b5f60443d101561074f5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561077f57505050505090565b82850191508151818111156107975750505050505090565b843d87010160208285010111156107b15750505050505090565b6107c060208286010187610709565b509095945050505050565b5f6020808352835180828501525f5b818110156107f6578581018301518582016040015282016107da565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060233d111561082f57602060045f3e50505f516001905b9091565b60208082526021908201527f436c61696d48656c7065723a20736f6d657468696e672077656e742077726f6e6040820152606760f81b606082015260800190565b5f6001820161089157634e487b7160e01b5f52601160045260245ffd5b5060010190565b5f602082840312156108a8575f80fd5b815161063f8161049e565b5f602082840312156108c3575f80fd5b505191905056fea264697066735822122058e3369d23328924246bf30b4de3fd229c615ae696971123d505659c5037a87264736f6c634300081400330000000000000000000000007a10f506e4c7658e6ad15fdf0443d450b7fa80d7

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c80632dbb963a146100435780634cd47f3914610058578063e5eb1ac414610088575b5f80fd5b6100566100513660046104fd565b6100a8565b005b60015461006b906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61009b61009636600461054e565b61028a565b60405161007f91906105af565b6100b0610447565b5f5b8181101561027b575f8383838181106100cd576100cd6105f2565b90506020028101906100df9190610606565b6100ed906020810190610624565b9050806001600160a01b0316633d13f87486868686818110610111576101116105f2565b90506020028101906101239190610606565b60200135878787818110610139576101396105f2565b905060200281019061014b9190610606565b610159906040810190610646565b6040518563ffffffff1660e01b8152600401610178949392919061068c565b5f604051808303815f87803b15801561018f575f80fd5b505af19250505080156101a0575060015b61026a576101ac6106dc565b806308c379a0036101ee57506101c0610742565b806101cb5750610223565b8060405162461bcd60e51b81526004016101e591906107cb565b60405180910390fd5b634e487b710361022357610200610816565b9061020b5750610223565b60405162461bcd60e51b81526004016101e590610833565b3d80801561024c576040519150601f19603f3d011682016040523d82523d5f602084013e610251565b606091505b5060405162461bcd60e51b81526004016101e590610833565b5061027481610874565b90506100b2565b5061028560015f55565b505050565b6060838267ffffffffffffffff8111156102a6576102a66106f5565b6040519080825280602002602001820160405280156102cf578160200160208202803683370190505b5091505f5b8381101561043d575f826001600160a01b031663cea4bb8b898888868181106102ff576102ff6105f2565b90506020020160208101906103149190610624565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201525f604482015260016064820152608401602060405180830381865afa15801561036a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038e9190610898565b90506001600160a01b0381161561042c576001546040516351fc756760e11b81526001600160a01b039182166004820152829182169063a3f8eace90602401602060405180830381865afa1580156103e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040c91906108b3565b85848151811061041e5761041e6105f2565b602002602001018181525050505b5061043681610874565b90506102d4565b5050949350505050565b60025f54036104985760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101e5565b60025f55565b6001600160a01b03811681146104b2575f80fd5b50565b5f8083601f8401126104c5575f80fd5b50813567ffffffffffffffff8111156104dc575f80fd5b6020830191508360208260051b85010111156104f6575f80fd5b9250929050565b5f805f6040848603121561050f575f80fd5b833561051a8161049e565b9250602084013567ffffffffffffffff811115610535575f80fd5b610541868287016104b5565b9497909650939450505050565b5f805f8060608587031215610561575f80fd5b843561056c8161049e565b9350602085013561057c8161049e565b9250604085013567ffffffffffffffff811115610597575f80fd5b6105a3878288016104b5565b95989497509550505050565b602080825282518282018190525f9190848201906040850190845b818110156105e6578351835292840192918401916001016105ca565b50909695505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f8235605e1983360301811261061a575f80fd5b9190910192915050565b5f60208284031215610634575f80fd5b813561063f8161049e565b9392505050565b5f808335601e1984360301811261065b575f80fd5b83018035915067ffffffffffffffff821115610675575f80fd5b6020019150600581901b36038213156104f6575f80fd5b6001600160a01b03851681526020810184905260606040820181905281018290525f6001600160fb1b038311156106c1575f80fd5b8260051b808560808501379190910160800195945050505050565b5f60033d11156106f25760045f803e505f5160e01c5b90565b634e487b7160e01b5f52604160045260245ffd5b601f8201601f1916810167ffffffffffffffff8111828210171561073b57634e487b7160e01b5f52604160045260245ffd5b6040525050565b5f60443d101561074f5790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561077f57505050505090565b82850191508151818111156107975750505050505090565b843d87010160208285010111156107b15750505050505090565b6107c060208286010187610709565b509095945050505050565b5f6020808352835180828501525f5b818110156107f6578581018301518582016040015282016107da565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060233d111561082f57602060045f3e50505f516001905b9091565b60208082526021908201527f436c61696d48656c7065723a20736f6d657468696e672077656e742077726f6e6040820152606760f81b606082015260800190565b5f6001820161089157634e487b7160e01b5f52601160045260245ffd5b5060010190565b5f602082840312156108a8575f80fd5b815161063f8161049e565b5f602082840312156108c3575f80fd5b505191905056fea264697066735822122058e3369d23328924246bf30b4de3fd229c615ae696971123d505659c5037a87264736f6c63430008140033

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

0000000000000000000000007a10f506e4c7658e6ad15fdf0443d450b7fa80d7

-----Decoded View---------------
Arg [0] : token (address): 0x7A10F506E4c7658e6AD15Fdf0443d450B7FA80D7

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a10f506e4c7658e6ad15fdf0443d450b7fa80d7


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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  ]

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.