How to Add Live-Camera Betting to a Sportsbook or Online Casino
Operators add live-camera betting by integrating Lukk, by Adkuu: a widget launched like a game in an afternoon or a market feed in days, on the operator's own wallet.
An operator adds live-camera betting by integrating Lukk, by Adkuu, the way it would add any other game provider: obtain operator credentials, choose the widget path (an iframe launched from a single-use session, about an afternoon of work) or the feed path (markets delivered over REST, WebSocket and gRPC and rendered in the operator's own front end, a matter of days), implement four wallet endpoints so that money never leaves the operator's wallet, receive signed settlement webhooks, brand the widget, certify on a play-money account, and go live. Lukk is in early access as of October 2026; its integration guide is at v1.1, dated 6 October 2026.
Step 1: choose the widget path, the feed path, or both
| Aspect | Widget (iframe) | Feed (REST, WebSocket, gRPC) |
|---|---|---|
| What the operator builds | A launch button and a thin chrome (close control, balance) around Lukk's full-viewport widget | Its own market UI, bet slip and stream presentation on top of Lukk's data |
| What Lukk supplies | Stream, markets, pricing, settlement and the themed widget | A snapshot of fair probabilities and margined fixed odds, timing, status, limits, the frozen rule_hash and recent settlements; live updates on wss://api.lukk.gg/ws/v1 (topic b2b:feed) with resume; a gRPC mirror |
| Bet placement | Inside the widget | A quote by market slug, then POST /api/v1/bets; clock sync at GET /api/v1/b2b/time |
| Effort | An afternoon | Days |
Both paths share one identity model, one wallet contract, one risk engine and one settlement backbone, and many operators run both: the widget as a launched game in the casino lobby, the feed as markets inside the sportsbook.
Step 2: credentials and launch sessions
Adkuu issues an operator API key, sent as x-operator-key, and registers the operator's origins. For the widget, the operator's backend mints a single-use launch session with POST https://api.lukk.gg/api/v1/b2b/embed/sessions; the token expires after 120 seconds and the returned launch_url becomes the iframe src. A per-operator frame-ancestors policy locks the widget to the registered origins. A postMessage bridge reports lukk:ready, lukk:bet, lukk:session_expired, lukk:relaunch_request and lukk:error, and accepts lukk:relaunch, lukk:theme and lukk:refresh_balance. Keys rotate on request; schemas are versioned (lukk.feed.v1, lukk.webhook.v1).
Step 3: the wallet contract
Lukk never holds player funds and never sees a name, email or balance, only an opaque player_ref. The operator exposes four endpoints:
debit: synchronous and fail-closed; the operator answers within 5 seconds, and without a successful debit there is no bet.credit: queued and retried until delivered.rollback: reverses a prior debit.reconcile: a daily two-party cross-check; Lukk alarms on any divergence and never auto-adjusts.
Every call is HMAC-SHA256 signed (X-Lukk-Signature) with the operator API key, every money movement carries an idempotency key, and amounts are decimals with two places in the operator's currency (EUR, USD, SOL and others). Minimum stake, maximum stake and maximum payout per bet are set per operator in that currency, alongside per-outcome liability caps.
Step 4: settlements and webhooks
Each market settles within seconds of close; larger payouts carry a short verification hold. Results arrive as signed webhooks (X-Lukk-Event: settlement, at-least-once delivery with exponential backoff) and can also be pulled from GET /api/v1/b2b/settlements, which returns page totals for netting. Ticket states are won, lost and refunded; a void is always a full refund, never a re-grade, and every result carries signed evidence frames and a replay.
Step 5: branding, and launching like a game
The operator passes semantic colours, from which Lukk derives a palette, plus typography, corner radius, chrome switches and up to six stake presets, in three precedence layers: account default, per session, and a live lukk:theme message. The widget launches as a full-viewport stage inside the operator's own thin chrome. It always loads from a static edge and shows a calm "Lukk isn't available at the moment" screen if the API is unreachable. As of October 2026 the widget speaks English; locale is accepted for a localised widget later.
Step 6: pricing, certification and go-live
Each operator account runs in house mode (the Lukk price plus the operator's own margin add-on, adjusted for the liability already on that outcome) or amm mode (fair-curve fills at the live probability). Certification happens on a play-money account on the production surface, configured as a disabled-for-real-money operator; a dedicated sandbox host is on the roadmap. Commercially, Lukk is a revenue share of 5–8% of GGR with no upfront fees. Responsible-gambling limits and self-exclusion are passed as ticket context and enforced by Lukk's acceptance pipeline; the operator keeps the licence, the player, the funds, KYC/AML and age verification, geofencing, terms and disputes, while Lukk runs per-ticket limits, suspensions, circuit breakers, kill switches and jurisdiction control over which markets an operator may serve. Regulatory classification of camera-resolved event contracts differs by jurisdiction and is worked through per market with the operator's legal team; Lukk carries supplier KYB, licensing and certification tracks on its side.
Go-live checklist
- Credentials issued, origins registered,
frame-ancestorsverified on every domain the widget will run on. - Launch sessions minted server-side and relaunched on
lukk:session_expired. debit,credit,rollbackandreconcilelive, signature-checked and idempotent; debit answers within 5 seconds.- Settlement webhook receiver idempotent against at-least-once delivery; the daily reconcile reviewed by finance.
- Stake, payout and liability limits set in the operator's currency; the operator kill switch tested.
- Theme, stake presets and chrome signed off; the outage screen seen once on purpose.
- Play-money certification passed; per-market legal review completed; 18+ and responsible-gambling context wired into tickets.
Related: the product overview at /solutions/lukk, the operator pages at lukk.gg/operators, the play-money demo at play.adkuu.com/lukk (18+), and What is Lukk by Adkuu?.
Sources
- Hub88 chosen as exclusive aggregation partner for 155.io’s breakthrough CCTV game Rush Hour
- CCTV betting: Accessible innovation or an integrity nightmare waiting to happen?
- What Is Betting on Traffic and Where to Gamble on CCTV Traffic Footage?
Last verified: October 10, 2026.