Skip to content

Responsible Gaming

Velo is designed to support operator-driven responsible gaming controls. As a B2B game provider, Velo integrates with your existing player protection systems through the Seamless Wallet API.

Operator-Side Controls

The following responsible gaming features are managed by the operator and enforced through the Seamless Wallet API:

FeatureHow It Works
Deposit / Loss LimitsYour wallet's /wallet/debit endpoint can reject bets that exceed the player's configured limits by returning BET_LIMIT_EXCEEDED
Session Time LimitsTrack session duration using the game_session created at launch. Sessions expire after 1 hour by default; the operator can set session_token expiry to enforce reality checks
Self-ExclusionReturn PLAYER_BLOCKED from /wallet/authenticate or /wallet/debit for self-excluded players
Pause / ResumeSend pause or resume via WebSocket to instantly halt or resume gameplay. When paused, all bet attempts return "Game is paused". Use for AML/fraud flags or responsible gaming triggers
Reality Check TimeoutPass reality_check_timeout (minutes) in the Game Launch request to trigger UKGC-compliant reality check dialogs at the specified interval
Reality ChecksUse VELO_BALANCE_UPDATE postMessage events to trigger reality check popups in your casino wrapper
Cool-Off PeriodsBlock new game launches via the /wallet/authenticate endpoint during cool-off periods

Game-Level Protections

Velo enforces the following limits at the game level:

ProtectionValue
Maximum bet$1,000 per bet
Maximum payout$50,000 per bet
Maximum odds1000×
Lock bufferLast 10 seconds of each round — no new bets accepted
Session TTLGame sessions expire after 1 hour

Provably Fair Settlement

Every round is settled using a verified Pyth Network oracle price with an on-chain proof URL. Players can independently verify that the settlement price was accurate and untampered.

Audit Trail

All transactions (debits, credits, rollbacks) are recorded in the database with full traceability:

  • Every debit (bet) is paired with exactly one credit (settle or cashout)
  • Transaction IDs link back to specific bets and rounds
  • Pyth verification URLs are stored for every settlement and cashout

postMessage Events for Player Protection

Operators can use iframe postMessage events to monitor player activity in real-time:

javascript
window.addEventListener("message", (e) => {
  if (!e.data.type?.startsWith("VELO_")) return;

  switch (e.data.type) {
    case 'VELO_BET_PLACED':
      // Track wager amount for loss limit enforcement
      trackWager(e.data.stake);
      break;
    case 'VELO_BET_SETTLED':
      // Update P&L tracking
      trackResult(e.data.payout - e.data.stake);
      break;
    case 'VELO_BALANCE_UPDATE':
      // Trigger reality check if session is long
      checkSessionDuration(e.data.balance);
      break;
  }
});

Reporting API

Operators can query player activity for compliance reporting via the Reporting API.

B2B Integration Documentation