Setting Up a Drop
Introduction
Liteflow's drop system is designed to integrate seamlessly with your deployed collections, allowing you to manage and execute drops directly from the dashboard. This guide will walk you through the process of creating a drop, detailing the smart contract requirements and functions needed.
Prerequisites
Before creating a drop, ensure you have:
- A deployed collection ready to be connected to the drop system.
- A Liteflow account with access to the dashboard (opens in a new tab).
Steps to Create a Drop
Navigate to the New drop (opens in a new tab) section in your Liteflow dashboard and follow these steps:
Select a Collection
Choose a deployed collection from the list. If your collection is not listed, import it by following the provided link.
Set the Drop Details
During this phase, you'll establish the specifics of your NFT drop:
Drop Title: Choose a distinctive and relevant title that will be visible to users and serve as the identifier for your drop within the dashboard. e.g. 'Public Sale', 'Early Access', 'Founder's Drop'
Mint price per unit: Set the price for each NFT minted during the drop. This price can be set in the native token of the blockchain (eg: ETH). e.g. 0.1 ETH
Start Date and End Date: Schedule the opening and closing of your drop, defining the timeframe during which the NFTs can be minted. e.g. 01/01/2024 - 01/02/2024 for a month-long drop.
ABI of the Smart Contract: Upload the ABI JSON file, which is vital for allowing Liteflow to call the correct functions within your smart contract. For more information on ABIs, see Understanding Application Binary Interfaces (ABI) in Smart Contracts.
Mint Function: Specify the mint function from your smart contract that Liteflow will use, ensuring it aligns with the intended minting process for your drop. For more information on mint functions, see Smart Contract Requirements.
Set the Drop Limits
Configure the parameters that will govern the distribution of your NFTs:
Limited Supply: Define the maximum number of NFTs available for minting to create exclusivity and scarcity for your drop.
Limited Mint per Wallet: Set a cap on the number of NFTs a single wallet can mint to promote fair distribution among participants.
Allowlist: Implement an allowlist to offer exclusive access to predefined users, enhancing control over your drop's audience.
Smart Contract Requirements
Liteflow Infrastructure does not enforce any check on the blockchain during the execution of the transaction. It is the responsibility of the collection as contract developer to enforce any checks you seem necessary.
Mint Function
The smart contract must have a mint function with the following characteristics:
- Payable: The function must accept payments if the mint has a fee.
- Arguments:
- Quantity: The number of tokens to mint (int/uint).
- Receiver Address: The wallet address that will receive the tokens (optional).
Examples of compatible mint functions:
function mint(address to, uint256 quantity) public payable;
function mint(uint256 quantity, address to) public payable;
function freeMint() public;
function mintWithERC20() public;
function mintToMsgSender(uint8 numberToMint) public payable;
Minted Function
Optional but recommended, this view function should return the total number of tokens minted by the drop:
function mintCounter() view returns (uint8);
function totalSupply() view returns (uint256);
Minted by Wallet Function
Optional but recommended, this view function should return the number of tokens a specific wallet has minted during the drop:
function mintByWalletCounter(address minter) view returns (uint8);
function balanceOf(address owner) view returns (uint256);
Best Practices and Additional Notes
- Ensure that your smart contract includes the necessary checks and balances as Liteflow does not enforce checks on the blockchain during the transaction.
- Properly implement the minted functions to avoid inconsistencies in the display and calculation of the remaining tokens.
- Use view functions to provide real-time data without incurring transaction costs.
Conclusion
By following these guidelines, you can effectively set up a drop in Liteflow, leveraging smart contract functionality to manage your NFT sales with precision and control.