Meet Chitty Chat, an enhanced Push chat app! A one-stop shop for easy interaction with web3 tools, DataDao management, ChatGPT access, and IPFS file handling.
Summary of Chitty Chat:
Detailed Overview and Background Information:
This project builds on the foundations of the already amazing Push App, enhancing its capabilities for easier web3 and web3 tools usage. Inspired by ChatGPT, the app now offers a chat-like command and control experience.
Our key aim was to make creating an FVM DataDao from scratch as straightforward as possible, along with the ability to create proposals, vote on them, and execute these proposals. Users can form a FVM DataDao chat group with participating wallets and execute various commands, such as /fvm-propose.
We've also enabled interaction with ChatGPT, but since ChatGPT isn't free, users need to "subscribe" to a channel by creating a Superfluid channel using the Goerli version of Apecoin. Thus, a stream of Apecoin is needed to call the chatGPT API.
Moreover, we've made it easy for chat groups to fetch and push files to IPFS - all one needs to do is use the commands /ipfs-get <cid> or /ipfs-push <file>, and the app handles the rest.
The inclusion of ChatGPT sparked the idea of using Bacalhau and making it easy to use. Hence, users can now create a Bacalhau Stable Diffusion job to get back an image within the chat app.
We've also ensured that all ENS names resolve successfully (we even secured our "robot" ENS name).
In the end, users can use ChatGPT (token gated using ApeCoin) to create a prompt that triggers a Bacalhau job, returns an image, pushes it to IPFS, and the IPFS CID (or CAR file) can be stored in DataDao by a group of people - all within a single chat.
Finally, to increase portability and scalability, the server side has been dockerized and deployed to Spheron.
It all begins with the Push chat app. I created a backend server that would listen to all messages sent to a specific address or ENS (chittychat.eth). Whenever a message is sent to this address, the server will parse the message and execute the command.
Feature 1: FVM DataDao
The FVM DataDao creation is integrated into the chat app. All one needs to do is create a chat group with the wallets that will participate in the DataDao. At that point, smart contract will be deployed on Filecoin (Calibration). The chittychat robot updates the group as to the status of the deployment. The deployment Admin is the creator of the channel. Anyone can create a proposal to the group. When a signature is necessary from one (or all) of the users, the robot will send them a button to click that will create a transaction that will need to be signed by metamask. In this way, everyone in the DataDao know what is going on, can see the new proposals and even vote on them right from the chat!
Actions: /fvm-propose, /fvm-delegate-votes, /fvm-vote
Feature 2: ChatGPT
The robot listens to any call to /gpt. The rest is assumed to be the prompt. Before calling the ChatGPT API, the robot will check if the user has a Superfluid stream with ApeCoin. If not, it will ask the user to create a stream. The user can create a stream by calling /subscribe which will give a button to create such a stream. Once done, any call to /gpt will return the answer from the ChatGPT API.
Feature 3: IPFS
The robot listens to any call to /ipfs-get or /ipfs-push and either fetches or uploads the file to IPFS.
Feature 4: Bacalhau
The robot listens to any call to /bacalhau-sd or /bacalhau-get. The first one will create a Bacalhau Stable Diffusion job and the second one will fetch the image from the job.
Feature 5: The robot server has been dockerized and deployed to Spheron