Skip to content

An allowlist for NFTs is essentially a roster of wallet addresses that are granted the privilege of minting NFTs before a general release of a collection. There are several means of being added to an allowlist, but the primary one is engaging in an NFT project's community.

Notifications You must be signed in to change notification settings

tantodefi/whitelistFactory

Repository files navigation

🛡️Whitelist Factory


Author Badge Lukso Badge Solidity Badge Test Badge HardHat Badge Prettier Badge X Badge

Workflow

                                     |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
                                     |      START     |
                                     |________________|
                                              ║
                                              ║
                                           Sender
                                              ║
                                              ║
    |¯¯¯¯¯¯¯¯¯|                      |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|                       |¯¯¯¯¯¯¯¯¯¯|
    |   End   |----------NO----------|Is in whitelist?|----------YES----------|   Mint   |
    |_________|                      |________________|                       |__________|

Overview

An allowlist for NFTs is essentially a roster of wallet addresses that are granted the privilege of minting NFTs before a general release of a collection. There are several means of being added to an allowlist, but the primary one is engaging in an NFT project's community.

This smart contract provides a secure and transparent way to manage whitelist access for minting NFTs.

Advantages

  • Fair and secure NFT distribution: Prioritize specific users (e.g., early supporters, community members) by granting them exclusive access to mint NFTs before the public sale.

  • Reduce gas fee: Reduce transaction fees by limiting initial minting to whitelisted addresses.

  • Increase community engagement: Encourage participation in community activities or social media engagement as criteria for whitelisting.

  • Transparency and immutability: All whitelist data is stored on the blockchain, ensuring tamper-proof records and open visibility.

Access Control

  • Owner of the contract is not able to do CUD (create, update, and delete)
  • Owner of the contract is not able to pause the whitelist

Motiviation

On LUKSO, users currently get a free monthly quota of 20.000.000 GAS when creating a Universal Profile through the Universal Profile Browser Extension[1].

Features

  • Whitelist management:
    • Add and remove addresses from the whitelist by the whitelist manager.
    • Make pausaable whitelist
  • Minting control:
    • Only whitelisted addresses can mint NFTs during the designated mint period.
    • Set limits on the number of NFTs each whitelisted address can mint.
  • Security:
    • Access control ensures only authorized manager can manage the whitelist.
    • Re-entrancy attacks are prevented using standard security practices.

Getting Started

git clone https://github.com/web3senior/whitelistfactory
cd whitelistfactory
npm run test

➜ ready for deploying💥

Deployed Contract (Testnet)

Lukso: contract address 0x5c2C28e2b3C74E8bAeF0B7504f1f4CE5cEd14Dd0 view on explorer

We will be adding more networks soon.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

ToDo

  • Different whitelisting criteria can be implemented (e.g., holding specific tokens, participating in events).

Reference

License

Distributed under the MIT License.

About

An allowlist for NFTs is essentially a roster of wallet addresses that are granted the privilege of minting NFTs before a general release of a collection. There are several means of being added to an allowlist, but the primary one is engaging in an NFT project's community.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published