This repository contains smart contracts for an NFT sales system that includes bulk minting discounts and KYC (Know Your Customer) verification. The contracts are designed to optimize gas costs when minting multiple NFTs and efficiently distribute rewards to NFT holders.
- Purpose: Batch multiple transactions into a single operation to optimize gas usage.
- Functionality: Allows sending multiple transactions in one go, ensuring all transactions are executed atomically (i.e., if one fails, all are reverted).
- Purpose: An ERC721A-based NFT contract with integrated sales, bulk minting discounts, and KYC verification.
- Key Features:
- Sales Management:
- Adjustable NFT pricing.
- Ability to activate or deactivate the sale.
- Reserve NFTs for the owner.
- Set a maximum supply of NFTs.
- Implement a wallet limit for NFT purchases.
- KYC Verification:
- Users must pass KYC verification before minting NFTs.
- Bulk Minting:
- Reduces gas costs when minting multiple NFTs in one transaction.
- Reward Distribution:
- Efficiently distributes rewards to NFT holders using the MultiSend contract.
- Sales Management:
-
Deploy the Contracts:
- Deploy
KYC.sol. - Deploy
MultiSend.sol. - Deploy
StandardERC721AWithKYC.solwith the addresses of the deployedKYCandMultiSendcontracts.
- Deploy
-
Mint NFTs:
- Ensure users pass KYC verification.
- Call the
mintfunction with the number of NFTs to purchase.
-
Distribute Rewards:
- Send ETH to the deployed
StandardERC721AWithKYCcontract. - Call the
distributeRewardsfunction to distribute ETH to all current NFT holders.
- Send ETH to the deployed
- Fork the repository.
- Create a new branch.
- Make your changes.
- Open a pull request.
This project is licensed under the MIT License.
For any questions or inquiries, please contact me on Linkedin in or Telegram .