Keno
Pick numbers on a grid, then draw — match more numbers for bigger multipliers.
Import
import { KenoGameSDK } from '@maktubbet/sdk/keno'
import '@maktubbet/sdk/keno/styles.css'Usage
'use client'
import { useState } from 'react'
import { KenoGameSDK } from '@maktubbet/sdk/keno'
import '@maktubbet/sdk/keno/styles.css'
export default function KenoPage() {
return (
<KenoGameSDK
accessToken="user-jwt-token"
user={{ betCount: 0, isAuthenticated: true }}
updateBalance={(newBalance) => console.log(newBalance)}
onAuthRequired={() => console.log('Auth required')}
currency={{ code: 'USD', prefix: '$', rate: 1 }}
language="en"
logo={<span>MY LOGO</span>}
onToast={(t) => console.log('Toast:', t.title)}
theme={{
backgroundDark: '#0D1117',
backgroundDarkLight: '#161B22',
inputBackground: '#0D1117',
actionButtonColor: '#1C2333',
buttonColor: '#FFFFFF',
}}
/>
)
}Demo Mode
Demo mode is automatically enabled when a user places a bet with a $0 amount. To run the game entirely client-side without a backend session, pass isDemo — see Demo Mode.
Features
- Tile grid — select up to 10 numbers
- Odds table — shows payout multipliers for each match count
- Mode select — switch between classic and other game modes
- Auto-pick — randomly select numbers
Props
See Shared Props — KenoGameSDK accepts the standard KenoGameSDKProps interface.
| Prop | Type | Required | Default |
|---|---|---|---|
accessToken | string | null | ✅ | — |
user | GameUser | ✅ | — |
updateBalance | (balance: number) => void | ✅ | — |
onAuthRequired | () => void | ✅ | — |
currency | GameCurrency | — | { code: 'USD', prefix: '$', rate: 1 } |
language | string | — | 'en' |
logo | ReactNode | — | — |
onToast | (toast: ToastData) => void | — | — |
theme | GameTheme | — | — |
Last updated on