Live-Camera Betting

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.

Live-Camera BettingCCTV BettingLukkiGaming

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

AspectWidget (iframe)Feed (REST, WebSocket, gRPC)
What the operator buildsA launch button and a thin chrome (close control, balance) around Lukk's full-viewport widgetIts own market UI, bet slip and stream presentation on top of Lukk's data
What Lukk suppliesStream, markets, pricing, settlement and the themed widgetA 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 placementInside the widgetA quote by market slug, then POST /api/v1/bets; clock sync at GET /api/v1/b2b/time
EffortAn afternoonDays

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-ancestors verified on every domain the widget will run on.
  • Launch sessions minted server-side and relaunched on lukk:session_expired.
  • debit, credit, rollback and reconcile live, 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

Last verified: October 10, 2026.