SoulHub & Cat Phish

GitHub for AI Characters & Simple Game That Uses Those Characters

SoulHub & Cat Phish

Created At

ETHGlobal New York 2025

Winner of

Flow Foundation

Flow - Flow Builder Pool Prize

Prize Pool

Project Description

During the hackathon, we made 2 applications - SoulHub and Cat Phish.

SoulHub is a GitHub like way to find and manage AI characters of all kinds. Each character card, called a 'Soul' is a JSON that share a few number of same fields that could be used to either i) be fed into system prompts and contexts of LLMs to create AI characters of varying qualities or ii) be used as basis for knowledge that AI could use to bounce off ideas with a creator. These 'Souls' serve the role of a particular characters' stats - including everything from their personality, personal history that shaped them the way they are, and more. Adding new fields to the 'Soul' is very flexible and user-dependent. We implemented a web interface for SoulHub as a web app that also contains

Cat Phish is a simple competitive game that features 2 cats disguised as fishes trying to eat as many fish as possible while avoiding dangerous sea creatures like jellyfish and sharks. 2 cat characters are designed based on 2 sample character cards ('souls') we pulled and changed to help make the game. The 2 playable avatars each have their own unique special ability. These abilities were designed by feeding in character cards to a LLM - you may check them out here https://g.co/gemini/share/a38207f582f9. It's important to note here that the "Souls" and their interaction with LLMs are meant to be used either as creative inspiration or an automatable pipeline but they are always meant to be used for artistic and creative work.

Side Note:

  1. Goal of Cat Phish the game is demonstrate what types of creations could be made using SoulHub. Potential applicability of Soul Hub includes, writing stories, games, videos, and other forms of digital art.
  2. Currently, Cat Phish is a game that's playable by 2 people on the same keyboard. We would have loved to make a GameFi element for a but there doesn’t seem to be any known ways to link 2 wallets to the same page at the same time! Perhaps a good idea to turn it into a full-on P2P game in the future or create a 1 person campaign where they can buy new abilities or new characters.

Game here: https://lovable.dev/projects/d165cfa5-7ef9-4ab3-b0e1-27ef01a05c1f

How it's Made

  • SoulHub: We started with a React Vite template and integrated RainbowKit, Wagmi, and Viem to interact with a smart contract. The smart contract is deployed on the Flow testnet. The main function of the deployed smart contract is donations using ERC1155 NFTs. We have built a more sophisticated and secure site compared to existing AI Characters. It serves as a GitHub for AI Characters hub, and whenever a commit occurs, it uploads using Walrus’s Tusky SDK. I was confused about whether to use the official Walrus SDK or the Tusky SDK. It would have been helpful if there had been more explanation about the file ID.

There was initially a bit of confusion because it wasn’t clear what the difference between Walrus SDK and Tusky SDK were and exactly what types of features and functionalities they can support. We eventually settled on Tusky SDK.

  • Cat Phish: It's mostly a TypeScript application. The template for the game - UI, most of the hooks, and other reusable assets were generated via an AI design application. For components like wallet integration, we used Privy to weave wallet experience tools like wagmi and Rainbowkit. Nora, as it turns out, is not very good at generating code even when given very specific prompts if it’s a whole project. But it’s good at writing code for specific scripts or understanding inner workings of various infrastructure protocols and how to make good design choices. We leveraged Nora for understanding how Privy works behind the scenes and what types of general design choices could be made when integrating to web applications. What’s hacky about Cat Phish game is that the each playable cat has a unique ability that was ideated with AI based on character card we made and posted on SoulHub.

  • SoulHub SDK (for future): We ideated on an eventual need for a SoulHub SDK to be used by SoulHub users to efficiently pull and make changes to SoulHub’s character cards. Such an SDK would use ZK proving technology to be able to prove that some user has pulled a specific character card and that they’ve made specific changes if there ever are any. We didn’t implement this as we needed a separate verifier infrastructure for the protocol to work but it would need a ZK-DSL for general proving, ZK rollup Layer 2 to make sure we can robustly store proofs, and a Python (or TypeScript) orchestration pipeline to be able to interact with AI models.

background image mobile

Join the mailing list

Get the latest news and updates