Aim of the project
The aim of the project was to combine three key elements: randomness, blockchain, and artificial intelligence to create an application that would autonomously generate NFTs in a fully decentralized manner, eliminating the need for trust.
What it does
The main function of the application is to generate NFTs based on keywords stored on-chain. Keywords are randomly selected from the on-chain storage and then they are converted into a single prompt, which is sent to Stable Diffusion, which is hosted by On-chain AI Oracle. Response with cid (IPFS) of the image is then added to metadata, which is stored by our contract on-chain. At the end, we obtain a randomly generated portrait of a character with its rarity highlighted in the metadata based on the probability of being drawn.
How we built it
We built the project primarily utilizing Onchain AI Oracles from ORA.io. We employed smart contracts written in Solidity, while the frontend was constructed using React.
Challenges we ran into
The greatest challenge lay in developing an optimal algorithm capable of randomly selecting appropriate keywords with varying probabilities, as well as coordinating all state changes within the contract.
Accomplishments that we're proud of
We are proud that our application is operational, with a transparent and intuitive frontend, enabling the generation of images crafted by artificial intelligence in an unconventional manner.
What we learned
We learned how to use OnChain AI Oracles
What's next for Graviola NFT
We’re looking forward to further developing this project. We have some plans regarding the potential tokenomics of our app and its future. We might release a Graviola ERC20 Token soon!
Additional demo
Trading up tokens: https://www.youtube.com/watch?v=isoWTo1wayI
Built With
- hardhat
- ora.io
- solidity
- stablediffusion
- typescript
Log in or sign up for Devpost to join the conversation.