Project Utabiri · public preview

utabiri

Kenya-first prediction market — political outcomes, sports spreads and fast-resolving local markets, priced by an automated market maker, paid with M-Pesa, shared on WhatsApp/Telegram. Everything below is placeholder UI for the play-money beta.

01

Mobile app — the five screens

Telegram Mini App + PWA. Scroll sideways through the flow: feed → market → portfolio → wallet → share card.

2 · MARKETDetail + bet slipChart, NDIYO/HAPANA slip, payout calc, source + rules.
← Soko
SIASA · MARKET #001

Will Ruto win the 2027 presidential election?

Chanzo cha matokeo: IEBC official declaration · resolves by 24 Aug 2027 · dispute window 48h

34%NDIYO 66%HAPANA
show as: % / odds
JUN 45% → SEP 34%

Weka utabiri wako

UP
Ukishinda unapataUP 1,441
Bei ya sasa (incl. ~4% spread)34.7¢ / share
Weka Utabiri →

Unaweza ku-cash-out wakati wowote kabla ya matokeo

Sheria za soko: Resolves NDIYO if the IEBC declares William Ruto president-elect in the 2027 general election (including any run-off). Court-annulled & re-run → follows the final valid declaration. Market suspends on election day per GRA direction.
3 · PORTFOLIOPositions + cash-outLive P&L, one-tap cash-out, resolved history.
UP 12,450

Positions zako

Open value UP 1,730 · unrealized +UP 156 (+9.9%)

Cash out UP 545

Ruto wins 2027 — NDIYO

500 UP @ 31% → now 34% · +9.7%
Cash out UP 610

Arsenal wins EPL by 3+ — NO

600 UP @ 74% → now 78% · +5.4%
Cash out UP 505

Petrol > KES 190/L Oct — NDIYO

550 UP @ 59% → now 57% · −3.4%

Zilizotatuliwa

Kasarani by-election: UDA holds seat — NDIYO ✓

Resolved 22 Aug · source: IEBC · WON +UP 180

CBK cuts rate in August — NDIYO ✗

Resolved 12 Aug · source: CBK MPC statement · LOST −UP 250
4 · WALLETPlay-money nowM-Pesa previews with 5%/5% taxes shown honestly.
UP 12,450

Salio lako (beta)

UP 12,450

Utabiri Points — weekly top-up + leaderboard prizes. Hakuna pesa halisi kwenye beta.

LICENCE-GATED

Deposit via M-Pesa (preview)

KES
Excise duty 5% (KRA, on deposit)−25
Inaingia kwenye walletKES 475
LICENCE-GATED

Withdraw to M-Pesa (preview)

UnatoaKES 1,000
Withholding tax 5% (KRA, on withdrawal)−50
M-Pesa inapokea (B2C, ~30s)KES 950

Taxes shown upfront, kila mara — hakuna surprises.

Transactions

Cash-out · Kasarani by-election+UP 680
Weka · Ruto 2027 NDIYO−UP 500
Weekly top-up+UP 1,000
Won · UDA holds seat+UP 180
5 · SHARE CARDThe growth loopLive-odds card built for the WhatsApp forward.
SIASA · UTABIRI WA LEO · 01 SEP 2026

Ruto kushinda urais 2027?

34%NDIYO · ▲ +2 leo
66%HAPANA
utabiri utabiri.co.ke/m/ruto-2027 →
02

Web version

Desktop layout — feed, market and bet slip on one screen. The web app is the canonical surface (and the MVP Ro raises on).

utabiri.co.ke/m/ruto-2027
UP 12,450
SIASA · MARKET #001 · UP 4.2M TRADED

Will Ruto win the 2027 presidential election?

Chanzo cha matokeo: IEBC official declaration · resolves by 24 Aug 2027 · dispute window 48h · resolution log

34%NDIYO · 2.94 66%HAPANA · 1.52
JUN 45% → SEP 34% · 1,204 wanabiri
Sheria za soko: Resolves NDIYO if the IEBC declares William Ruto president-elect in the 2027 general election (including any run-off). Market suspends on election day per GRA direction.

Weka utabiri wako

UP
Ukishinda unapataUP 1,441
Bei (incl. ~4% spread)34.7¢
Weka Utabiri →

Cash-out wakati wowote kabla ya matokeo

03

MVP architecture

One TypeScript monolith, four modules, one Postgres. Play-money first — the flip to real KES swaps the wallet's funding source, not the architecture. Dashed = licence-gated or phase 2.

Telegram Mini App in the sharing channel itself Web PWA canonical, linkable surface WhatsApp bot prices, alerts, deep links Partner odds API phase 2 · M-PESA mini app API gateway · REST + WebSocket · one deployable (modular monolith) Trading engine LMSR market maker house-seeded, bounded loss buy / sell-back = cash-out % and decimal-odds prices trades serialized per market Wallet double-entry ledger integer KES cents, no floats tax engine: 5% in · 5% out PLAY-MONEY → REAL KES flip = funding source only Market service curated markets, no UGC 2-of-3 resolution council public log + dispute window election circuit breaker share cards (live-odds OG) Compliance KYC · 18+ · min bet KES 20 limits, self-exclusion append-only audit trail GRA real-time feed PostgreSQL single primary · ledger + markets + audit Redis queues · cache · live price feed EXTERNAL SERVICES · CALLED BY MODULES M-Pesa Daraja STK Push in · B2C out LICENCE-GATED → WALLET Smile ID pan-African ID verification → COMPLIANCE Resolution sources IEBC · CBK · EPRA official league tables → MARKET SERVICE Messaging Telegram · WhatsApp Cloud Africa's Talking SMS → ALERTS + SHARE LOOP
Every client speaks to one gateway; four modules share one Postgres. M-Pesa integration is legally gated on the GRA licence — the play-money beta runs the identical stack without it.
Backend
TypeScriptNodeFastify / NestJSdecimal.js for LMSR
Data
PostgreSQL (managed)Redis
Frontend
ReactViteTailwind@telegram-apps SDKone codebase, two surfaces
Payments
Daraja STK Push + B2CIntaSend / Flutterwave (faster start)Airtel Money later
KYC
Smile ID
Messaging
Telegram Bot APIWhatsApp Cloud APIAfrica's Talking SMS
Infra
AWS af-south-1DockerCloudflareSentry
04

Build sequence · 8–10 weeks to the beta

W1–2Money core

Ledger, wallet, tax engine; Daraja in sandbox only

W3–4Trading engine

LMSR, positions, cash-out, admin market creation

W5–6Clients

PWA + Telegram Mini App from one React codebase

W7–8Trust

KYC, limits, resolution console, public log, audit

W9–10Growth loop

Share cards, WhatsApp bot, 5–10 launch markets

05

Competitive landscape — Africa

Nobody in Africa combines a licence-first path, M-Pesa, live tradeable prices and transparent resolution. That combination is the differentiation.

Utabiri (planned)5050Markets 🇰🇪Bayse / ex-Gowagr 🇳🇬Luno predictions 🇳🇬🇿🇦SportPesa / Betika 🇰🇪
Licence status✓ GRA licence-first (play-money until licensed)unclear / none visible✗ listed illegal by Lagos regulatorcrypto product, avoids gambling law✓ licensed bookmakers
Politics markets✓ core product (2027 cycle)✓✓✗ crypto prices only✗ sports only
M-Pesa native✓ STK Push + B2C✓✗ bank transfer + USDT✗✓
Live tradeable prices✓ AMM — always a price, any sizelimited, thinP2P matching (needs counterparty)fixed binary payout✗ fixed odds, house-set
Cash-out before resolution✓ sell back anytimeunclear✓ early exit✗partial (some sports)
Public resolution rules + log✓ pre-declared sources, dispute window✗ undocumenteddisputed (manipulation allegation)✓ price feeds (automatic)n/a (scores)
Taxes shown upfront✓ 5%/5% displayed on every flow✗✗✗✗ buried in odds
Telegram Mini App + share cards✓ the distribution strategy✗✗✗SMS/USSD heritage
Partner / odds API✓ phase 2 → telcos, betting platforms✗✗✗closed
06

Global benchmark

The playbook proven elsewhere, localized: every global CLOB needed paid market makers — a cold-start Kenyan market needs an AMM, mobile money and bookmaker-familiar pricing.

Utabiri (planned)PolymarketKalshiBetfair ExchangeManifold
MechanismLMSR AMM, house-seeded (built for cold start)CLOB + paid MMs (20% rebates)CLOB + Susquehanna + subsidiesP2P odds exchangeCPMM + limit orders
Money railKES via M-Pesa (stablecoins phase 2)USDC on PolygonUSD bank/debitfiat walletsplay money
RegulationKenya GRA bookmaker pathoffshore + US CFTC DCM (QCX)CFTC DCM, fighting 20+ statesgambling licencesnone needed
Africa access✓ built for Kenyagray-market via crypto✗ geo-blocked✗ no mobile moneyplay only
Min stakeKES 20 (~$0.15)~$1$1 contracts~£1–2free
Fees~4% spread + commission on winningstaker fees (~1–1.75%/share)0.07·P·(1−P) taker2–5% on net winningsnone
DistributionWhatsApp/Telegram forwards + telco APIsocial embeds, API botsRobinhood / Webull order flowpro traders, APIcommunity

Utabiri column reflects the MVP plan, not a live product. Competitor facts compiled Sep 2026 from public sources.

Placeholder screens & architecture, Sep 2026 · single-page preview · individual screens: feed · market · portfolio · wallet · share card · web