project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

Gameverse

A chatbot integrating a text-based currency game and a real-world auction system

Gameverse

Created At

ETHGlobal San Francisco

Winner of

XMTP - Messaging Mini apps (Bot, Agents & Frames)

Project Description

This project combines XMTP messaging and on-chain data storage to implement a currency-based game and auctioning system. Users can solve web3 trivia questions, run commands, be active in group chats to earn coins, and compete with each other by stealing coins from each other and competing to be the top coin holder on the leaderboard. All of these coins are stored on-chain on the SKALE Network, and can be traded for NFTs, collectibles and other tokens.

Users in group chats can auction off items to the highest bidder, setting a bid increment and starting bid in an English auction format. The winner of the auction will receive an Open Frame link to pay for their item, and the owner will receive payment once payment has been successfully completed and verified.

The project is designed to be a step forward in chatbot integration on-chain, combining an entertainment experience with real-world applications.

How it's Made

The development of this project included using Converse's MessageKit framework to develop a chatbot interface. A particularly interesting part of the implementation was designing a custom message handler, as well as editing the source code of the MessageKit framework itself to allow bots to read all messages in group chats so that this handler could extend the existing command framework provided. Some other interesting applications were to create a MessageCollector class that would allow for the bot to "listen" to messages in response to a command, without needing for any advanced state-tracking or caching mechanism. This was done using Node.JS' in-built EventEmitter mechanism and event loops.

The bot uses SKALE Network to store currency data, minimizing transaction backlog by committing data on-chain every hour in the form of snapshots. This is all handled by the bot's source code in a cron scheduler, making sure that the bot will never miss a snapshot. Data is committed and retrieved from the smart contract when necessary, taking advantage of SKALE's zero-gas mechanisms to completely cut out transaction fees and abstract away the on-chain mechanism of this bot, integrating into a seamless, simple experience for the end user.

The bot's auction mechanism is developed using a smart contract on the AirDAO chain -- all details are public, allowing for integration into AirDAO's existing projects like AirQuest (a quest could be implemented for hosting 3 successful auctions etc.).

More dev notes and details are included in the repository in the DEVNOTES.MD file.

background image mobile

Join the mailing list

Get the latest news and updates