
The StreakBlink story · Solana Blinks World Cup Hackathon
Predictions where the fans already are.
No app. No login. No database. Just a Blink in a social feed, a 0-lamport Solana transaction, and a leaderboard rebuilt live from chain history alone — tested for real, live, against today's World Cup Final.
What it is
Every prediction product makes fans come to it — an app, a site, a login. The World Cup's actual attention surface is the social feed, mid-match. StreakBlink puts the market inside the feed as a Solana Action: a fan sees the question, taps, signs with the wallet they already have, and is back to scrolling in five seconds. Call it right and a streak grows — on-chain, provably, with nothing to install.
Every prediction is a real signed transaction — value transferred is zero. The memo is the payload, not the money.
getSignaturesForAddress on one public board account reconstructs every pick, every streak, the whole leaderboard.
No stakes, no payouts, no wagering — streaks are bragging rights, not money. That's true in the demo and in the live Final.
How it works — no database, on purpose

- 1. Tap in the feed
A Blink unfurls wherever a link would — X, Telegram, dial.to. “Next goal: Spain or Argentina?” Tap a side. No app, no install, no new tab.
- 2. Sign a 0-lamport transfer + memo
The wallet you already have signs one transaction: a 0-lamport transfer to a single public board account, carrying an SPL memo — { qid, pick, wallet } — as its only payload.
- 3. The chain is the whole database
Every pick references the same board account, so one getSignaturesForAddress(BOARD) call discovers the entire prediction history. Streaks and the leaderboard are computed from that — live, from nothing else.
This is the actual public account every StreakBlink prediction references. Anyone can independently recompute every streak from it — the leaderboard is a pure function of public chain data, not something we could fake even if we wanted to.
2026 World Cup Final · Spain vs Argentina
This is the part a demo can't fake: today we ran the Final market against the real match, on the real free-tier TxLINE feed — and it did not go perfectly the first time. Here's exactly what happened, with the receipts.
- Pre-kickoff · devnetFirst tap, before kickoff — devnet
The Final market started life on Solana devnet, same as the demo game. A real signed transaction, verifiable on-chain right now:
4DJfxwJomod1wuvxKDjq8WD6mRjeq7JZtEpXHycmvUmXrVCqCGq5DrvYNMZZtkfxMfoPm8V3NDsZSjLNAfRt26TX - ~kickoff · bug #1Bug found live: the status field lied
The live TxLINE feed's
GameStatefield stayed"scheduled"for the entire match — it never once said the game had started. Caught during the actual live event, not in a test. The real signal turned out to be a different field,StatusId:1= pre-kickoff,2= live,3= halftime — confirmed against the real 1→2 transition at the real kickoff whistle, and fixed on the spot. - Live · bug #2Bug found live: a false-positive goal
The goal-detection logic matched any Action string containing
"goal"— which briefly caught"goal_kick", a routine goalkeeper restart, not a score. That false positive voided a real prediction for a moment before it was caught and excluded with a targeted fix, live, mid-match. - Halftime · the pivotHalftime: devnet to real mainnet, live
At halftime the Final market moved from devnet to real Solana mainnet — an architectural decision made and shipped during the event itself, not planned weeks in advance. The first tap to work end-to-end on the new cluster:
61qFdsQYWjMDqonLrky7hGwG7v1WbSRWi6thg6eYdiPctqRpsyhnaMnUuzVjK8Nx969goV68fcFfqQPBrUiFqDzs


Not a staged screenshot — the project owner tapped this pick live from his own phone wallet during the match, real mainnet transaction, and it's reconstructed on this page the same way every other row is: straight from chain history.
Spain 0 – 0 Argentina, in progress. We're reporting this honestly rather than inventing a result: check the live market for the current score — it updates from the same real feed this page describes.
Every pick on the Final market is a real mainnet transaction right now. If the feed can't attribute a goal cleanly, the market voids — no fake wins, ever.
Shipped live, too: the redesign
The UI you're looking at — "broadcast desk at night" — replaced an earlier, rougher vibe-coded version, rebuilt and shipped during the same live event as the mainnet pivot above. Same data, same chain wiring, same honesty rails — a scoreboard-grade interface instead of a first draft.

Default-feeling scaffolding, no consistent type or color system, emoji standing in for iconography.
One dark night-turf palette, one lime accent, tabular mono for every number, a bespoke 17-glyph icon set, motion reserved for live state. The data and chain wiring underneath never changed.
Real vs. simulated — stated plainly
- Every prediction — a signed Solana transaction, always.
- The Final market — real Spain vs Argentina data from the live TxLINE feed, on devnet pre-kickoff and mainnet from halftime on.
- The leaderboard — 100% reconstructed from chain history, zero database, for both the demo game and the Final.
- The 90-second demo game — a recorded, TxLINE-shaped synthetic fixture on a compressed loop, labeled SYNTHETIC everywhere it appears. Always devnet.
- Nothing about the Final market's score or feed is simulated — only the demo game's match events are.
No stakes, no wagering, no payouts anywhere in this product — the demo game and the live Final both run on free predictions only.
Same Blink, same chain, same honesty rails — no install required.