Inspiration

I always wanted to bet with friends on random stuff, with an objective AI rating the odds. "Will friend A eat more than 3 meals today?" I'd bet YES, because I know he gets extra queso, extra guac on his chipotle bowls.

What it does

*Sidebet is an AI bookie in your ishi for your group chat.

  • Trash talk → markets. Type !fore graduating?, or Sidebet spots a bold claim ("👀 Sounds like a bet") and offers to open it.
  • Odds with receipts. Claude red cites it: "80%: the chat calls him 'climbing master shifu' (Aug 4)."
  • Live action. Bet with !yes e odds, payouts and who's in, plus aKalshi-style chart.
  • Reacts like a friend. Real evsquat") gets a call-out on whose bet just got better or worse. Notable bets get tagged: *first in, all in, betting on themselves, fading the room.
  • Mirrors Kalshi. Public events use live Kalshi odds and settle automatically.
  • Settles up. Posts everyone's In real-money mode, it DMs Venmo /Cash App links and reminds people until the winner confirms.
  • Guardrails keep it off sensitoom for banter.

How we built it

  • iMessage: Photon's Spectrum Sdebet's own Apple ID, so it textsfrom its own number.
  • Backend: TypeScript on Node 2, bets, wallets and history.
  • AI: Claude Opus 5.5 with structured outputs. It reads each group's history once and writes a dossier plus per-person profiles, sxt{K}$ tokens instead of $\sim115\text{K}$ ($\sim 10\times$ less, a couple of cents per market). The same model watches the chat to suggest markets and react to evi
  • Odds: Claude's opening guess $p_0$ counts as $W$ coins already in the pot, so real bets move the odds without slamming them to $ $$p_{\text{yes}} = \frac{p_0 W + Y}{W + T} \qquad (Y = \text{money on YES},\ T = \text{total pot})$$
  • Real markets: Kalshi and Polymarket APIs. Claude checks that a Kalshi market matches on team, threshold and deadline.
  • Visuals: SVG → PNG charts with resvg, in Inter (the closest open match to Kalshi's proprietary font).
  • Payouts: parimutuel, settled in the fewest payments: $$\text{payout}_i = \frac{s_i}{S_xt{total}}$$

Challenges we ran into

  • Its own identity. Moving the t meant a separate macOS user,getting past Apple blocking web sign-ups, and handling the same group having a different chat ID on each account. We built a data-miat imports history from my account.
  • Time zones. The AI thought it was 8:45 am at 4:45 am, because timestamps reached Claude in UTC. Everything it reads is now loc
  • iMessage limits. No scripted tapbacks, no rich link previews, no Apple Cash API. We designed around all three.
  • AI judgment. In a model comparison, the smallest model treated a joke ("he really thinks he's gonna squat 315 lmao") as evicurate model.
  • Friends found bugs: mistyped commands (!close yes now settles), unwinnable solo bets (now explained), fractional payouts (nowchart slopes (now steps at each bet), and self-resolved markets.

Accomplishments that we're proud of

My friends played it without me asking, and had a blast. Seeing people use something you made is the best feeling.

  • *Odds people argue with, then beur months of 'gonna learn,' zero pool time") make it fun.
  • **It feels like a friend in the cation, not just commands.
  • Kalshi markets settle themselves.
  • **It's live in our real group chath months of history behind everymarket.

What we learned

  • Context engineering beats prompt tweaking. A compact dossier made odds faster, cheaper and better.
  • Every message should say what to type next, or people get stuck.
  • **Model choice is a product decisisible to the whole group, accuracywins.

What's next for Sidebet

  • An automated market maker, so every bet has someone to win from.
  • Fair resolution: group votes with Claude proposing the outcome.One friend resolved his own "do I have the most aura?" market YES.
  • More platforms: Spectrum alsoam and Slack.
  • Real Kalshi trading and Apple Cash requests, further off. Play money works for now.
  • Weekly auto re-scans to keep

Built With

  • anthropic-api-?-odds
  • bets
  • claude-opus
  • database
  • demo
  • dossiers
  • ffmpeg
  • html5
  • mirroring
  • node.js
  • photon
  • photon-spectrum
  • polymarket-api-?-real-market-search
  • reactions
  • reasons
  • rendering
  • sqlite
  • svg
  • tsx-?-the-bot-(node-26
  • typescript
  • video
  • wallets
  • zod-?-typed-ai-responses-(odds
Share this project:

Updates

Submission history