NFT Drop

Introduce a collection of unique NFTs for sale at a fixed price point.

The NFT Drop contract emerges as the optimal solution when your objective involves introducing a series of distinctive NFTs utilizing the ERC721A Standard.

This innovative framework empowers you to establish a collection of stipulations, aptly named claim phases, arranged sequentially to govern the specifics of how and when your user base can procure an NFT from your drop. These parameters encompass an array of factors, including allow lists, rollout dates, claim caps, and staggered reveals.

Upon infusion of NFTs into your drop contract, they remain unminted at this juncture. Instead, you orchestrate comprehensive preparations for your users through the process of lazy minting, ensuring that the NFTs can be minted by external wallets.

Facilitating OpenSea Creator Earnings

The operational nuances of creator earnings on OpenSea are seamlessly accommodated within this contract's framework. Native to its design, this contract supports OpenSea creator earnings, offering the flexibility to enable or disable this feature. The contract administrator retains the prerogative to adjust this setting post-deployment, executed via the setOperatorRestriction function accessible through the contract explorer.

Diverse Use Cases & Illustrative Instances

The NFT Drop contract unfolds an array of practical applications:

  • PFP Collection Premiere: Leverage the NFT Drop contract for the grand debut of a Profile Picture (PFP) Collection, where each NFT boasts a distinct blend of traits, facilitating unparalleled individuality.

  • Artistic NFT Unveiling: Disseminate your artistic NFTs and allow your community members to mint them at a predetermined price, fostering a collaborative and value-driven ecosystem.

  • Exclusive NFT Allocation: Engineer an exclusive NFT drop, accessible solely to a predetermined roster of wallets, thereby nurturing a sense of exclusivity and loyalty.

  • Time-Stipulated NFT Reveal: Set up an NFT drop with time-sensitive claim phases, orchestrating a heightened anticipation and engagement dynamic.

  • Attribute-Rich NFTs: Launch an NFT collection characterized by an intricate blend of attributes, encouraging collectors to amass a diverse and captivating assortment.

  • Celebratory NFT Commemoration: Mark special occasions or milestones by orchestrating an NFT drop, capturing the essence of the moment within a digital masterpiece.

Deploying this contract

  • Name: The name for this NFT Drop according to your idea.

  • Symbol: This will be the ticker for this drop. Keep it short.

  • Description: You can be creative here because this is the description that this contract will have for the purposes that you have arranged.

  • Image: Upload your image for this contract. Your image will be stored at IPFS ensuring persistence over time.

  • Sale Recipient: This address will receive all the tokens for each sale on the contract that we're about to deploy. The one by default is the connected wallet one. It can be changed for any other one.

  • Royalty recipient: set default royalty recipient address for this drop.

    • Royalty percentage: Here the percentage of each sale that will be sent to the address that receives the royalties will be defined.

  • Recipient Address: For contracts involving primary sales, acquire supplementary fees for all primary sales occurring on this contract. (This is advantageous if you are deploying this contract on behalf of a third party and wish to levy fees for your services). If this contract serves as a marketplace, obtain a percentage from all secondary sales taking place within your contract.

  • Platform fee percentage: for the supplementary fees above mentioned.

Implementing the UI

Once we have deployed the contract, we will proceed to the contract management section, we will locate the contract that we have just deployed and click on the "Manage" button that will take us to the configuration dashboard.

Inside the contract dashboard we can see the «Mint» button, accompanied by several tabs. We are going to explain the functions of each one.

Minting an NFT

By pressing the «Mint button», a new modal will open in which we can place the details for this new NFT, as we describe below

  • The name for the NFT.

  • The description for this NFT.

  • Add attribute button: It will allow users to add rarity to this specific NFT.

    • Type attributes: Generic, number, boost number and boost percentage.

    Upload the image. The user will be able to upload an image (1 MB max) or generate one using natural language.

To enjoy the artificial intelligence features, the user must recharge credits on the platform.

After filling all the data for the first NFT the user can click on «Add NFT» button (To add more and mint them all together) or press the «Create NFTs» button and start with the ones you have (later you can mint others within the same collection).

Setting up claim conditions

It is time to define the way we plan to deliver our NFTs to our community or potential clients. To do this we must access the "Claim conditions" tab and once there we must press the «Add claim condition» button which will display the following form:

  • Name: The name for this new phase. For example, name this phase as an special seasonal drop with limited circulation.

  • Start time: Define the exact date on which you want this phase to be activated and people can claim the NFTs.

  • Wait in seconds: Do you want a timeout just before the start of this phase? It can be a short cooldown or as long as you want.

  • Total items to claim: Set quantity or press unlimited.

  • Total items to claim per wallet: How many items from this phase do you want a single wallet to be able to mint?

  • Price: Set the price for each NFT in this release (does not include network fees or commissions that you must previously configure in the commission sections of the marketplace). You can set zero (0) price but you need to choose any token in the list. Your minters won't be charging for anything more than network fees.

  • Search token: Choose from this list the token you want to receive for your NFTs. You can configure the tokens you want previously from the token configuration of your product.

Once you have finished filling in data for the first condition you can save it or add another condition directly by pressing the “Add claim condition” button. In this case we save it and proceed to the next tab.

Editing Metadata

In this section you can edit the name and description of the collection to make it more attractive to your community. Markdown is enabled so you can make properly formatted descriptions.

Please note that each change you make to the contract will invoke a call to the contract that will incur network fees.

Configuring administrative settings

All the configurable options here represent critical aspects of the smart contract. Although they have already been pre-populated at the time of contract deployment, these options can be modified later and change the purpose of the contract.

  • Admin: This wallet address will be the superuser who will have total power within this contract, being able to modify any critical aspect.

  • Minter / Creator: This wallet address will have creation power for this contract.

  • Transfer: This address will be able to transfer any asset from the contract. This nothing have to do with user transfers.

  • Metadata: Add more wallet addresses only for on chain metadata identification.

All interactions in this section also incur network fees. Remember to have enough gas currency in the network that you deployed the contract for later changes.

Previewing our drop

Once we finish minting the NFTs that we are going to offer for free to our clients and visitors, we can click on the "View public page" link. Once inside we can see our launch from DexAppBuilder platform 👇

Our drop is working correctly! But... What if we want to have our drop INSIDE our decentralized application created with DexAppBuilder? 🤔 Follow the steps below to embed this contract UI inside your app and attract your customers to it

Setting up minting site

For this purpose we will assume that you have already created a decentralized application with DexAppBuilder (if you have not done so, visit this section of the documentation). It is necessary to be able to enjoy this functionality.

  1. We must navigate to the general settings of our application. We do this through this link.

  2. Once there we look for our decentralized application in the list and press the "hamburguer" button, and click on «Edit», as we show in the picture below

  1. Once we are in the settings of our application, we go to the "Layout" section and open "Pages". Once we are in, click on « + Add section» button

  1. Once we pressed the «+ Add section» button a modal with several components to choose will open. Please look for the «DexGenerator Contract» component 👇

  1. Now a modal will open with a list of contracts that you have previously displayed. Make sure you choose the correct one by clicking on it.

  1. Once we are within the parameters of that contract we will be able to see the following options on the left, along with a preview of the visual component on the right

  1. Pick a variant: Choose among two component styles, Simple (as the shown in the picture ☝) or detailed (in the picture below 👇)

  1. We have already decided which of the variants to use, we only have to press the «Save» button. We will be redirected to our «Page» edition section.

  1. In the image above we can see that our component was correctly added to the ordering of that page (which only contains one component). Let's now press the «Save» button in the lower right corner to send all changes to the server.

  2. We wait a couple of minutes for the changes to be reflected in our decentralized application and click on the «Preview» button for an Sneak peek or "Open URL" button that will send us to our production DApp.

And voila! This is how you quickly create an NFT drop for your fans or customers using the DropERC721 contract from Thirdweb and DexAppBuilder 🤝

Last updated