Inspiration
Prediction markets do around $10 billion in open interest every day. A lot of people out there are already trying to read where crypto goes next, and I'm one of them. I've always liked Bitcoin and watching it move.
I wanted to take that instinct and turn it into something you can just tap. Not a trading screen, not an order book, not real money. Just a live chart and a grid of boxes floating over the next few seconds of price. You tap where you think it's headed and you find out almost immediately.
There's a phrase I keep coming back to: financial nihilism. The feeling that the "responsible" path doesn't really pay off anymore, so people would rather take a fun shot at something. Euphoria leans into that feeling on purpose, but with play-money gems instead of real cash, so nobody actually gets hurt.
What it does
Euphoria is a Bitcoin prediction game that lives inside a Reddit post.
The live BTC price sweeps across a chart, and ahead of the line sits a grid of boxes. Each box represents a price level at a future time, and each shows its own multiplier. You tap a box to place a bet for 1 gem. If the price line touches your box before its time runs out, you win instantly. The nearer and sooner boxes are safer and pay a little; the far ones are long shots and pay up to 50x.
There are no rounds and no waiting. Open the post, and it's already running. You can stack as many bets as you want, and it keeps going until you close it. Everyone starts with 500 gems, gets a daily bonus, and plays for a spot on the weekly leaderboard.
How I built it
I built it using the Devvit React template, a small Node server behind it, and Redis for storage.
The server is the only one that decides everything. It pulls the live BTC price once a second, keeps the exact series of price samples, and settles every bet against those samples. The webview only draws what the server sends and posts which box you tapped. That way there's nothing for a player to fake.
The multipliers come from a touch-probability model: the likelihood that the price reaches a given box in the remaining time. Every playable box has the same house edge, so no box is secretly a better deal than another; picking one is purely about how much risk you want to take. Added some sounds to make it more fun heuristic.
Challenges I ran into
The hard part wasn't drawing the game. It was the platform and the money math.
Devvit doesn't provide true real-time streaming, so the feed had to be built around a roughly 1-second server heartbeat and made to feel live on the client. Fetching the price was its own fight: external domains had to be on Reddit's allowlist, so I had to work around and cleanly fall back when a source wasn't reachable.
The bigger lesson was on the economy side. It's genuinely hard to keep a betting game alive and fair over time. If the odds are even slightly off, the balances either explode or bleed to zero and the fun dies. Getting the edge to sit in the right place and proving it with a simulation rather than guessing took the most care.
Accomplishments that I'm proud of
It actually feels good to play. The line moves smoothly, the boxes light up when you tap them, and a win pays the moment the line touches; that instant hit is the whole point.
It's also honestly fair. Outcomes are server-authoritative and settle only on recorded price data, and I verified the payout math so every box has the same, provable edge. And it stays firmly on the right side of the line: play money only, no cashing out, no purchases, nothing real at stake.
What I learned
How hard it is to survive your own game. Building the fun part is quick; keeping it balanced so it survives thousands of taps is the real work, and it comes down to measurable systems, not vibes.
I also learned how much of "feels live" is an illusion you build on top of a slow, shared heartbeat and how much a single source of truth on the server simplifies everything downstream.
What's next for Euphoria
More to bet on and more ways to bet. Next up: more assets beyond Bitcoin, leverage taps for bigger swings, and parlays that chain several boxes together into a single bigger payout. The goal is to keep it a quick, fun tap that gives you that kick to go one more time.
Built With
- devvit
- hono
- react
- redis
- typescript
- vite
- webaudio

Log in or sign up for Devpost to join the conversation.