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

Chitty chat

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.

Chitty chat

Created At

HackFS 2023

Winner of

trophy

🏆 Push Protocol — Grand Prize

trophy

🏆 HackFS 2023 Finalist

Project Description

Summary of Chitty Chat:

  • Enhanced Push App featuring seamless integration with web3 and web3 tools. Incorporates an intuitive chat-like command and control interface, taking cues from ChatGPT.
  • Facilitates effortless creation and management of FVM DataDao: create proposals, vote, and execute tasks.
  • Introduces ChatGPT integration with a subscription feature, activated by creating a Superfluid channel using the Goerli version of Apecoin.
  • Enables fetching and pushing of files to IPFS directly from the chat interface using /ipfs-get <cid> or /ipfs-push <file> commands.
  • Allows users to create Bacalhau Stable Diffusion jobs within the chat app for added convenience.
  • Ensures successful resolution of all ENS names, including the app's "robot" ENS name.
  • Incorporates a workflow where ChatGPT can create a prompt, which triggers a Bacalhau job, returns an image, pushes it to IPFS, and the IPFS CID (or CAR file) gets stored in DataDao.
  • Server-side is dockerized and deployed to Spheron for greater portability and scalability.

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.

How it's Made

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

background image mobile

Join the mailing list

Get the latest news and updates