ChessPos is a decentralized web app where users can play chess with others by putting some matic coins at stake and getting rewards for winning. Chesspos also allows users to engrave their chess game memories on blockchain by minting position-based/Animated gif NFTs.
It solves the big problem of trusting a middleman in every betting scenario by creating a trustless betting system in which you don't need to trust any party. Here, our smart contract plays the role of middle man by collecting staked tokens and distributing them to the winner of the match (code is the law here).
♟ Stake tokens, play the match and the winner takes it all.
🤯 There are more chess positions than the number of atoms present in the observable universe. Due to this type of exclusivity of positions we thought about making the chess positions into NFTs.
🖼 Users can mint the positions from their previously played games as NFTs. They have the option to change the background color of the NFT. They can also add a short description explaining the position which will be forever engraved on the NFT image. The image will show the wallet address of both the players with the winner, staked amount and the description.
♞ Users can also mint their whole game as animated GIF NFTs which will cycle through the game. It will also have player's wallet addresses on it.
💡Our smart contract makes sure every NFT minted on ChessPos is unique in itself by using FEN/PGN strings as unique IDs to identify NFTs.
💰Our NFTs follow opensea's metadata requirements and are compatible with opensea. So users can easily sell their NFTs on the biggest NFT marketplace(opensea).
We ran into many challenges during the development of this Dapp.
Maintaining a good and clean code was a challenge we had to face because we were 3 people working on this project together and everyone followed their own code methodology which was not good for the architecture of the code. But we managed to keep it somehow somewhat clean by having 2-3 hrs of voice calls daily :)
Minting of customized position NFT. We wanted to give the user the option to customize his position NFT by changing colors and descriptions on the image itself. Also, the board present in the NFT image is also customizable user can use the arrows given below to cycle through moves. All of this led to rendering the NFT in the canvas and extracting image from it which took a lot of coding hours.