The inspiration was to create a collaborative experiment for the Stellar community, similar to those experiments like Reddit's for April Fools. The question was how to involve the community and blockchain. I found this idea of passing an object from one player to another fun, and the visualizations and data science you can incorporate are interesting.
What it does
Hot Potato is an NFT contract with a web interface to make it simple for those who aren't familiar with the Stellar Laboratory. It uses a web server in this case fastify and generates an XDR based on two cases. If the asset isn't minted it will mint it for the user, otherwise it will facilitate a transfer using the orderbook to transfer the asset. Trades also help for visualizing the transfers, by making it simple to query the Horizon API and recursively searching for next candidates.
The contract is basic and it has basic error handling, the goal is to make it as simple as possible so even a beginner can use.
How I built it
The project is composed of 2 parts. Node.JS server running fastify and the contract. This part is responsible for generating all transactions to sign and uses the signature from the issuer to approve ownership for each asset owner. The project uses the Stellar SDK to create the NFT, and record the transfers between each stellar account. This helps with the creation of a permanent record that might serve as a time capsule of a fun time, instead of storing it on a database that might get lost or corrupted at any time.
Challenges I ran into
StackOverFlow was down 😅 Had to work without it in certain periods.
Accomplishments that I am proud of
I've built a SmartNFT that is functional and I had a good weekend :D
What I learned
That I'm too depended on StackOverFlow, especially during the time when the website was down and had to wait to fetch a copy from the Wayback machine.
What's next for Hot Potato
- Make the contract even more understandable instead of chaining promises like a maniac. Test the horizon responses and make it more error friendly for individuals.
- Fix the pile of mess called UI and UX to make it actually look great to use
- Implement more web wallets like Freighter, Rabat, xBull and etc... 😅
- Launch it to the world
Log in or sign up for Devpost to join the conversation.