
Suzue NFT Minter
Emotional Layer for NFTs
Demo
About
The problem it solves Suzue NFT Minter was born from a clear issue within the Web3 ecosystem: most NFTs today are perceived merely as speculative digital assets, lacking any emotional depth or artistic connection. This detachment between art and meaning pushes away not only everyday users, but also genuine artists and passionate collectors. In a space saturated with "soulless" NFTs, our mission is to reignite the human and artistic side of Web3 by creating emotional bridges between artists and collectors. How? By using technology to serve emotional and creative expression. 💡The Problem We Solve Most NFTs are created solely for hype and financial speculation. They rarely carry any meaningful context or artistic narrative. Collectors who seek stories, depth, and emotional resonance struggle to find NFTs with real soul. 🎨 Suzue's Solution Suzue NFT Minter is a Web3 application that goes beyond simple minting — it allows the emotional and narrative analysis of the artwork through integration with Chainlink Functions. With this approach: Artists can write about their work and have the text analyzed by external sentiment APIs (e.g., OpenAI). The NFT metadata includes not only technical data, but also emotional context and artistic style and atributes. Collectors can read the artist’s message and feel the state of mind behind the creation. 🔗 Merging Technology with Emotion By using Chainlink Functions, we bring off-chain data (sentimental analysis) that enhances the artistic layer of each NFT. This enables: NFTs with enriched narrative metadata Sentiment analysis embedded into the minting process Greater empathy, authenticity, and storytelling in digital collectibles 🌍 Impact We reframe NFTs as artistic expressions with soul, not just tokens. We create a new standard of connection between creator and collector, turning minting into an emotional — not mechanical — act. We support onboarding of artists who want to express emotions, not just profit from trends. **How It Works** 1. The user uploads an image NFT attributes (name and description). 2. The application automatically generates sentimental analysis and metadata. 3. The NFT is minted on the Avalanche Testnet with one click. **Tech Stack** Blockchain: Avalanche Testnet Smart Contracts: Solidity (ERC-721) Oracles: Chainlink Functions Frontend: React + Vite + Tailwind CSS + shadcn/ui Web3: Ethers.js Metadata: IPFS-ready JSON Generator Infrastructure: Configurable .env, optimized build with Vite Readme > https://docs.google.com/document/d/1Wfycmxs63sHjdqN2jsikjvXin6kwMjaW2XyDP2_e6J8/edit?usp=drive_link Due to a current technical limitation in the integration between Chainlink Functions and external APIs (such as OpenAI), we are required to limit the connection window with our secret key to 4,000 minutes. As a result, the Chainlink Function connected to our sentiment analysis API may only be operational during a predefined timeframe. This does not affect the smart contracts’ validity, but external calls relying on OpenAI may be temporarily inactive after the key timeout window. We are exploring solutions like dynamic key rotation, delegated off-chain computation, or alternative hosting of the API handler to overcome this limitation in future iterations. Here are the currently deployed smart contracts on Avalanche Fuji Testnet: 🧠 Sentiment Analysis Consumer (Chainlink Functions) 0x0d0b74eFb597cd8cD90590C05C48e8ee8858C23B 🖼️ NFT Minting Contract (ERC-721) 0x322b94B67d4Ce89bA8fF061c6f527273a22654A8
How it's made
Challenges we ran into During the development of our project for this hackathon, we encountered several technical challenges that required significant learning and adaptation. Below are the main issues I faced: **1. Issues with Secret Configuration (OpenAI API Key)** A major difficulty was configuring the OpenAI API key using Chainlink’s Secrets feature. I followed the steps shown in the videos, but the secret was not correctly uploaded or recognized, which cost me many hours of development time. Later, I managed to resolve the issue by using an alternative contract example, where I passed the SlotID and Version parameters. This approach finally allowed me to connect successfully to the OpenAI API. **2. Return Data Limitation (256 bytes)** Another critical issue was the 256-byte return limit imposed by Chainlink Functions. Since I was using responses from the ChatGPT API, I had to refactor both the smart contract and the project logic to handle only 256 bytes of data. In a real-world production scenario, I would implement multiple requests to handle larger responses in chunks. **3. Full Chainlink Function Flow** Lastly, a natural learning curve involved understanding the complete flow of using Chainlink Functions. After deploying the contract, I had to: - Register the contract as a consumer in the Chainlink Functions system; - Fund the contract with LINK tokens to enable execution.