What it does

Fate Cards allows a person to reveal his fate in form of cards which are minted in form of NFTs and allow the trading of cards with other people.

Inspiration

I got the inspiration from a mini-game that was part of a 2-day event in a game. The design and art style of the mini-game was very beautiful and I thought it was a great project idea to decentralize the mini-game. It had the user complete certain tasks, earn points to pull out a card and complete the collection, while allowing trading of cards so that other users can also complete it.

Learning

I learnt a lot as this was my first project of blockchain that I did all on my own. Writing smart contracts, working with interfaces, writing tests, scripts, events, errors and so much more.
I also learnt more about foundry and ethers. Also, debugging errors and recognizing the patterns of errors.

Building Project

First I thought of the basic structure of the game that I wanted to build. Then I wrote the smart contracts and its tests as it would make it clear on how to approach the front-end.
I used a lot of AI-Image generators to generate the perfect images for the app.
After the contracts were completed and required images were generated, I approached the front end, creating each page step by step.
Then I used Ethersjs to connect the front-end to blockchain. Thankfully, foundry allows you to create a local chain to work with, along with free funded accounts which can also be used by metamask by importing them.
At last, I had to debug and test more until I was satisfied with the product.

Challenges Faced

1) Trying to build a system that would be fair to all. Eg : randomly generated cards, confirmations and checks in trade so that users can avoid scams, making the functioning transparent, etc.

2) Trying to accurately locate the sources of error since nextjs, foundry and metamask, all 3 were involved. I even had to contact metamask support for some help.

3) Adjusting the css since there were a lot of elements.

4) Handling correct timings of functions calls, etc.

What's next for Fate Cards

1) Upgrading the UI/UX to allow the user to have a smoother experience. 2) Enhancing the functionalities and creating more functions and options for user to explore and engage in.

Personal Views

I am really happy I completed this project and really grateful to chainlink for providing an opportunity to showcase my skills. It was really tough doing all on my own but it was worth it.

Built With

Share this project:

Updates