Inspiration The idea sparked during the recent wedding season. I noticed a massive shift from thoughtful physical gifts to instant digital transfers and generic gift cards. While convenient, these digital options felt effortless and often inappropriate for special occasions. I thought, "Why not use my Web3 skills to build something better?" I wanted to bring the "gift" back into digital gifting by combining the personal touch of art with the utility of value transfer.
What it does CRYPT is a decentralized gifting protocol that replaces traditional gift cards with customizable, AI-generated NFT art that holds transferable tokens.
Personalized Gifting: Users generate unique artwork using AI (Stable Diffusion) based on text prompts.
Value Storage: Each NFT acts as a "vault" that holds ERC-20 tokens (like USDC or MATIC). The value is embedded directly inside the art.
Flexible claiming: Gifts can be sent via email, allowing recipients to claim their NFT and either keep the art, trade it on our marketplace, or "liquidate" it to extract the underlying token value.
How we built it I was already aware of the necessary libraries and functionalities, so I started by converting the complex logic into simple English formats. This helped me map out the architecture before writing a single line of code.
Smart Contracts: I wrote the contracts in Solidity, creating a custom GiftCardNFT contract that can hold balances. I used Hardhat for the development environment.
Frontend: The interface was built with React and Vite, using RainbowKit for wallet connections.
Vibe Coding: I "vibe coded" the overall product using Kiro, which helped accelerate the transition from development to a production-level application.
AI & Storage: Integrated Hugging Face for art generation and IPFS (web3.storage) for decentralized metadata storage.
Challenges we ran into The biggest challenge was actually in the collaboration with my AI assistant, Kiro. There were a few times when Kiro went completely off track, generating code that didn't align with the project goals. I realized this was due to me providing vague prompts. I had to step back, understand where I was being unclear, and refine my instructions. Once I corrected my approach to prompting, I was able to bring the development back on track and move forward efficiently.
Accomplishments that we're proud of Dev to Prod: I am proud of taking this idea from a rough concept and simple English logic all the way to a production-level dApp deployed on the Polygon Mumbai testnet.
The Vault Mechanism: Successfully implementing the logic where an NFT can securely hold and release ERC-20 tokens was a significant technical win.
What we learned I learned a tremendous amount about Solidity architecture and the nuances of asset composability. Beyond the code, I learned how to effectively "pair program" with AI. Dealing with the vague prompt issues taught me that clear communication is just as important with AI tools as it is with human teammates.
What's next for CRYPT Multi-chain Support: Expanding beyond Polygon to other Ethereum-compatible networks.
Mobile App: Developing a React Native mobile application for easier gifting on the go.
Recurring Gifts: Implementing a subscription model for recurring gifts (e.g., monthly allowances or birthday funds).
Log in or sign up for Devpost to join the conversation.