How to Build an NFT Minting Website: A Step by Step Guide

Jem

Contracts

Non-fungible tokens gained popularity in 2021, and even through tough market conditions in the years following, their core followers march on today! Since their inception, NFTs have evolved significantly, introducing complex features like minting windows, reveals & delayed reveals, allowlists and more.

As a result, NFT minting sites must be versatile, and customized to fit specific needs. Luckily, with thirdweb, building a website that mints NFTs is easy. But before we dive into the details, let's explore why you may want to create an NFT minting site in the first place

Why build an NFT minting site?

NFTs can act as a decentralized, tokenized representation of pretty much any unique asset: art, collectibles, access passes, music, software, and much much more.

If you're thinking about minting and selling any of the above, then building an NFT minting site has a lot of benefits over traditional minting platforms:

  • Keep control over the smart contract you drop, choosing specific functionalities like delayed reveals

  • Create branded, immersive experiences to keep your minters entertained.

  • Avoid marketplace fees for you and your minters

  • Avoid paying exorbitant gas, with users paying appropriate gas fees for each mint.

Today, building an NFT minting site from scratch is almost as easy as using a minting site since the ecosystem offers a plethora of tools to get started.

The steps of developing an NFT minting site

So, now you know about why you should build an NFT minting site, let's get developing! In this guide, we'll take you step-by-step through the following:

  1. How to deploy an NFT Drop smart contract

  2. How to create an app using our NFT Minting Site template

  3. Customizing your Connect Wallet button with web3 wallets, email & social account sign-in, and more options

  4. Setting up claim conditions for users to mint your NFTs

How to build an NFT Minting website

Deploy an NFT contract

Now you're ready to start building. Let's get started!

  1. In your thirdweb dashboard, navigate to the Contracts page and click "Deploy new contract":

deploy new contract

This will take you to the Explore page where you can browse smart contracts built by the top protocols in web3.

Note: You can also use the thirdweb CLI to set up a smart contract environment. Learn more about this in our CLI guide.

thirdweb explore page
  1. Select your smart contract of choice. For this example, we're going to use the NFT Drop (ERC721A) contract for our NFTs.

thirdweb's NFT Drop Contract
  1. Set up your smart contract with an image, name, description, and configure which wallet address will receive the funds from primary and secondary sales.

Populate metadata for the smart contract
  1. Choose a network to deploy the contract to. In the example we chose Mumbai, but you can select any network you like.

  2. Deploy the contract: once it has been deployed, you'll see it in the contract dashboard.

ERC721A NFT Drop Dashboard
  1. Now, upload of NFTs to the contract for people to claim using the "Batch Upload" button in the NFTs tab.

Click on the Batch Upload button

Upload your NFTs following the process when prompted

Upload your NFTs to the contract
  1. Preview the NFTs. Make sure you check all of the details! If you're sure it looks fine

Preview your NFTs and upload!
  1. Select when you want to reveal your NFTs and click on Upload!

Select when to reveal your NFTs
  1. Congratulations! Your NFTs should now be displayed in the NFTs tab.

NFTs successfully uploaded

Set Up Claim Conditions

Claim conditions are the criteria that define whowhen, and how users can claim an NFT from your drop, such as release dates, allowlists, and claim limits.

  1. Add a claim phase by heading to the Claim Conditions tab and clicking Add Initial Claim Phase:

Add initial claim phase
  1. Configure the price, release date, and more for your NFT drop

Add a Claim Phase for the drop
  1. Update the details as you want and save the claim phase!

Creating the NFT Minting Site

To create an NFT minting site with ease, simply use one of our app templates. Here's how to do it:

  1. Run this command in your terminal. It will prompt you to name your project and click enter to initiate installation.

npx thirdweb create --template
  1. Once the modules are installed, open the project in your favourite code editor.

  2. Create a new .env file and add the thirdweb client ID with the name VITE_TEMPLATE_CLIENT_ID. (If you haven't made one yet, make it for free on the dashboard.)

  3. Next, let's update some parameters in the src/consts/parameters.ts file:

  • Change contractConst to the address of the contract that you just deployed

  • Change chainConst to the network on which you deployed your contract

  • We have already added the clientIdConst in the .env file, so you don't need to do anything here

  • You can change primaryColorConst to the color you want to use in your app. You can choose any color from these options:

const colors = {
  purple: "#7C3AED",
  blue: "#3B82F6",
  orange: "#F59E0B",
  pink: "#EC4899",
  green: "#10B981",
  red: "#EF4444",
  teal: "#14B8A6",
  cyan: "#22D3EE",
  yellow: "#FBBF24",
} as const;

If you want to use another color as your primary color, then open src/App.tsx and add a new color in the colors object and use it in the consts file.

  • The themeConst variable decides the theme of your app. You can either choose light or dark

  • Finally, you can add relayer configuration options using the relayerUrlConst, biconomyApiKeyConst, and biconomyApiIdConst variables.

  1. Now run your server using yarn dev. You should see the metadata of your contract being reflected if done correctly:

Improving your NFT minting site

This is just a basic structure for the NFT minting site. You can customize it as much as you want! Here are some ideas:

Styling

You can change the stylings or layout of the app you can change it in the App.tsx file. The template uses tailwind for styling, so you can add the respective class names to change the styles. If you are new to Tailwind, you can check out their documentation to learn more about it!

Adding more wallet connect options

If you want your users more ways to connect their wallets than just the conventional web3 wallet connection, check out our different wallet connect options like smart wallets, local wallets, embedded wallets via thirdweb Connect.

Allowing users to buy NFTs using fiat

You can also add fiat checkouts for a more seamless experience for your users using thirdweb Engine!

NFT Minting: Development Doesn't Need to be hard\

This is just a list few things that you can do with our SDK, but the sky is the limit here! You can check our docs to learn more about how to use it.

Explore other web3 developer tutorials

Dive into our tutorials to learn more about thirdweb’s complete web3 development toolkit and how to use it.

Start with thirdweb.

Build web3 apps with ease. Get instant access.