
Hypergamblification
November 2025 • Research Project
November 2025 • Research Project


Prediction markets have moved from niche financial instruments to consumer products. Kalshi lets you bet on Fed rate decisions, election outcomes, weather events. The interface is clean, the friction is low, and the thesis is that markets are the best information aggregators we have. What happens when that logic extends to everything you read?
Hypergamblification is a Chrome extension that watches what you're looking at and injects real prediction market betting opportunities directly onto the page. Read an article about government policy, see a Yes/No bet on whether the government will shut down. Scroll past a photo of a CEO, get offered odds on the stock price. The overlay is styled like DraftKings: gradient bleeds, pulsing live indicators, green and red pills. The visual language of sports gambling, applied to the news.
This is a critical piece, not a product. The point is that the infrastructure to do this—vision models, prediction market APIs, browser extensions—already exists and is trivially composable. The dystopia isn't hypothetical. It's a weekend project.
Prediction markets have moved from niche financial instruments to consumer products. Kalshi lets you bet on Fed rate decisions, election outcomes, weather events. The interface is clean, the friction is low, and the thesis is that markets are the best information aggregators we have. What happens when that logic extends to everything you read?Hypergamblification is a Chrome extension that watches what you're looking at and injects real prediction market betting opportunities directly onto the page. Read an article about government policy, see a Yes/No bet on whether the government will shut down. Scroll past a photo of a CEO, get offered odds on the stock price. The overlay is styled like DraftKings: gradient bleeds, pulsing live indicators, green and red pills. The visual language of sports gambling, applied to the news.This is a critical piece, not a product. The point is that the infrastructure to do this—vision models, prediction market APIs, browser extensions—already exists and is trivially composable. The dystopia isn't hypothetical. It's a weekend project.
My contribution
Concept, Design, Development
The team
Sean Lee
Surya Narreddi
The Bet Is the Content
The extension uses IntersectionObserver to track every image on the page as you scroll. Images are prioritized by distance from viewport center—whatever you're looking at gets processed first. A priority queue manages concurrent API calls so the system doesn't overwhelm either the browser or the upstream services. When an image enters the viewport, the extension extracts context from the surrounding DOM: headline text, captions, alt attributes, nearby paragraphs.
If the DOM context is rich enough, the extension skips the vision model entirely and searches Kalshi directly with extracted keywords. This fast path returns results in under 200ms. When context is thin—a standalone photo with no caption—it falls back to GPT-4o-mini vision, which sees the image and its surroundings simultaneously and generates short search terms. The search terms are deliberately broad: "Trump," "tariffs," "recession," not "semiconductor tariff policy implications." Prediction markets trade on events, not analysis.
The extension uses IntersectionObserver to track every image on the page as you scroll. Images are prioritized by distance from viewport center—whatever you're looking at gets processed first. A priority queue manages concurrent API calls so the system doesn't overwhelm either the browser or the upstream services. When an image enters the viewport, the extension extracts context from the surrounding DOM: headline text, captions, alt attributes, nearby paragraphs.If the DOM context is rich enough, the extension skips the vision model entirely and searches Kalshi directly with extracted keywords. This fast path returns results in under 200ms. When context is thin—a standalone photo with no caption—it falls back to GPT-4o-mini vision, which sees the image and its surroundings simultaneously and generates short search terms. The search terms are deliberately broad: "Trump," "tariffs," "recession," not "semiconductor tariff policy implications." Prediction markets trade on events, not analysis.
Place holder for now
Place holder for now
The Pipeline
Four systems coordinate across Chrome's extension architecture. The content script runs on every page, managing viewport observation, image wrapping, and overlay rendering. The background service worker handles API calls that would violate content security policies: screenshots, OpenAI requests, Kalshi searches. Messages pass between them asynchronously. A separate search backend on Fly.io indexes Kalshi's market catalog with PostgreSQL full-text search, returning results in under 50ms.
The wrapping system handles the reality of modern web layouts. Images inside picture elements can't be moved without breaking responsive loading. Flex and grid children need their layout properties preserved when wrapped in overlay containers. Ancestors with overflow hidden clip the overlay unless explicitly overridden. Each of these required solutions discovered through testing on production news sites—WSJ, Washington Post, NYT—where the markup is complex and the CSS is adversarial.
Four systems coordinate across Chrome's extension architecture. The content script runs on every page, managing viewport observation, image wrapping, and overlay rendering. The background service worker handles API calls that would violate content security policies: screenshots, OpenAI requests, Kalshi searches. Messages pass between them asynchronously. A separate search backend on Fly.io indexes Kalshi's market catalog with PostgreSQL full-text search, returning results in under 50ms.The wrapping system handles the reality of modern web layouts. Images inside picture elements can't be moved without breaking responsive loading. Flex and grid children need their layout properties preserved when wrapped in overlay containers. Ancestors with overflow hidden clip the overlay unless explicitly overridden. Each of these required solutions discovered through testing on production news sites—WSJ, Washington Post, NYT—where the markup is complex and the CSS is adversarial.
Content script injecting overlays on WSJ without breaking page layout.
Responsive overlays adapting across four image size tiers.
Place holder for now
Place holder for now
The Overlay
The overlay adapts to four size tiers based on image dimensions. Small images get a compact badge with just Yes/No prices. Medium images add a market title. Large and extra-large images get the full treatment: a glassmorphism ticker bar, the market question, betting pills with hover glow, volume figures, close dates, and a "Bet Now" call-to-action. The gradient is a four-stop black fade from transparent at the top to near-opaque at the bottom, designed to bleed into the image rather than sit on top of it.
The visual language is borrowed directly from DraftKings and FanDuel. The pulsing green dot. The uppercase "LIVE MARKET" label. The green-for-yes, red-for-no color coding. The fake bettor counts derived from market volume. Every element is designed to trigger the same response as a sports betting interface. The fact that this aesthetic can be replicated in CSS in an afternoon, and applied to any content on any webpage, is the point.
The overlay adapts to four size tiers based on image dimensions. Small images get a compact badge with just Yes/No prices. Medium images add a market title. Large and extra-large images get the full treatment: a glassmorphism ticker bar, the market question, betting pills with hover glow, volume figures, close dates, and a "Bet Now" call-to-action. The gradient is a four-stop black fade from transparent at the top to near-opaque at the bottom, designed to bleed into the image rather than sit on top of it.The visual language is borrowed directly from DraftKings and FanDuel. The pulsing green dot. The uppercase "LIVE MARKET" label. The green-for-yes, red-for-no color coding. The fake bettor counts derived from market volume. Every element is designed to trigger the same response as a sports betting interface. The fact that this aesthetic can be replicated in CSS in an afternoon, and applied to any content on any webpage, is the point.
Place holder for now
Place holder for now
The Architecture
The system is a monorepo with two components. The Chrome extension handles everything client-side: viewport tracking, image detection, DOM context extraction, overlay rendering, and message passing to the background service worker. The background worker runs GPT-4o-mini vision API calls and Kalshi market searches outside the page's content security policy sandbox. A keyboard shortcut activates tracking—the extension is inert until triggered.
The search backend runs on Fly.io. It syncs Kalshi's full market catalog into PostgreSQL, builds GIN indexes for full-text search, and exposes a REST API through Hono. The extension hits this API rather than Kalshi directly, getting sub-50ms response times and avoiding rate limits. The total infrastructure cost is effectively zero: OpenAI charges a fraction of a cent per image, the Kalshi data is free, and the Fly.io instance runs on the free tier.
The system is a monorepo with two components. The Chrome extension handles everything client-side: viewport tracking, image detection, DOM context extraction, overlay rendering, and message passing to the background service worker. The background worker runs GPT-4o-mini vision API calls and Kalshi market searches outside the page's content security policy sandbox. A keyboard shortcut activates tracking—the extension is inert until triggered.The search backend runs on Fly.io. It syncs Kalshi's full market catalog into PostgreSQL, builds GIN indexes for full-text search, and exposes a REST API through Hono. The extension hits this API rather than Kalshi directly, getting sub-50ms response times and avoiding rate limits. The total infrastructure cost is effectively zero: OpenAI charges a fraction of a cent per image, the Kalshi data is free, and the Fly.io instance runs on the free tier.
Place holder for now
Place holder for now
What It Demonstrates
The extension works. You install it, press a keyboard shortcut, and real Kalshi prediction markets appear on whatever you're reading. The markets are live, the prices update, the links go to real trading pages. Nothing about this required special access, proprietary data, or significant engineering. The vision model costs a fraction of a cent per image. The market data is free. The browser extension APIs are standard.
The critique is in the ease. Algorithmic manipulation of information consumption is not a future problem requiring future regulation. The components exist today as consumer APIs with generous free tiers. A browser extension can watch what you read, understand the topic through vision models, find a relevant financial instrument, and present it in the visual language most optimized for compulsive engagement—all in real time, all for effectively zero cost. Hypergamblification makes this visible by being the thing it critiques.
The extension works. You install it, press a keyboard shortcut, and real Kalshi prediction markets appear on whatever you're reading. The markets are live, the prices update, the links go to real trading pages. Nothing about this required special access, proprietary data, or significant engineering. The vision model costs a fraction of a cent per image. The market data is free. The browser extension APIs are standard.The critique is in the ease. Algorithmic manipulation of information consumption is not a future problem requiring future regulation. The components exist today as consumer APIs with generous free tiers. A browser extension can watch what you read, understand the topic through vision models, find a relevant financial instrument, and present it in the visual language most optimized for compulsive engagement—all in real time, all for effectively zero cost. Hypergamblification makes this visible by being the thing it critiques.
Place holder for now
Place holder for now

