Squabble

Squabble

Fast-paced, social word game on Farcaster

Created on 10th June 2025

Squabble

Squabble

Fast-paced, social word game on Farcaster

The problem Squabble solves

Squabble is a fast-paced, social word game designed for private friend groups on Farcaster. In each match, 2 to 6 players compete on the same randomized letter grid in real-time, racing against the clock to place or create as many words as possible on the grid. Squabble provides short 2-minute matches and optional micro-stakes.

Squabble consists of a Farcaster mini-app and an XMTP agent.
Users create an XMTP group chat on Coinbase Wallet and add the Squabble agent (squabble.base.eth). Within the group, users can interact with the agent to start matches, view the leaderboard, access games, and use simple commands like help, rules, etc.

The agent and mini-app are designed to communicate with each other. For example, when users request to create a game, the agent contacts an API, generates a game, and returns the mini-app’s URL for that game to the chat. Then, users can start playing by opening the mini-app embed.

When creating a game, the user can optionally ask the agent to set a bet amount to play with, but a game can also be free (no staked bet). If the game has a bet amount set, before being able to start the game, all the players need to stake the specified amount of $ (e.g. $1). The checkout process for staking/betting is performed through DaimoPay, and interacts directly with a custom contract deployed by us on Base (find it here).

The real-time game logic has been implemented through Socket.IO.

Finally, at the end of the game, the prize pool is automatically distributed to the winner(s), and the agent sends a recap message on the group chat with the winner details.


How to Play

  1. Create a group chat on Coinbase Wallet
  2. Invite @squabble.base.eth to the group chat
  3. Tag @squabble.base.eth in the group chat and ask them to start a game
  4. Bet on the game and compete to see who can find the most words!

image

Challenges we ran into

We approached the project by building something that strongly connects the agent component to the game mini-app within a Coinbase Wallet context. In doing so, we encountered several challenges:

  • The addresses users have in Coinbase Wallet, often tied to Base names, are not always linked to Farcaster FIDs. In other words, the addresses used to create a group chat in a Coinbase Wallet are not connected to users' Farcaster identities. This makes retrieving the Farcaster account associated with a given address in the group chat quite impossible for the agent.

  • The XMTP group chat itself lacks context regarding Farcaster identities. As a result, the only way to gather profile information is through the addresses in the group chat. However, this is not feasible due to the limitation mentioned in point 1.

  • Sign In With Farcaster in Coinbase Wallet mini-apps was broken during the hackathon, so we had to test everything on Farcaster itself and build a mocked authentication to make it work on Coinbase wallet.

  • The real-time grid is designed for multiple users (up to 6) to connect and play simultaneously. This was a challenge because, in addition to the mini-app itself, we had to develop a service with Socket.IO that connects to both the mini-app and the agent.

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion

Builders also viewed

See more projects on Devfolio