Inspiration

Our team was inspired by the presentation given by J, who shared an example about the early days of Facebook and a feature called "the wall." This feature encouraged users to interact with each other and helped to create a sense of community on the platform. This got us thinking about how we could create a similar sense of community on our platform, eth.id.

After brainstorming different ideas, we landed on the concept of integrating chess into eth.id. Chess is a popular game that requires strategy, critical thinking, and skill, which we believe would be a great way to foster interaction and engagement among our users. By allowing users to compete for eth.id coins, we hope to incentivize participation and create a fun, competitive atmosphere on our platform.

Ultimately, our inspiration came from a desire to build a strong community on eth.id, and we believe that integrating chess is a great way to achieve that goal. We are excited to see how users respond to this new feature and hope that it will encourage even more interaction and engagement on the platform.

What it does

Chess.eth is an app that allows you to challenge your friends to a game of chess, directly from their eth.id profile. What sets chess.eth apart is that it also lets you bet eth.id coins on the outcome of the game.

To use chess.eth, simply log in to your eth.id account and navigate to your friend's profile. From there, you can initiate a game of chess and place a bet on the outcome. The winner of the game takes home the pot of eth.id coins, making for an exciting and competitive gaming experience.

Not only does chess.eth provides a fun way to play and compete, but it also integrates the use of a digital currency, called eth.id coins. Eth.id coins are a coin that can be exchanged for other cryptocurrencies, and they can also be used within the eth.id ecosystem to access various features and services(It's an idea that we didn't have resources to explore, once we didn't have an eth.id documentation, but if well implemented, could lead to satisfying results).

We believe that chess.eth offers a unique and innovative way to bring together the worlds of gaming and digital currencies, and we're excited to see how it will be received by users.

How we built it

To begin, we used the Lichess API to access game data and moves. Lichess is an online platform that allows users to play chess, as well as access data and analytics related to the game. By using the Lichess API, we were able to retrieve data for games that were played on Lichess, and use that data to display the game on the chess.eth platform.

The board of chess.eth was built using two libraries: react-chessboard and chess.js. React-chessboard is a React component that provides a chessboard interface for displaying chess games. Chess.js is a JavaScript library that enables you to programmatically manipulate and analyze chess games.

We used chess.js to translate the chess nomenclature (e.g. "e2-e4") into a format that could be understood by react-chessboard. We also used chess.js to enforce the rules of chess, ensuring that moves made on the board were legal.

Next, we used react-chessboard to display the game on the frontend. We placed the pieces on the board according to the position of the live match or replayed match, and allowed users to navigate to the next or previous move.

An important feature that we made is the ability to navigate to the next or previous move. We accomplished this by accessing the previous or next element in the array with all the game moves.

For the backend, we designed a system that prompts users to enter their Lichess user token. A user token is a unique identifier that allows the backend to access a user's game data and other information associated with their Lichess account. By requiring users to enter their user token, were able to authenticate their account and retrieve the necessary data required by the frontend.

Challenges we ran into

During the development of chess.eth, our team encountered two main challenges. The first was related to the display of the game on the platform. Initially, we used the lichess embed to show the game, but we found that it had a significant delay. To solve this issue, we decided to use the Lichess API to get the positions of the board in real-time. By using the react-chessboard and chess.js libraries, we were able to move the pieces accordingly and provide a seamless experience for the users.

The second challenge we faced was related to identifying the game being played on eth.id. Without access to eth.id's documentation, we initially used a static token from our lichess account to identify the game being played. However, once we gain access to eth.id's documentation, we can implement a dynamic link that will display the game for the corresponding profile.

Despite these challenges, we are proud of the progress we've made with chess.eth and excited about the future development of the platform. Our team remains committed to providing an engaging and rewarding experience for all our users.

Accomplishments that we're proud of

One of the accomplishments that we are proud of regarding is the ability to tackle a big project with many complex issues to solve within a short amount of time. Despite the challenges, we were able to overcome the obstacles and successfully launch a functional and engaging platform for users to compete in chess matches for eth.id coins. This achievement highlights our team's dedication, problem-solving skills, and ability to work efficiently under pressure. It is a testament to the hard work and determination that went into creating this innovative platform.

What we learned

Through the process of building chess.eth, we gained valuable experience and knowledge about the Lichess API, the game of chess itself, and the technical skills required to develop a functional platform. However, the most valuable lesson learned was the realization of the immense potential that can be achieved when a group of individuals come together with a common objective and work tirelessly towards it. Despite the challenges and obstacles faced, we demonstrated the power of teamwork, dedication, and perseverance. This experience not only resulted in the creation of a platform but also instilled valuable skills and knowledge that can be applied to future projects and endeavors.

What's next for chess.eth

The development of an eth.id coins system, which will allow users to trade their eth.id coins for actual cryptocurrencies, NFTs, and other services.

With this new system, we believe that users will be even more motivated to play and compete on chess.eth. As they accumulate eth.id coins through gameplay and betting, they'll be able to trade those coins for other valuable assets and services. This will make the overall experience of using eth.id and even more engaging and rewarding.

We're excited about the potential of this new system, and believe that it will help to make the experience of the user of eth.id even better.

Additional Informations

Unfortunately, due to time constraints, we were not able to fully implement the eth.id coins system on chess.eth's frontend. However, the backend for this feature is already fully functional. Additionally, we ran into a bug in the final phase of the project that prevented us from showing the live match happening on the profile page. Although we were able to display the live match before the bug occurred, we were not able to record it for the demo video.

Built With

Share this project:

Updates