What I built
The sample project for web3 enthusiasts, community builders and developers. This project contains of smartcontract (ERC-721) and a website with dashboard and wallet (Metamask) authorization. It can be cloned and used for selling pfp-avatars or NFT collections.
You can check the app link below and try to register using any wallet you want.
Category Submission:
Choose Your Own Adventure
App Link
Screenshots
Main page:
Register form
In the demo you can choose, how to register: admin or not. Dashboards will be different.
Admin dashboard - Users
Admins have access to all users. They can change their state to pending, verified, blocked. Only verified users have access to mint form. User's page also has a search.
Admin dashboard - Settings
Superadmin (specified in .env
) can interact with smartcontract and start or stop the sale. Visibility of minting form also depends on that setting.
Superadmin can send emails to all verified users, that the sale has begun.
User dashboard - Home
Users have access to home page, where they can find information about the collection and mint form.
Minting
User dashboard with minted token
Private page for NFT holders
Only NFT holders have access to "Private page".
Provenance page
Page with the provenance hash. Script of the calculating provenance hash is available in the repo.
Description
This project gives you the ability to create and deploy smartcontract, create the list of people, who will be elegible to mint NFT from your collection. After that people will have access to Private page, available only for NFT holders. You can extend the project as you want.
Let's explore users experience.
1) Users get to the site, read the information about your project and collection.
2) Users register using their wallet and fill in all necessary information. After that the dashboard is available for them. From now, users are in the waiting list.
3) Admin need to check the users and make them verified. Users get the email (Mailgun integration), that they were verified.
4) Admin starts the sale. In the Settings tab there is a button for sending emails to all verified users.
5) Users get the email about the sale, go to the dashboard and mint the token.
6) After minting users will get access to Private page
Further steps is up to you!
More information you will find in repositories.
Link to Source Code
Permissive License
MIT
Background
I wanted to create a project, that can be useful for web3 developers or community builders even after the hackathon ends.
It might be difficult to organize the sale of NFT collection, especially, if you need universal whitelist, where you can add or remove people at any time. It's very important to unite like-minded people and have the ability to know more about them, before you give them access to your club.
That's why I've made that project. You can easily change it to suit your needs. It contains dashboard for admins to manage users, dashboard for users to mint tokens and get special access to "Private page".
I hope it makes someones life easier 😊
How I built it
This is the first time I was using the MongoDB, and I found it easy-to-start and easy-to-use.
You just need to create Mongo DB and this is it. Table will create automatically after you run the project. For superadmin I added a button "Setup indexes" to add additional indexes.
I used node driver for the project.
Stack and services:
- MongoDB for holding users information,
- React + Next.js for website navigation,
- Solidity + Hardhat for smartcontract,
- Python for creating provenance hash
- Mailgun for mailer
Top comments (0)