Inspiration 💡
We took inspiration from ideas presented by some sponsors and some previous projects.
What it does 🤯
It allows you to play with your imagination and your friends at the same time that you can earn money betting on whose imagination would win in legendary fights. All decentralized and fair.
How we built it 🛠️
With passion and dedication. It's a fun project to work with, especially when you are testing the prompts and generating crazy characters.
First, we had a call to decide the project and its features, then we designed the overall architecture, and then we split the tasks and started working on developing the project.
Challenges we ran into 🛫🛩️🛬
A lot. Working with cutting-edge technologies that are in beta requires lots of time for researching and paying attention to little details so things always work as expected.
We found problems with Chainlink technologies, like for example, there is a variable clash (i_router) if one contract implements both CCIP and Chainlink Functions at the same time.
More problems and challenges on this section from the main README in our repo.
Accomplishments that we're proud of 😆
The overall idea, we think it's a fun and interesting idea but at the same time complex on the inside.
What we learned 🧑🎓
We all overall learned a lot and gained real experience in teamwork of web3 project development.
Carlos was the coordinator and architect of the project. He learned a lot about how important it is to first define all interfaces and then start coding, especially when you work on a team. Plus how, when testing contracts on testnet, it is better to make them dynamic during the testing so you don't have to be deploying over and over again when you find some bug.
Gianfranco, who works for OpenZeppelin took charge of the front-end with the tight schedule he had this month. Rainbow Kit, WAGMI and Viem in combination with Next. js from a very intuitive framework to fast bootstrap a front end for a blockchain application.
Antonio, wanted to dig deeper into Smart Contract development, so he worked on the matchmaking for the fights, as well as Chainlink automations. He also helped with the front end and some support tasks.
Ethan, who is already knowledgeable in Solidity and backend, learned more about the overall APIs that require a full-stack web3 app, like how to integrate web3 with AI APIs or how to use TheGraph.
Roger, who knows very little about Solidity, helped with the front-end planning while trying to understand how things work in web3.
What's next for Prompt Fighters! 🔮🪄
We have more cool features planned! But due to running out of time and technology limitations, we didn't implement them, you can find them in the Future Ideas section in our Whitepaper.
Here are just brief descriptions:
Ideas not implemented because of time:
Use ENS for challenging friends' addresses and making each NFT have its own unique address to challenge.
Bias the chances of winning a fight based on your NFT traits and your opponent's one based on where they are fighting. A random place on Earth will be chosen and with a weather API, we will check the current weather there and an AI will decide who has more chances of winning based on the weather and NFTs traits. This would make fight mechanics fair, super dynamic, and interesting. For simplicity, now you have a 50% chance of winning. Notice you can take other data to bias results, not just weather, like O2 on the atmosphere.
Marketplace for lending your PromptFighters and earning interest on the money other players earn from your NFT.
Social media reputation of NFTs leveraging Lens.
Ideas not implemented because of technology limitations (like HTTP-API calls of just 9s in Chainlink Functions):
Generate unique images of your NFTs with AI image generation tools. And when AI video generation gets better... imagine actually WATCHING THE FIGHTS!
Unique NFT prompts. As of this POC Project, you can easily copy other player NFTs' prompts. If Functions had a way of executing hash functions, this would be solved. More details on the problems section mentioned above.
Built With
- deno
- foundry
- nextjs
- openai
- solidity
- thegraph
Log in or sign up for Devpost to join the conversation.