# Allowlist [Git Source](https://github.com/buildship-dev/nft-contracts/blob/fd1c33a9dbefe42158dfc60d10c0afde05c713aa/contracts/extensions/allowlist-factory/Allowlist.sol) **Inherits:** [NFTExtensionUpgradeable](/wiki/src/contracts/extensions/allowlist-factory/base/NFTExtensionUpgradeable.sol/contract.NFTExtensionUpgradeable.md), [SaleControlUpgradeable](/wiki/src/contracts/extensions/allowlist-factory/base/SaleControlUpgradeable.sol/contract.SaleControlUpgradeable.md) ## State Variables ### price ```solidity uint256 public price; ``` ### maxPerAddress ```solidity uint256 public maxPerAddress; ``` ### whitelistRoot ```solidity bytes32 public whitelistRoot; ``` ### title ```solidity string public title; ``` ### claimedByAddress ```solidity mapping(address => uint256) public claimedByAddress; ``` ## Functions ### constructor ```solidity constructor() initializer; ``` ### initialize ```solidity function initialize(string memory _title, address _nft, bytes32 _whitelistRoot, uint256 _price, uint256 _maxPerAddress) public initializer; ``` ### updatePrice ```solidity function updatePrice(uint256 _price) public onlyOwner; ``` ### updateMaxPerAddress ```solidity function updateMaxPerAddress(uint256 _maxPerAddress) public onlyOwner; ``` ### updateWhitelistRoot ```solidity function updateWhitelistRoot(bytes32 _whitelistRoot) public onlyOwner; ``` ### mint ```solidity function mint(uint256 nTokens, bytes32[] memory proof) external payable whenSaleStarted; ``` ### isWhitelisted ```solidity function isWhitelisted(bytes32 root, address receiver, bytes32[] memory proof) public pure returns (bool); ```