Inspiration
Every group chat talks about who will win the election the game or the next decision from the Fed. No one keeps track of the scores. Betting with real money is everywhere on campus. An NCAA survey showed that 67% of college students who live on campus have placed a bet on sports. A UCLA study also found that bankruptcies went up about 28% in states where online sports betting was made legal. We wanted the part making a choice and being correct in front of your friends without the risk. So, we created Oddsey: prediction markets with play money using real Polymarket odds, right inside iMessage.
What it does
Oddsey provides a way for you and your friends to bet on prediction markets without any of the risk, by texting Oddsey and creating or joining a league, you can start placing picks on real Polymarket markets by only just texting Oddsey. You can ask for existing markets and their odds, then set how many stakes you want to buy at those odds. Oddsey never takes action until you confirm it, making sure that every decision is yours. Oddsey also lets you see league standing, acting as a leaderboard for bragging rights.
How we built it
We used Photon Spectrum to send and receive iMessages. We used Google Gemini with tool calling as the AI agent, we can turn user messages into commands. We used Polymarket API to get current markets and their odds. We used SQLite to store users, leagues and picks. All of this was written in TypeScript. Our main rule was "the AI talks, the code counts." All money math is done in the code never by the AI. A price of 62 cents means a 62 percent chance. So with $200 at 62 cents the code buys about 322 shares. If the price rises to 70 cents the code makes that bet worth, about $226.
Challenges we ran into
Polymarket returned closed markets, and markets that had almost no trading activity, so we had to filter those out. Gemini sometimes took than a minute to respond or didn’t respond at all, so we added timeouts and retry logic to handle those cases. Photon doesn’t support group chats on our plan, so each player has to text a different number to access Oddsey but league data lives in our database. We also made sure that two quick messages couldn’t spend the money twice so every bet is saved in a single database transaction.
Accomplishments that we're proud of
We built a working betting league that runs completely over iMessage in one weekend with no app to download and no sign‑up form. The agent never invents a price because every number comes from the Polymarket API. Phone numbers never leave our server, and leaderboards only show display names. We did all of this as a team where, for some of us it was our first hackathon.
What we learned
We learned how to use implement an AI agent to use specific commands we make for it. We also learned how to handle API calls so can access specific Polymarket markets. Finally, we learned how to collaborate on GitHub using branches, pulls and merges.
What's next for ODDSEY
We want to add alerts when your market moves. We want payouts when markets end. We want accuracy scores that reward predictions. We want recaps, for each league.
Built With
- api
- geminiapi
- imessages
- photon
- sql
Log in or sign up for Devpost to join the conversation.