Omnichain prediction markets + AI-generated NBA bets. Swipe to win NFTs tied to real merch!
OmniBet is an AI-powered, omnichain prediction market platform that allows users to bet on real-world events from any blockchain, and interact with dynamic, short-form markets created in real time. Built on top of LayerZero’s lzCompose and leveraging Flow blockchain, AI agents, and NFT rewards, OmniBet brings together the best of prediction markets, cross-chain UX, and gamified mobile engagement.
🌐 Core Idea OmniBet aims to make prediction markets accessible, fast, and fun by solving three problems:
Chain fragmentation — users shouldn’t need to switch networks to access a market.
Manual market creation — markets should emerge in real time based on live events.
Boring UI/UX — betting should feel intuitive, social, and rewarding.
🔮 Key Features
Liquidity is automatically rebalanced across chains, and parallel cross-chain messages ensure low-latency execution.
It creates short-timed micro-markets like: “Will LeBron score in the next 2 minutes?”
These are deployed exclusively on Flow, designed for mobile-first interaction.
Users swipe right for “Yes”, left for “No” — fast, intuitive, and accessible.
No form-filling or confusing options — it’s prediction betting made for the TikTok generation.
It fetches real-time NBA scores from trusted sources and generates cryptographic proofs that resolve the bets on-chain, without human input.
These NFTs can be redeemed for:
Official merchandise
Fan community access
Future loyalty points or collectibles
OmniBet was built as a deeply composable, modular system that brings together omnichain infrastructure, AI-generated prediction markets, and gamified UX, all working in real time across multiple blockchain ecosystems.
We used a mix of on-chain smart contracts, cross-chain messaging protocols, AI agents, and mobile-first front-end design, with a few “hacky” workarounds to enable live-market resolution and instant UX.
⚙️ Tech Stack Breakdown ✅ Smart Contracts EVM Contracts (Solidity) for general prediction markets
Factory + Singleton-style contract
Handles creation, user bet tracking, escrow, and payout logic
Flow Contracts (Cadence) for NBA AI-generated swipe markets
Swipe interaction stored as on-chain vote
NFT mint logic for winners triggered on market resolution
✅ Omnichain Infrastructure (LayerZero + lzCompose) Used LayerZero’s lzCompose to:
Let users on any chain place bets on markets hosted anywhere
Route token staking, message payloads, and user actions across chains
Automatically rebalance liquidity using multi-chain token contracts
lzCompose’s parallel message execution gave us near-instant UX and simplified bridging logic
✅ AI Agent for NBA Market Creation Built an AI agent using:
OpenAI Whisper to transcribe NBA commentary from stream audio
LangChain + GPT-4 to extract intent and generate time-boxed market statements
Example output: “Market: Will LeBron score in next 2 mins?”
These were auto-deployed to Flow with an internal “Market Publisher” function
✅ vLayer WebProof for Market Resolution Used vLayer’s WebProof to:
Scrape trusted NBA APIs and sports sites
Generate zk-verifiable proofs of event outcome
Submit those proofs back to the Flow or EVM contract to resolve the market
This let us resolve bets trustlessly, without needing oracles or manual intervention
✅ Frontend React Native for a mobile-friendly, swipe-based UI (Tinder-style)
Each market is shown as a card: swipe right to bet “Yes”, left for “No”
WalletConnect + Wagmi + Flow SDK for wallet integration
Used useEffect with LayerZero hooks to show confirmation modals once cross-chain txs landed
🧪 Hacky / Clever Workarounds 🧠 We built a custom card queue component to render swipe markets that auto-fetched the next available AI market from Flow.
🔁 For liquidity rebalancing, we piggybacked on lzCompose callback flows to “simulate” token transfers without bridging — keeping user assets in their native chain.
📺 For NBA detection, we scraped Twitch and YouTube stream titles in real time and cross-referenced team names to improve market context — even when video parsing was slow.