ETH Price: $1,859.21 (-0.36%)
Gas: 29 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multi Chain

Multichain Addresses

7 addresses found via Blockscan
Transaction Hash
Method
Block
From
To
Value
Deploy DCNT721A169323722023-03-29 10:31:2364 days 1 hr ago1680085883IN
0x006A66...d37b1C6A
0 ETH0.0135272222.97472946
Deploy DCNT721A169322432023-03-29 10:05:1164 days 1 hr ago1680084311IN
0x006A66...d37b1C6A
0 ETH0.0133905323.5535784
Deploy DCNT721A169233982023-03-28 4:14:1165 days 7 hrs ago1679976851IN
0x006A66...d37b1C6A
0 ETH0.0131664521.63902215
Deploy DCNT721A168633212023-03-19 17:44:1173 days 17 hrs ago1679247851IN
0x006A66...d37b1C6A
0 ETH0.0096648618.26996275
Deploy DCNT721A167163232023-02-27 1:40:1194 days 9 hrs ago1677462011IN
0x006A66...d37b1C6A
0 ETH0.007534419.28929963
Deploy DCNT721A167087452023-02-26 0:06:5995 days 11 hrs ago1677370019IN
0x006A66...d37b1C6A
0 ETH0.0098194219.28315365
Deploy DCNT721A167012992023-02-24 22:59:3596 days 12 hrs ago1677279575IN
0x006A66...d37b1C6A
0 ETH0.0152312729.91011485
Deploy DCNT721A166946402023-02-24 0:25:3597 days 11 hrs ago1677198335IN
0x006A66...d37b1C6A
0 ETH0.0145428.55330936
Deploy DCNT721A166909172023-02-23 11:51:5997 days 23 hrs ago1677153119IN
0x006A66...d37b1C6A
0 ETH0.0166879428.22586153
Deploy DCNT721A166883762023-02-23 3:18:2398 days 8 hrs ago1677122303IN
0x006A66...d37b1C6A
0 ETH0.0271141340.36686322
Deploy DCNT721A166872832023-02-22 23:36:5998 days 11 hrs ago1677109019IN
0x006A66...d37b1C6A
0 ETH0.0152594328.9931997
Deploy DCNT721A166762612023-02-21 10:24:47100 days 1 hr ago1676975087IN
0x006A66...d37b1C6A
0 ETH0.0125294322.80836858
Deploy DCNT721A166745502023-02-21 4:37:23100 days 6 hrs ago1676954243IN
0x006A66...d37b1C6A
0 ETH0.0131091823.8637325
Deploy DCNT721A166731822023-02-20 23:59:35100 days 11 hrs ago1676937575IN
0x006A66...d37b1C6A
0 ETH0.0134701324.65997084
Deploy DCNT Stak...166359122023-02-15 18:24:59105 days 17 hrs ago1676485499IN
0x006A66...d37b1C6A
0 ETH0.0118713441.92924919
Deploy DCNT721A166317142023-02-15 4:19:23106 days 7 hrs ago1676434763IN
0x006A66...d37b1C6A
0 ETH0.0180427533.01806898
Deploy DCNT721A166309132023-02-15 1:38:23106 days 9 hrs ago1676425103IN
0x006A66...d37b1C6A
0 ETH0.0195676234.07730107
Deploy DCNT721A166211362023-02-13 16:49:59107 days 18 hrs ago1676306999IN
0x006A66...d37b1C6A
0 ETH0.0191963132.73815783
Deploy DCNT721A166114622023-02-12 8:23:59109 days 3 hrs ago1676190239IN
0x006A66...d37b1C6A
0 ETH0.0111728718.98144707
Deploy DCNT721A166011362023-02-10 21:47:23110 days 13 hrs ago1676065643IN
0x006A66...d37b1C6A
0 ETH0.0248424339.65304598
Deploy DCNT721A165881662023-02-09 2:18:23112 days 9 hrs ago1675909103IN
0x006A66...d37b1C6A
0 ETH0.0159748128.20237921
Deploy DCNT721A165877892023-02-09 1:02:47112 days 10 hrs ago1675904567IN
0x006A66...d37b1C6A
0 ETH0.0146310927.7980731
Deploy DCNT721A165657502023-02-05 23:04:59115 days 12 hrs ago1675638299IN
0x006A66...d37b1C6A
0 ETH0.0101871817.89702137
Deploy DCNT721A165485292023-02-03 13:23:35117 days 22 hrs ago1675430615IN
0x006A66...d37b1C6A
0 ETH0.0126941622.42155868
Deploy DCNT721A165178502023-01-30 6:28:35122 days 5 hrs ago1675060115IN
0x006A66...d37b1C6A
0 ETH0.0074306913.60527242
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Txn Hash Block From To Value
169323722023-03-29 10:31:2364 days 1 hr ago1680085883
0x006A66...d37b1C6A
 Contract Creation0 ETH
169322432023-03-29 10:05:1164 days 1 hr ago1680084311
0x006A66...d37b1C6A
 Contract Creation0 ETH
169233982023-03-28 4:14:1165 days 7 hrs ago1679976851
0x006A66...d37b1C6A
 Contract Creation0 ETH
168633212023-03-19 17:44:1173 days 17 hrs ago1679247851
0x006A66...d37b1C6A
 Contract Creation0 ETH
167163232023-02-27 1:40:1194 days 9 hrs ago1677462011
0x006A66...d37b1C6A
 Contract Creation0 ETH
167087452023-02-26 0:06:5995 days 11 hrs ago1677370019
0x006A66...d37b1C6A
 Contract Creation0 ETH
167012992023-02-24 22:59:3596 days 12 hrs ago1677279575
0x006A66...d37b1C6A
 Contract Creation0 ETH
166946402023-02-24 0:25:3597 days 11 hrs ago1677198335
0x006A66...d37b1C6A
 Contract Creation0 ETH
166909172023-02-23 11:51:5997 days 23 hrs ago1677153119
0x006A66...d37b1C6A
 Contract Creation0 ETH
166883762023-02-23 3:18:2398 days 8 hrs ago1677122303
0x006A66...d37b1C6A
 Contract Creation0 ETH
166872832023-02-22 23:36:5998 days 11 hrs ago1677109019
0x006A66...d37b1C6A
 Contract Creation0 ETH
166762612023-02-21 10:24:47100 days 1 hr ago1676975087
0x006A66...d37b1C6A
 Contract Creation0 ETH
166762342023-02-21 10:19:11100 days 1 hr ago1676974751
0x006A66...d37b1C6A
0.1228901 ETH
166745502023-02-21 4:37:23100 days 6 hrs ago1676954243
0x006A66...d37b1C6A
 Contract Creation0 ETH
166731822023-02-20 23:59:35100 days 11 hrs ago1676937575
0x006A66...d37b1C6A
 Contract Creation0 ETH
166359122023-02-15 18:24:59105 days 17 hrs ago1676485499
0x006A66...d37b1C6A
 Contract Creation0 ETH
166317142023-02-15 4:19:23106 days 7 hrs ago1676434763
0x006A66...d37b1C6A
 Contract Creation0 ETH
166309132023-02-15 1:38:23106 days 9 hrs ago1676425103
0x006A66...d37b1C6A
 Contract Creation0 ETH
166211362023-02-13 16:49:59107 days 18 hrs ago1676306999
0x006A66...d37b1C6A
 Contract Creation0 ETH
166114622023-02-12 8:23:59109 days 3 hrs ago1676190239
0x006A66...d37b1C6A
 Contract Creation0 ETH
166011362023-02-10 21:47:23110 days 13 hrs ago1676065643
0x006A66...d37b1C6A
 Contract Creation0 ETH
165881662023-02-09 2:18:23112 days 9 hrs ago1675909103
0x006A66...d37b1C6A
 Contract Creation0 ETH
165877892023-02-09 1:02:47112 days 10 hrs ago1675904567
0x006A66...d37b1C6A
 Contract Creation0 ETH
165657502023-02-05 23:04:59115 days 12 hrs ago1675638299
0x006A66...d37b1C6A
 Contract Creation0 ETH
165485292023-02-03 13:23:35117 days 22 hrs ago1675430615
0x006A66...d37b1C6A
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x3a50cf...C0627c72

Contract Name:
DCNTSDK

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 9 : 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 2 of 9 : Clones.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (proxy/Clones.sol)

pragma solidity ^0.8.0;

/**
 * @dev https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for
 * deploying minimal proxy contracts, also known as "clones".
 *
 * > To simply and cheaply clone contract functionality in an immutable way, this standard specifies
 * > a minimal bytecode implementation that delegates all calls to a known, fixed address.
 *
 * The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`
 * (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the
 * deterministic method.
 *
 * _Available since v3.4._
 */
library Clones {
    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create opcode, which should never revert.
     */
    function clone(address implementation) internal returns (address instance) {
        /// @solidity memory-safe-assembly
        assembly {
            // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes
            // of the `implementation` address with the bytecode before the address.
            mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))
            // Packs the remaining 17 bytes of `implementation` with the bytecode after the address.
            mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))
            instance := create(0, 0x09, 0x37)
        }
        require(instance != address(0), "ERC1167: create failed");
    }

    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create2 opcode and a `salt` to deterministically deploy
     * the clone. Using the same `implementation` and `salt` multiple time will revert, since
     * the clones cannot be deployed twice at the same address.
     */
    function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) {
        /// @solidity memory-safe-assembly
        assembly {
            // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes
            // of the `implementation` address with the bytecode before the address.
            mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))
            // Packs the remaining 17 bytes of `implementation` with the bytecode after the address.
            mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))
            instance := create2(0, 0x09, 0x37, salt)
        }
        require(instance != address(0), "ERC1167: create2 failed");
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     */
    function predictDeterministicAddress(
        address implementation,
        bytes32 salt,
        address deployer
    ) internal pure returns (address predicted) {
        /// @solidity memory-safe-assembly
        assembly {
            let ptr := mload(0x40)
            mstore(add(ptr, 0x38), deployer)
            mstore(add(ptr, 0x24), 0x5af43d82803e903d91602b57fd5bf3ff)
            mstore(add(ptr, 0x14), implementation)
            mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73)
            mstore(add(ptr, 0x58), salt)
            mstore(add(ptr, 0x78), keccak256(add(ptr, 0x0c), 0x37))
            predicted := keccak256(add(ptr, 0x43), 0x55)
        }
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     */
    function predictDeterministicAddress(address implementation, bytes32 salt)
        internal
        view
        returns (address predicted)
    {
        return predictDeterministicAddress(implementation, salt, address(this));
    }
}

File 3 of 9 : 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;
    }
}

File 4 of 9 : DCNTSDK.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/*
 ______   _______  _______  _______  _       _________
(  __  \ (  ____ \(  ____ \(  ____ \( (    /|\__   __/
| (  \  )| (    \/| (    \/| (    \/|  \  ( |   ) (
| |   ) || (__    | |      | (__    |   \ | |   | |
| |   | ||  __)   | |      |  __)   | (\ \) |   | |
| |   ) || (      | |      | (      | | \   |   | |
| (__/  )| (____/\| (____/\| (____/\| )  \  |   | |
(______/ (_______/(_______/(_______/|/    )_)   )_(

*/

/// ============ Imports ============

import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/proxy/Clones.sol";
import "./interfaces/IDCNTRegistry.sol";
import "./storage/EditionConfig.sol";
import "./storage/MetadataConfig.sol";
import "./storage/TokenGateConfig.sol";
import "./storage/CrescendoConfig.sol";

contract DCNTSDK is Ownable {
  /// ============ Storage ===========
  /// @notice implementation addresses for base contracts
  address public DCNT721AImplementation;
  address public DCNT4907AImplementation;
  address public DCNTCrescendoImplementation;
  address public DCNTVaultImplementation;
  address public DCNTStakingImplementation;
  address public ZKEditionImplementation;

  /// @notice address of the metadata renderer
  address public metadataRenderer;

  /// @notice address of the associated registry
  address public contractRegistry;

  /// @notice addresses for splits contract
  address public SplitMain;

  /// ============ Events ============

  /// @notice Emitted after successfully deploying a contract
  event DeployDCNT721A(address DCNT721A);
  event DeployDCNT4907A(address DCNT4907A);
  event DeployDCNTCrescendo(address DCNTCrescendo);
  event DeployDCNTVault(address DCNTVault);
  event DeployDCNTStaking(address DCNTStaking);
  event DeployZKEdition(address ZKEdition);

  /// ============ Constructor ============

  /// @notice Creates a new DecentSDK instance
  constructor(
    address _DCNT721AImplementation,
    address _DCNT4907AImplementation,
    address _DCNTCrescendoImplementation,
    address _DCNTVaultImplementation,
    address _DCNTStakingImplementation,
    address _metadataRenderer,
    address _contractRegistry,
    address _SplitMain,
    address _ZKEditionImplementation
  ) {
    DCNT721AImplementation = _DCNT721AImplementation;
    DCNT4907AImplementation = _DCNT4907AImplementation;
    DCNTCrescendoImplementation = _DCNTCrescendoImplementation;
    DCNTVaultImplementation = _DCNTVaultImplementation;
    DCNTStakingImplementation = _DCNTStakingImplementation;
    metadataRenderer = _metadataRenderer;
    contractRegistry = _contractRegistry;
    SplitMain = _SplitMain;
    ZKEditionImplementation = _ZKEditionImplementation;
  }

  /// ============ Functions ============

  /// @notice deploy and initialize an erc721a clone
  function deployDCNT721A(
    EditionConfig memory _editionConfig,
    MetadataConfig memory _metadataConfig,
    TokenGateConfig memory _tokenGateConfig
  ) external returns (address clone) {
    clone = Clones.clone(DCNT721AImplementation);
    (bool success, ) = clone.call(
      abi.encodeWithSignature(
        "initialize("
          "address,"
          "(string,string,bool,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256),"
          "(string,string,bytes,address),"
          "(address,uint88,uint8),"
          "address,"
          "address"
        ")",
        msg.sender,
        _editionConfig,
        _metadataConfig,
        _tokenGateConfig,
        metadataRenderer,
        SplitMain
      )
    );
    require(success);
    IDCNTRegistry(contractRegistry).register(msg.sender, clone, "DCNT721A");
    emit DeployDCNT721A(clone);
  }

  /// @notice deploy and initialize a ZKEdition clone
  function deployZKEdition(
    EditionConfig memory _editionConfig,
    MetadataConfig memory _metadataConfig,
    TokenGateConfig memory _tokenGateConfig,
    address zkVerifier
  ) external returns (address clone) {
    clone = Clones.clone(ZKEditionImplementation); //zkedition implementation
    (bool success, ) = clone.call(
      abi.encodeWithSignature(
        "initialize("
          "address,"
          "(string,string,bool,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256),"
          "(string,string,bytes,address),"
          "(address,uint88,uint8),"
          "address,"
          "address,"
          "address"
        ")",
        msg.sender,
        _editionConfig,
        _metadataConfig,
        _tokenGateConfig,
        metadataRenderer,
        SplitMain,
        zkVerifier
      )
    );
    require(success);
    IDCNTRegistry(contractRegistry).register(msg.sender, clone, "ZKEdition");
    emit DeployZKEdition(clone);
  }

  /// @notice deploy and initialize an erc4907a clone
  function deployDCNT4907A(
    EditionConfig memory _editionConfig,
    MetadataConfig memory _metadataConfig,
    TokenGateConfig memory _tokenGateConfig
  ) external returns (address clone) {
    clone = Clones.clone(DCNT4907AImplementation);
    (bool success, ) = clone.call(
      abi.encodeWithSignature(
        "initialize("
          "address,"
          "(string,string,bool,uint256,uint256,uint256,bytes32,uint256,uint256,uint256,uint256,uint256),"
          "(string,string,bytes,address),"
          "(address,uint88,uint8),"
          "address,"
          "address"
        ")",
        msg.sender,
        _editionConfig,
        _metadataConfig,
        _tokenGateConfig,
        metadataRenderer,
        SplitMain
      )
    );
    require(success);
    IDCNTRegistry(contractRegistry).register(msg.sender, clone, "DCNT4907A");
    emit DeployDCNT4907A(clone);
  }

  // deploy and initialize a Crescendo clone
  function deployDCNTCrescendo(
    CrescendoConfig memory _config,
    MetadataConfig memory _metadataConfig
  ) external returns (address clone) {
    clone = Clones.clone(DCNTCrescendoImplementation);
    (bool success, ) = clone.call(
      abi.encodeWithSignature(
        "initialize("
          "address,"
          "(string,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),"
          "(string,string,bytes,address),"
          "address,"
          "address"
        ")",
        msg.sender,
        _config,
        _metadataConfig,
        metadataRenderer,
        SplitMain
      )
    );
    require(success);
    IDCNTRegistry(contractRegistry).register(
      msg.sender,
      clone,
      "DCNTCrescendo"
    );
    emit DeployDCNTCrescendo(clone);
  }

  // deploy and initialize a vault wrapper clone
  function deployDCNTVault(
    address _vaultDistributionTokenAddress,
    address _nftVaultKeyAddress,
    uint256 _nftTotalSupply,
    uint256 _unlockDate
  ) external returns (address clone) {
    clone = Clones.clone(DCNTVaultImplementation);
    (bool success, ) = clone.call(
      abi.encodeWithSignature(
        "initialize(address,address,address,uint256,uint256)",
        msg.sender,
        _vaultDistributionTokenAddress,
        _nftVaultKeyAddress,
        _nftTotalSupply,
        _unlockDate
      )
    );
    require(success);
    IDCNTRegistry(contractRegistry).register(msg.sender, clone, "DCNTVault");
    emit DeployDCNTVault(clone);
  }

  // deploy and initialize a vault wrapper clone
  function deployDCNTStaking(
    address _nft,
    address _token,
    uint256 _vaultDuration,
    uint256 _totalSupply
  ) external returns (address clone) {
    clone = Clones.clone(DCNTStakingImplementation);
    (bool success, ) = clone.call(
      abi.encodeWithSignature(
        "initialize(address,address,address,uint256,uint256)",
        msg.sender,
        _nft,
        _token,
        _vaultDuration,
        _totalSupply
      )
    );
    require(success);
    IDCNTRegistry(contractRegistry).register(msg.sender, clone, "DCNTStaking");
    emit DeployDCNTStaking(clone);
  }
}

File 5 of 9 : IDCNTRegistry.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IDCNTRegistry {
  function register(
    address _deployer,
    address _deployment,
    string calldata _key
  ) external;

  function remove(address _deployer, address _deployment) external;

  function query(address _deployer) external returns (address[] memory);
}

File 6 of 9 : CrescendoConfig.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

struct CrescendoConfig {
  string name;
  string symbol;
  uint256 initialPrice;
  uint256 step1;
  uint256 step2;
  uint256 hitch;
  uint256 takeRateBPS;
  uint256 unlockDate;
  uint256 saleStart;
  uint256 royaltyBPS;
}

File 7 of 9 : EditionConfig.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

struct EditionConfig {
  string name;
  string symbol;
  bool hasAdjustableCap;
  uint256 maxTokens;
  uint256 tokenPrice;
  uint256 maxTokenPurchase;
  bytes32 presaleMerkleRoot;
  uint256 presaleStart;
  uint256 presaleEnd;
  uint256 saleStart;
  uint256 saleEnd;
  uint256 royaltyBPS;
}

File 8 of 9 : MetadataConfig.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

struct MetadataConfig {
  string contractURI;
  string metadataURI;
  bytes metadataRendererInit;
  address parentIP;
}

File 9 of 9 : TokenGateConfig.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

enum SaleType {
  ALL,
  PRESALE,
  PRIMARY
}

struct TokenGateConfig {
  address tokenAddress; 
  uint88 minBalance;
  SaleType saleType;
}

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":"_DCNT721AImplementation","type":"address"},{"internalType":"address","name":"_DCNT4907AImplementation","type":"address"},{"internalType":"address","name":"_DCNTCrescendoImplementation","type":"address"},{"internalType":"address","name":"_DCNTVaultImplementation","type":"address"},{"internalType":"address","name":"_DCNTStakingImplementation","type":"address"},{"internalType":"address","name":"_metadataRenderer","type":"address"},{"internalType":"address","name":"_contractRegistry","type":"address"},{"internalType":"address","name":"_SplitMain","type":"address"},{"internalType":"address","name":"_ZKEditionImplementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DCNT4907A","type":"address"}],"name":"DeployDCNT4907A","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DCNT721A","type":"address"}],"name":"DeployDCNT721A","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DCNTCrescendo","type":"address"}],"name":"DeployDCNTCrescendo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DCNTStaking","type":"address"}],"name":"DeployDCNTStaking","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"DCNTVault","type":"address"}],"name":"DeployDCNTVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ZKEdition","type":"address"}],"name":"DeployZKEdition","type":"event"},{"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":"DCNT4907AImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DCNT721AImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DCNTCrescendoImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DCNTStakingImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DCNTVaultImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SplitMain","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZKEditionImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"bool","name":"hasAdjustableCap","type":"bool"},{"internalType":"uint256","name":"maxTokens","type":"uint256"},{"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"internalType":"uint256","name":"maxTokenPurchase","type":"uint256"},{"internalType":"bytes32","name":"presaleMerkleRoot","type":"bytes32"},{"internalType":"uint256","name":"presaleStart","type":"uint256"},{"internalType":"uint256","name":"presaleEnd","type":"uint256"},{"internalType":"uint256","name":"saleStart","type":"uint256"},{"internalType":"uint256","name":"saleEnd","type":"uint256"},{"internalType":"uint256","name":"royaltyBPS","type":"uint256"}],"internalType":"struct EditionConfig","name":"_editionConfig","type":"tuple"},{"components":[{"internalType":"string","name":"contractURI","type":"string"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"bytes","name":"metadataRendererInit","type":"bytes"},{"internalType":"address","name":"parentIP","type":"address"}],"internalType":"struct MetadataConfig","name":"_metadataConfig","type":"tuple"},{"components":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint88","name":"minBalance","type":"uint88"},{"internalType":"enum SaleType","name":"saleType","type":"uint8"}],"internalType":"struct TokenGateConfig","name":"_tokenGateConfig","type":"tuple"}],"name":"deployDCNT4907A","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"bool","name":"hasAdjustableCap","type":"bool"},{"internalType":"uint256","name":"maxTokens","type":"uint256"},{"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"internalType":"uint256","name":"maxTokenPurchase","type":"uint256"},{"internalType":"bytes32","name":"presaleMerkleRoot","type":"bytes32"},{"internalType":"uint256","name":"presaleStart","type":"uint256"},{"internalType":"uint256","name":"presaleEnd","type":"uint256"},{"internalType":"uint256","name":"saleStart","type":"uint256"},{"internalType":"uint256","name":"saleEnd","type":"uint256"},{"internalType":"uint256","name":"royaltyBPS","type":"uint256"}],"internalType":"struct EditionConfig","name":"_editionConfig","type":"tuple"},{"components":[{"internalType":"string","name":"contractURI","type":"string"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"bytes","name":"metadataRendererInit","type":"bytes"},{"internalType":"address","name":"parentIP","type":"address"}],"internalType":"struct MetadataConfig","name":"_metadataConfig","type":"tuple"},{"components":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint88","name":"minBalance","type":"uint88"},{"internalType":"enum SaleType","name":"saleType","type":"uint8"}],"internalType":"struct TokenGateConfig","name":"_tokenGateConfig","type":"tuple"}],"name":"deployDCNT721A","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"initialPrice","type":"uint256"},{"internalType":"uint256","name":"step1","type":"uint256"},{"internalType":"uint256","name":"step2","type":"uint256"},{"internalType":"uint256","name":"hitch","type":"uint256"},{"internalType":"uint256","name":"takeRateBPS","type":"uint256"},{"internalType":"uint256","name":"unlockDate","type":"uint256"},{"internalType":"uint256","name":"saleStart","type":"uint256"},{"internalType":"uint256","name":"royaltyBPS","type":"uint256"}],"internalType":"struct CrescendoConfig","name":"_config","type":"tuple"},{"components":[{"internalType":"string","name":"contractURI","type":"string"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"bytes","name":"metadataRendererInit","type":"bytes"},{"internalType":"address","name":"parentIP","type":"address"}],"internalType":"struct MetadataConfig","name":"_metadataConfig","type":"tuple"}],"name":"deployDCNTCrescendo","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_nft","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_vaultDuration","type":"uint256"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"name":"deployDCNTStaking","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vaultDistributionTokenAddress","type":"address"},{"internalType":"address","name":"_nftVaultKeyAddress","type":"address"},{"internalType":"uint256","name":"_nftTotalSupply","type":"uint256"},{"internalType":"uint256","name":"_unlockDate","type":"uint256"}],"name":"deployDCNTVault","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"bool","name":"hasAdjustableCap","type":"bool"},{"internalType":"uint256","name":"maxTokens","type":"uint256"},{"internalType":"uint256","name":"tokenPrice","type":"uint256"},{"internalType":"uint256","name":"maxTokenPurchase","type":"uint256"},{"internalType":"bytes32","name":"presaleMerkleRoot","type":"bytes32"},{"internalType":"uint256","name":"presaleStart","type":"uint256"},{"internalType":"uint256","name":"presaleEnd","type":"uint256"},{"internalType":"uint256","name":"saleStart","type":"uint256"},{"internalType":"uint256","name":"saleEnd","type":"uint256"},{"internalType":"uint256","name":"royaltyBPS","type":"uint256"}],"internalType":"struct EditionConfig","name":"_editionConfig","type":"tuple"},{"components":[{"internalType":"string","name":"contractURI","type":"string"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"bytes","name":"metadataRendererInit","type":"bytes"},{"internalType":"address","name":"parentIP","type":"address"}],"internalType":"struct MetadataConfig","name":"_metadataConfig","type":"tuple"},{"components":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint88","name":"minBalance","type":"uint88"},{"internalType":"enum SaleType","name":"saleType","type":"uint8"}],"internalType":"struct TokenGateConfig","name":"_tokenGateConfig","type":"tuple"},{"internalType":"address","name":"zkVerifier","type":"address"}],"name":"deployZKEdition","outputs":[{"internalType":"address","name":"clone","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"metadataRenderer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051620019a9380380620019a983398101604081905262000034916200014d565b6200003f33620000e0565b600180546001600160a01b03199081166001600160a01b039b8c1617909155600280548216998b1699909917909855600380548916978a1697909717909655600480548816958916959095179094556005805487169388169390931790925560078054861691871691909117905560088054851691861691909117905560098054841691851691909117905560068054909216921691909117905562000208565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200014857600080fd5b919050565b60008060008060008060008060006101208a8c0312156200016d57600080fd5b620001788a62000130565b98506200018860208b0162000130565b97506200019860408b0162000130565b9650620001a860608b0162000130565b9550620001b860808b0162000130565b9450620001c860a08b0162000130565b9350620001d860c08b0162000130565b9250620001e860e08b0162000130565b9150620001f96101008b0162000130565b90509295985092959850929598565b61179180620002186000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80639f61dfec116100a2578063ca825bb511610071578063ca825bb514610223578063d0ae315a14610236578063e295877c14610249578063eef702e91461025c578063f2fde38b1461026f57600080fd5b80639f61dfec146101d7578063abf410e5146101ea578063b4675ed6146101fd578063bc10a4fa1461021057600080fd5b806370319970116100e95780637031997014610183578063715018a61461019657806373d622f8146101a057806380fab9ee146101b35780638da5cb5b146101c657600080fd5b806310a089131461011b578063389058981461014a5780633c3b370b1461015d5780634285656b14610170575b600080fd5b60015461012e906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61012e610158366004610fe8565b610282565b60055461012e906001600160a01b031681565b60025461012e906001600160a01b031681565b60075461012e906001600160a01b031681565b61019e61041d565b005b61012e6101ae3660046110f5565b610431565b61012e6101c13660046112b2565b6105d5565b6000546001600160a01b031661012e565b60045461012e906001600160a01b031681565b60085461012e906001600160a01b031681565b61012e61020b3660046112b2565b610773565b61012e61021e3660046110f5565b610905565b60035461012e906001600160a01b031681565b60065461012e906001600160a01b031681565b61012e610257366004611327565b610a9e565b60095461012e906001600160a01b031681565b61019e61027d3660046113ad565b610c32565b60035460009061029a906001600160a01b0316610cb0565b6007546009546040519293506000926001600160a01b03808616936102cc9333938a938a93811692169060240161147f565b60408051601f198184030181529181526020820180516001600160e01b0316624ee2bb60e71b17905251610300919061156c565b6000604051808303816000865af19150503d806000811461033d576040519150601f19603f3d011682016040523d82523d6000602084013e610342565b606091505b505090508061035057600080fd5b60085460405163ede4973960e01b81523360048201526001600160a01b03848116602483015260606044830152600d60648301526c44434e544372657363656e646f60981b60848301529091169063ede497399060a401600060405180830381600087803b1580156103c157600080fd5b505af11580156103d5573d6000803e3d6000fd5b50506040516001600160a01b03851681527f2c14c8ffafc8bfdf42e6469d6c292eeaebf445beafb817fb0bc9df3ebd89f0069250602001905060405180910390a15092915050565b610425610d4a565b61042f6000610da4565b565b600454600090610449906001600160a01b0316610cb0565b6040513360248201526001600160a01b03878116604483015286811660648301526084820186905260a4820185905291925060009183169060c40160408051601f198184030181529181526020820180516001600160e01b03166314d6c7d760e31b179052516104b9919061156c565b6000604051808303816000865af19150503d80600081146104f6576040519150601f19603f3d011682016040523d82523d6000602084013e6104fb565b606091505b505090508061050957600080fd5b60085460405163ede4973960e01b81523360048201526001600160a01b0384811660248301526060604483015260096064830152681110d39515985d5b1d60ba1b60848301529091169063ede497399060a401600060405180830381600087803b15801561057657600080fd5b505af115801561058a573d6000803e3d6000fd5b50506040516001600160a01b03851681527ff12b488daa6140ffee78fe266c37addbbaea912b09ce36e613a17844dac4255b925060200190505b60405180910390a150949350505050565b6001546000906105ed906001600160a01b0316610cb0565b6007546009546040519293506000926001600160a01b03808616936106239333938b938b938b9390821692911690602401611687565b60408051601f198184030181529181526020820180516001600160e01b03166364f7af7760e11b17905251610658919061156c565b6000604051808303816000865af19150503d8060008114610695576040519150601f19603f3d011682016040523d82523d6000602084013e61069a565b606091505b50509050806106a857600080fd5b6008805460405163ede4973960e01b81523360048201526001600160a01b0385811660248301526060604483015260648201939093526744434e543732314160c01b608482015291169063ede497399060a401600060405180830381600087803b15801561071557600080fd5b505af1158015610729573d6000803e3d6000fd5b50506040516001600160a01b03851681527f149ce80ffd882db4157fb46dd05201336d87f52ace89212615557e5455b8a0df925060200190505b60405180910390a1509392505050565b60025460009061078b906001600160a01b0316610cb0565b6007546009546040519293506000926001600160a01b03808616936107c19333938b938b938b9390821692911690602401611687565b60408051601f198184030181529181526020820180516001600160e01b03166364f7af7760e11b179052516107f6919061156c565b6000604051808303816000865af19150503d8060008114610833576040519150601f19603f3d011682016040523d82523d6000602084013e610838565b606091505b505090508061084657600080fd5b60085460405163ede4973960e01b81523360048201526001600160a01b03848116602483015260606044830152600960648301526844434e54343930374160b81b60848301529091169063ede497399060a401600060405180830381600087803b1580156108b357600080fd5b505af11580156108c7573d6000803e3d6000fd5b50506040516001600160a01b03851681527f3758a9cde202b40b236c1867c2734461fd598d835ad020bda26ca4f85838f2c492506020019050610763565b60055460009061091d906001600160a01b0316610cb0565b6040513360248201526001600160a01b03878116604483015286811660648301526084820186905260a4820185905291925060009183169060c40160408051601f198184030181529181526020820180516001600160e01b03166314d6c7d760e31b1790525161098d919061156c565b6000604051808303816000865af19150503d80600081146109ca576040519150601f19603f3d011682016040523d82523d6000602084013e6109cf565b606091505b50509050806109dd57600080fd5b60085460405163ede4973960e01b81523360048201526001600160a01b03848116602483015260606044830152600b60648301526a44434e545374616b696e6760a81b60848301529091169063ede497399060a401600060405180830381600087803b158015610a4c57600080fd5b505af1158015610a60573d6000803e3d6000fd5b50506040516001600160a01b03851681527fe9eeb18af71a650338802cfcb86b39b211ed34fd8a37cacc5a16514a183e8d66925060200190506105c4565b600654600090610ab6906001600160a01b0316610cb0565b6007546009546040519293506000926001600160a01b0380861693610aee9333938c938c938c93908216929116908b906024016116ed565b60408051601f198184030181529181526020820180516001600160e01b0316637385777f60e11b17905251610b23919061156c565b6000604051808303816000865af19150503d8060008114610b60576040519150601f19603f3d011682016040523d82523d6000602084013e610b65565b606091505b5050905080610b7357600080fd5b60085460405163ede4973960e01b81523360048201526001600160a01b0384811660248301526060604483015260096064830152682d25a2b234ba34b7b760b91b60848301529091169063ede497399060a401600060405180830381600087803b158015610be057600080fd5b505af1158015610bf4573d6000803e3d6000fd5b50506040516001600160a01b03851681527f49451ac6869c0fa590f484823265bd786e5c483c78431c2fc0cc2f7f939678e4925060200190506105c4565b610c3a610d4a565b6001600160a01b038116610ca45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610cad81610da4565b50565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b038116610d455760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401610c9b565b919050565b6000546001600160a01b0316331461042f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c9b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610e2d57610e2d610df4565b60405290565b604051610140810167ffffffffffffffff81118282101715610e2d57610e2d610df4565b604051610180810167ffffffffffffffff81118282101715610e2d57610e2d610df4565b600067ffffffffffffffff80841115610e9657610e96610df4565b604051601f8501601f19908116603f01168101908282118183101715610ebe57610ebe610df4565b81604052809350858152868686011115610ed757600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112610f0257600080fd5b610f1183833560208501610e7b565b9392505050565b80356001600160a01b0381168114610d4557600080fd5b600060808284031215610f4157600080fd5b610f49610e0a565b9050813567ffffffffffffffff80821115610f6357600080fd5b610f6f85838601610ef1565b83526020840135915080821115610f8557600080fd5b610f9185838601610ef1565b60208401526040840135915080821115610faa57600080fd5b508201601f81018413610fbc57600080fd5b610fcb84823560208401610e7b565b604083015250610fdd60608301610f18565b606082015292915050565b60008060408385031215610ffb57600080fd5b823567ffffffffffffffff8082111561101357600080fd5b90840190610140828703121561102857600080fd5b611030610e33565b82358281111561103f57600080fd5b61104b88828601610ef1565b82525060208301358281111561106057600080fd5b61106c88828601610ef1565b60208301525060408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152508094505060208501359150808211156110de57600080fd5b506110eb85828601610f2f565b9150509250929050565b6000806000806080858703121561110b57600080fd5b61111485610f18565b935061112260208601610f18565b93969395505050506040820135916060013590565b80358015158114610d4557600080fd5b6000610180828403121561115a57600080fd5b611162610e57565b9050813567ffffffffffffffff8082111561117c57600080fd5b61118885838601610ef1565b8352602084013591508082111561119e57600080fd5b506111ab84828501610ef1565b6020830152506111bd60408301611137565b6040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e082015261010080830135818301525061012080830135818301525061014080830135818301525061016080830135818301525092915050565b60006060828403121561123c57600080fd5b6040516060810181811067ffffffffffffffff8211171561125f5761125f610df4565b60405290508061126e83610f18565b815260208301356affffffffffffffffffffff8116811461128e57600080fd5b60208201526040830135600381106112a557600080fd5b6040919091015292915050565b600080600060a084860312156112c757600080fd5b833567ffffffffffffffff808211156112df57600080fd5b6112eb87838801611147565b9450602086013591508082111561130157600080fd5b5061130e86828701610f2f565b92505061131e856040860161122a565b90509250925092565b60008060008060c0858703121561133d57600080fd5b843567ffffffffffffffff8082111561135557600080fd5b61136188838901611147565b9550602087013591508082111561137757600080fd5b5061138487828801610f2f565b935050611394866040870161122a565b91506113a260a08601610f18565b905092959194509250565b6000602082840312156113bf57600080fd5b610f1182610f18565b60005b838110156113e35781810151838201526020016113cb565b50506000910152565b600081518084526114048160208601602086016113c8565b601f01601f19169290920160200192915050565b600081516080845261142d60808501826113ec565b90506020830151848203602086015261144682826113ec565b9150506040830151848203604086015261146082826113ec565b6060948501516001600160a01b03169590940194909452509092915050565b60018060a01b038616815260a06020820152600085516101408060a08501526114ac6101e08501836113ec565b91506020880151609f198584030160c08601526114c983826113ec565b925050604088015160e08501526060880151610100818187015260808a01519150610120828188015260a08b01518488015260c08b015161016088015260e08b0151610180880152818b01516101a0880152808b01516101c088015250505050828103604084015261153b8187611418565b91505061155360608301856001600160a01b03169052565b6001600160a01b03831660808301529695505050505050565b6000825161157e8184602087016113c8565b9190910192915050565b6000610180825181855261159e828601826113ec565b915050602083015184820360208601526115b882826113ec565b91505060408301516115ce604086018215159052565b50606083810151908501526080808401519085015260a0808401519085015260c0808401519085015260e080840151908501526101008084015190850152610120808401519085015261014080840151908501526101609283015192909301919091525090565b80516001600160a01b031682526020808201516affffffffffffffffffffff169083015260408101516003811061167c57634e487b7160e01b600052602160045260246000fd5b806040840152505050565b6001600160a01b038781168252610100602083018190526000916116ad8483018a611588565b915083820360408501526116c18289611418565b92506116d06060850188611635565b80861660c085015280851660e08501525050979650505050505050565b6001600160a01b038881168252610120602083018190526000916117138483018b611588565b91508382036040850152611727828a611418565b92506117366060850189611635565b95861660c08401525092841660e082015292166101009092019190915294935050505056fea2646970667358221220b1a762e510db2551afcc2f6cf716511c8279bb06300ebcfe5a154c239dbf206264736f6c634300081100330000000000000000000000007f6c3d5c5524b6b48607ef617f3c311ffd6d0588000000000000000000000000ba489b949294b3be8f0413ff2a734a823845a2dc0000000000000000000000002983589c067b36078ab65a603d9ce4bfba5e115c00000000000000000000000036c3a2b8550558fe7eb86541dafed469cacd2ff9000000000000000000000000d0fb925f5ff15fcad74e7f0fa9242fd2ec8d190a00000000000000000000000049799190ad4ef8299e0d078eef07bdb4309f718600000000000000000000000079cc3c93e7bec01e03ee3249e1a661dd09a1cbcd0000000000000000000000002ed6c4b5da6378c7897ac67ba9e43102feb694ee000000000000000000000000537af717cd649ae3307fcfd9c078e817df8b646c

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.