Inspiration
I have been working on a task automation project for a few years now, and thought storing the workflow files as NFT metadata would be a good idea. However, I never could find a good decentralized solution for verifying user-generated metadata prior to minting. This is where project UniqueNFTs shines!
What it does
Prior to minting an ERC1155 NFT, a Chainlink Functions request is used to verify the metadata meets predetermined requirements. This process is automated through a queuing system via Chainlink Automations. Once verified, the NFT is automatically minted. This sort of system allows for users to execute their own mint-call on-chain.
How we built it
I forked the Chainlink Functions Hardhat Starter Kit. The command calls built by the Chainlink Functions team and the hardhat toolset are all I needed. Of course, I also spent plenty of time in the Chainlink Functions and Automations Subscription and Upkeep management UIs.
Challenges we ran into
This project's name originates from the time I started learning about smart contracts, NFTs, ERC standards, Chainlink services, and the like. I was in over my head. One challenge I had this hackathon was managing my Sepolia RPC URL. It took me awhile to identify this was an issue, and only resolved it after cycling through a few different ones. I had never experienced this before, and was stuck for a good minute.
Accomplishments that we're proud of
Having a Chainlink Automation execute a contract call triggering a Chainlink Functions request was a great moment.
What we learned
I obtained a valuable new tool learning Hardhat for this project. Not sure how I ever managed contracts without it.
What's next for UniqueNFTs
Implementing methods for verifying the "uniqueness" of NFT metadata is next. This will be challenging, but I have some ideas. Defining boundaries and tolerances for NFT metadata could add an exciting new twist on what it means to have semi- or non-fungibility.
Built With
- hardhat
- ipfs
- javascript
- solidity


Log in or sign up for Devpost to join the conversation.