Inspiration

Most people lose in prediction markets. Not because they're unintelligent, because they're betting on instinct in a game that rewards information.

Hedge funds have teams of analysts. Everyone else has a price chart and a gut feeling.

The asymmetry isn't intelligence. It's access to synthesized, opinionated, accountable analysis. We built Oracle to close that gap, but not with a dashboard. With something that feels like sitting across from someone who actually knows.

What it does

Oracle is a prediction market platform built around three AI analysts, each with a distinct identity, methodology, and track record:

  • The Contrarian — bets against crowds when sentiment is extreme. Dry, base-rate driven, usually right when the room is too confident.

  • The Quant — pure statistical analysis. Speaks in numbers, Kelly fractions, and historical base rates. No narrative. Just edge.

  • The Insider — reads news flow, synthesizes sources, and finds signals before they become headlines. Three sources minimum.

Every evening, each analyst publishes one call, a market they have a view on, with their position, confidence score, and reasoning. The user reads all three, picks the analyst whose lens fits the night, enters a live briefing, asks questions, and decides whether to trust them.

The "Tonight's Call" screen shows all three analysts reading the same market simultaneously, often disagreeing. That disagreement is the product. You're not getting one answer. You're getting three different ways of thinking about the same uncertainty.

Real market data comes from Kalshi's API, updated in real time. The analyst reasoning is generated by Claude claude-sonnet-4.6 conditioned on each character's philosophy and voice. Track records are kept honestly, wins counted, losses counted, nothing hidden.

How we built it

Oracle was built entirely on the MeDo platform, using MeDo's multi-turn conversational interface to architect the full application through natural language before a single line of code was deployed.

The build process:

1. Concept and architecture via MeDo conversation The entire application structure, screen flow, component hierarchy, state management, data models, was designed through extended MeDo sessions. MeDo generated the React/Vite component tree, TypeScript interfaces, and Zustand store architecture.

2. AI analyst engine Each analyst is a carefully crafted system prompt defining their voice, methodology, analytical framework, and what they cover. API calls route through a Supabase Edge Function (server-side proxy) to TokenRouter, which provides access to anthropic/claude-sonnet-4.6. The Edge Function keeps the API key server-side and solves the cross-origin restriction that blocks direct browser-to-API calls.

3. Live market data Kalshi's public API provides real-time odds, volume, and market metadata. Each analyst is assigned a coverage area (economics, crypto, geopolitics) and pulls relevant live markets on briefing load. Fallback mock data ensures the app functions if Kalshi is unavailable.

4. The briefing room The core interaction is a multi-turn AI conversation styled as a private analyst briefing. The "thinking sequence", where the analyst shows their research steps before responding, was designed to make the AI reasoning process visible and trustworthy, not hidden behind a spinner.

5. Position logging Users can trust an analyst's call and log it to their personal record. The record tracks: which analyst, which market, which position, at what price, on what date. Positions resolve against Kalshi's outcomes.

Technologies used: MeDo, React, Vite, TypeScript, TailwindCSS, Framer Motion, Zustand, Supabase Edge Functions, Supabase Vault, Kalshi API, TokenRouter API, Anthropic Claude claude-sonnet-4.6, Deno

Challenges we ran into

1. The CORS wall Direct browser calls to TokenRouter were blocked at the network level by MeDo's hosting environment. No CORS proxy survived it, they're still browser-initiated fetches. The solution was a Supabase Edge Function running on Deno server-side, creating a same-origin proxy that the browser trusts. The API key lives encrypted in Supabase Vault and never reaches the client.

2. Wrong model string After the proxy was working, responses still failed with a 503, "model not found." The platform had defaulted to openai/gpt-4o instead of our TokenRouter model. One string change to anthropic/claude-sonnet-4.6 and the analysts came alive. A thirty-second fix that took two hours to diagnose.

3. Making AI sound like a person The first analyst responses were technically accurate but read as AI-generated, perfect triplets, em-dashes everywhere, summary paragraphs at the end. We wrote a detailed voice constraint set into each system prompt: no em-dashes, no symmetrical lists, banned vocabulary list, sentence length variation rules, peer-to-peer tone. The difference was immediate.

4. The briefing room had no opening The conversation area was loading blank, the opening message wasn't appearing because the API call was firing before the component mounted. We added hardcoded fallback opening messages that display instantly, then get replaced by real AI responses when they arrive. The room is never empty.

5. Kalshi market tickers Kalshi's public API uses specific ticker symbols that expire and change. We built a fallback system, if a specific ticker fails, the app pulls the top markets by volume instead. The user always sees live, real markets.

Accomplishments we're proud of

The Tonight's Call screen. Three analysts. Same market. Three different positions and reasoning. "Whose lens fits tonight?" This single screen communicates the entire concept in under five seconds. It was not in the original spec, it emerged from building and is now the strongest feature in the app.

The analyst voices. The Quant's opening message on Bitcoin: "Polymarket sits at 54¢. My logistic regression trained on 18 post-halving cycles gives 41%. That's 13¢ of overpay baked into hopium. GARCH(1,1) on 90-day vol puts the $120k threshold at roughly 1.8 standard deviations from current spot." That is a real AI response, not scripted. The system prompt is doing its job.

The editorial design language. A prediction market that reads like a newspaper. The warm dark palette, crosshatch editorial portraits, gold accents, serif typography for emotional moments, monospace for all numbers. Most fintech apps look like crypto dashboards. Oracle looks like a private members' club.

The "On the record." confirmation. When a user logs a call, the confirmation reads: "You sided with THE CONTRARIAN. THE CONTRARIAN read it NO at 58¢. We'll show you tomorrow whether the read held." The analyst's reputation is on the line alongside the user's. Accountability as a design feature.

What we learned

The hardest part of building with AI isn't the AI. It's the voice. Getting a language model to consistently sound like a specific person, dry, base-rate driven, never excited, requires the same discipline as writing a character in a novel. System prompts are character sheets.

We also learned that MeDo's conversational architecture meant we could prototype, critique, and rebuild entire screens in minutes. The architecture document, component contracts, state map, and design tokens were all produced through MeDo conversation before the first component was rendered.

The confirmation screen ("You sided with THE CONTRARIAN.") was the last thing we built and the best thing in the app. Don't rush the emotional payoff.

What's next for Oracle

  • Real Kalshi position execution — connect the "Trust this call" flow to Kalshi's trading API so positions are placed, not just logged
  • Analyst accuracy tracking — as markets resolve, track each analyst's real win rate and update their public record automatically
  • Morning brief — a daily email from whichever analyst had the best call last night
  • Mobile app — the editorial aesthetic works beautifully on mobile; a native app is the natural next step
  • More analysts — The Macro Strategist, The Sports Modeler, The Political Scientist

Built with MeDo

Oracle would not exist without MeDo. The conversational architecture workflow, designing entire systems through natural language before writing code, is the fastest and most honest way to build with AI we have encountered. MeDo handled the infrastructure. We handled the concept, the voice, and the design.

#BuiltWithMeDo

Built With

  • anthropic-claude
  • claude-sonnet-4.6
  • deno
  • framer-motion
  • kalshi-api
  • medo
  • node.js
  • react
  • supabase
  • supabase-edge-functions
  • tailwindcss
  • tokenrouter
  • typescript
  • vite
  • zustand
Share this project:

Updates