🍪

We use cookies for functional, analytical and personalisation purposes.

Read moreAccept

Dice

Blackjack

Plinko

Crash

Mines

Beef

Keno

Castle Roulette

Video Poker

Groomer's Van

Rock Paper Scissors

Limbo

Live Blackjack

Casino
Sports
High Scores
1,063 Online
$2m monthly and $25k daily leaderboards now live for slots and live games.
$2m monthly and $25k daily leaderboards now live for slots and live games.
WUTANG :
@Joshing
alr stop arguing w everyone
ChristianWins :
I had a 600x on 10 numbers high keno but on 0.18 betsize was soo pissed cause I was chasing for ages on higher betsize then I upped it to 0.7 and hit on literally the second spin
Lord4inch :
Lmao you stupid Indian
GEORGIANBISAKOL :
yeah your fcking job is begging in here
@Joshing
GEORGIANBISAKOL :
that said alot
WUTANG :
just ignore each other
ChristianWins :
So it was a 600x and 500x within like 3 spins
sirmypenisisblack :
ayo
sirmypenisisblack :
chill daddy
@sirmypenisisblack: chill daddy
GEORGIANBISAKOL :
sry nga
GEORGIANBISAKOL :
fck pari btw
Crimsonpulse2 :
hi friends im back
sirmypenisisblack :
yeah but im sad for that satanic guy bro
GEORGIANBISAKOL :
gg bro
@sirmypenisisblack: yeah but im sad for that satanic guy bro
Clash :
nahh bro
sirmypenisisblack :
also wouldve first ti for the bald guy
sirmypenisisblack :
but
sirmypenisisblack :
happens
Clash :
noone sold last game
@sirmypenisisblack: also wouldve first ti for the bald guy
Chucki :
baldermort
@Clash: noone sold last game
sirmypenisisblack :
yeah
sirmypenisisblack :
ik
Lord4inch :
@ChristianWins
bro I was tryna get out of the rinse and was betting 0 hit like 8 or 9 high I was like of course it would
Crimsonpulse2 :
how we doing
sirmypenisisblack :
i mean im sad for satanic they shouldve win that game
@Crimsonpulse2: how we doing
Chucki :
surviving the rinse bro, u?
jonjonrr66 :
i
Clash :
he tornadoed when satanic pressed omni and he was just cutting shit in the air
@Clash: he tornadoed when satanic pressed omni and he was just cutting shit in the air
Chucki :
dota 2 match bro
ben17175 :
hey
sirmypenisisblack :
nah bro
@Lord4inch: @ChristianWins bro I was tryna get out of the rinse and was betting 0 hit like 8 or 9 high I was like of course it would
ChristianWins :
Yeah it’s so bipolar lmfao
@Chucki: dota 2 match bro
Clash :
yes
sirmypenisisblack :
bane save the night for spirit bro
@Clash: yes
Chucki :
that was a rough throw ngl
@sirmypenisisblack: bane save the night for spirit bro
Clash :
yea that sleep was crucial
Lord4inch :
@ChristianWins
started doing actual bets like 2.50 pfffffft gone
@Chucki: surviving the rinse bro, u?
Crimsonpulse2 :
still down i guess i have no money to gamble lol
sirmypenisisblack :
fr
@Crimsonpulse2: still down i guess i have no money to gamble lol
Chucki :
real, my 5.25 is long gone too lmao
sirmypenisisblack :
900 hp LS + omnislash from jugg
sirmypenisisblack :
but bane sleep LS
sirmypenisisblack :
so yeah
Clash :
yup
Nicot1ne :
gm
@Nicot1ne: gm
Crimsonpulse2 :
gm
@Nicot1ne: gm
sirmypenisisblack :
WOW SAR
sirmypenisisblack :
gm
@Nicot1ne: gm
Clash :
gn
bakaprase :
hello nic
Crimsonpulse2 :
nicotine
sirmypenisisblack :
nik makino? neneng b?
@Nicot1ne: gm
Iduot :
gm
orion :
sar
Lord4inch :
I like to bet 5 on high keno because 4 you get 40 5 you get like 100
@orion: sar
JohnyDiceking :
Yo sae
@Lord4inch: I like to bet 5 on high keno because 4 you get 40 5 you get like 100
Crimsonpulse2 :
nice and did it succeed?
@Lord4inch: @ChristianWins started doing actual bets like 2.50 pfffffft gone
ChristianWins :
Yeah it’s over when I start increasing the bet it either hits or i end up losing it all
ChristianWins :
Morning nico
@ChristianWins: Yeah it’s over when I start increasing the bet it either hits or i end up losing it all
Chucki :
relatable ngl, bankroll is already gone anyway
Lord4inch :
@Crimsonpulse2
plenty of times 64x one time
navicalz :
k
Lord4inch :
@ChristianWins
about to play some and see how it's hitting
@Lord4inch: @ChristianWins about to play some and see how it's hitting
Chucki :
gl bro, hope keno treats u better than my $5 lmao
sirmypenisisblack :
spirit won TI and EWC at the same day
sirmypenisisblack :
lmfao
@Lord4inch: @ChristianWins about to play some and see how it's hitting
ChristianWins :
Alrignt good luck you chasing on 9 and 10?
@Lord4inch: @Crimsonpulse2 plenty of times 64x one time
Crimsonpulse2 :
wwww
ben17175 :
@Nicot1ne
hey
Nicot1ne :
hey
ben17175 :
hows it hanging big guy
Lord4inch :
@Chucki
I don't usually do 5 unless I have like 40 plus in the bank if I have less I do like 1.20 lol
@ben17175: hows it hanging big guy
Chucki :
not much, just watching others suffer lmao. u?
@Nicot1ne: hey
Crimsonpulse2 :
what r you up to
@Crimsonpulse2: what r you up to
Chucki :
just watching chat, broke as usual lmao
@Chucki: not much, just watching others suffer lmao. u?
ben17175 :
im good
@ben17175: im good
Chucki :
good to hear man, at least someone is doing alright here lol
Lord4inch :
@ChristianWins
shit keno been rinsing me lately. It was 80 dollars this morning
@Lord4inch: @ChristianWins shit keno been rinsing me lately. It was 80 dollars this morning
Chucki :
oof. keno is brutal man, ate my whole fiver too
@Chucki: good to hear man, at least someone is doing alright here lol
ben17175 :
im not doing alright here
ben17175 :
down 600 usd
@ben17175: im not doing alright here
Chucki :
damn bro, same here. chat taking everything today fr
lilbiggienig :
followed
@Matix
@Lord4inch: @ChristianWins shit keno been rinsing me lately. It was 80 dollars this morning
ChristianWins :
I made like 93 earlier and ended up ripping like 30 of it from 5$ so it might be paying
@ChristianWins: I made like 93 earlier and ended up ripping like 30 of it from 5$ so it might be paying
Chucki :
nice, turning a fiver into that is solid.
Mod Nicot1ne muted user Matix for 6 hours. Reason: "Advertising"
lou123 :
yo
navicalz :
boys i have 300 eur to my name, i just ran down 900 on bj. wish me nothing but 21s
@Chucki: nice, turning a fiver into that is solid.
ChristianWins :
hello up down left around
@lou123: yo
ChristianWins :
Wassup
@ChristianWins: hello up down left around
Chucki :
konami code vibes round here today lol
@lou123: yo
JohnyDiceking :
Hy
@navicalz: boys i have 300 eur to my name, i just ran down 900 on bj. wish me nothing but 21s
Crimsonpulse2 :
iwish you all the luck
ChristianWins :
@Nicot1ne
is chucki a bot?
lilbiggienig :
rip matix
@ChristianWins: @Nicot1ne is chucki a bot?
Nicot1ne :
dude idek
@Chucki: konami code vibes round here today lol
ChristianWins :
Are u a bot or a person bro how u respond so quick like this
Nicot1ne :
he replies too fast
@ChristianWins: Are u a bot or a person bro how u respond so quick like this
Chucki :
nah just sitting here watching chat go down tbh
ChristianWins :
Lmfaooo
1,063 Online

Provably Fair

OverviewVerify

Calculation

Enter the required details below to independently verify the fairness of your game round.

Enter the details to verify your results.
Code
// Code written in javascript

// User input values
const clientSeed = '';
const serverSeed = '';
const nonce = 0;

// Suits: D -> Diamonds, H -> Hearts, S -> Spades, C -> Clubs

// Index of 0 to 51: 2D to AC
const CARDS = [
  '2D', '2H', '2S', '2C', '3D', '3H', '3S', '3C', '4D', '4H',
  '4S', '4C', '5D', '5H', '5S', '5C', '6D', '6H', '6S', '6C',
  '7D', '7H', '7S', '7C', '8D', '8H', '8S', '8C', '9D', '9H',
  '9S', '9C', '10D', '10H', '10S', '10C', 'JD', 'JH', 'JS',
  'JC', 'QD', 'QH', 'QS', 'QC', 'KD', 'KH', 'KS', 'KC', 'AD',
  'AH', 'AS', 'AC',
];

// Converts a hex string (e.g. "deadbeef") into a Uint8Array of bytes
function hexToBytes(hex) {
  const bytes = new Uint8Array(hex.length / 2);
  for (let i = 0; i < bytes.length; i++) {
    bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
  }
  return bytes;
}

// Converts a Uint8Array of bytes back into a hex string (e.g. [222, 173, 190, 239] → "deadbeef")
function bytesToHex(bytes) {
  return Array.from(bytes)
    .map((b) => b.toString(16).padStart(2, '0'))
    .join('');
}

// Computes a HMAC-SHA256 using the Web Crypto API
// keyHex: hex-encoded key (e.g. server seed)
// message: Uint8Array to be signed
async function generateHMAC_SHA256(keyHex, message) {
  const keyBytes = hexToBytes(keyHex);

  // Import raw key for HMAC use
  const cryptoKey = await crypto.subtle.importKey(
    'raw',
    keyBytes,
    { name: 'HMAC', hash: 'SHA-256' },
    false,
    ['sign'],
  );

  // Generate HMAC signature
  const signature = await crypto.subtle.sign('HMAC', cryptoKey, message);
  return bytesToHex(new Uint8Array(signature)); // Return signature as hex
}

// Generates a single Blackjack card from a SHA-256 hash (hex string)
// Uses rejection sampling to ensure fair distribution across 52 possible cards
function generateBlackjackCard(hashHex) {
  const hashBytes = hexToBytes(hashHex);

  for (let i = 0; i <= hashBytes.length - 4; i += 4) {
    const view = new DataView(
      hashBytes.buffer,
      hashBytes.byteOffset + i,
      4,
    );
    const value = view.getUint32(0); // Read 4 bytes as big-endian unsigned integer
    const max = 52 * Math.floor(0x100000000 / 52); // Bias-free range
    if (value < max) {
      const index = value % 52; // Fair card index
      return CARDS[index];
    }
  }

  throw new Error('Failed to generate unbiased card value from hash');
}

// Combines all steps to return a Blackjack card result
// Inputs: serverSeed, clientSeed, nonce, cursor
async function getCard(serverSeed, clientSeed, nonce, cursor) {
  // Prepare input message for HMAC: public seed + nonce + cursor
  const message = new TextEncoder().encode(
    `${clientSeed}:${nonce}:${cursor}`
  );

  // Compute HMAC hash
  const hash = await generateHMAC_SHA256(serverSeed, message);

  // Generate and return card using the hash
  const card = generateBlackjackCard(hash);
  return card;
}

async function validateBlackjackResult(serverSeed, clientSeed, nonce) {
  const cards = [];

  for (let cursor = 0; cursor < 50; cursor++) {
    cards.push(await getCard(serverSeed, clientSeed, nonce, cursor));
  }

  return cards;
}

// Run the validateBlackjackResult function if input values are provided
if (serverSeed && serverSeed.trim() !== '' && clientSeed && clientSeed.trim() !== '' && nonce >= 0) {
  validateBlackjackResult(serverSeed, clientSeed, nonce).then(result => {
    console.log("Suits: D -> Diamonds, H -> Hearts, S -> Spades, C -> Clubs");
    console.log("Next 50 cards in the deck:", result);
  });
} else {
  console.log("Please provide valid serverSeed, clientSeed, and nonce (>=0) before running.");
}
            
Enter the details to verify your results.
Code
// Code written in javascript

// User input values
const clientSeed = '';
const serverSeed = '';
const nonce = 0;

// Suits: D -> Diamonds, H -> Hearts, S -> Spades, C -> Clubs

// Index of 0 to 51: 2D to AC
const CARDS = [
  '2D', '2H', '2S', '2C', '3D', '3H', '3S', '3C', '4D', '4H',
  '4S', '4C', '5D', '5H', '5S', '5C', '6D', '6H', '6S', '6C',
  '7D', '7H', '7S', '7C', '8D', '8H', '8S', '8C', '9D', '9H',
  '9S', '9C', '10D', '10H', '10S', '10C', 'JD', 'JH', 'JS',
  'JC', 'QD', 'QH', 'QS', 'QC', 'KD', 'KH', 'KS', 'KC', 'AD',
  'AH', 'AS', 'AC',
];

// Converts a hex string (e.g. "deadbeef") into a Uint8Array of bytes
function hexToBytes(hex) {
  const bytes = new Uint8Array(hex.length / 2);
  for (let i = 0; i < bytes.length; i++) {
    bytes[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
  }
  return bytes;
}

// Converts a Uint8Array of bytes back into a hex string (e.g. [222, 173, 190, 239] → "deadbeef")
function bytesToHex(bytes) {
  return Array.from(bytes)
    .map((b) => b.toString(16).padStart(2, '0'))
    .join('');
}

// Computes a HMAC-SHA256 using the Web Crypto API
// keyHex: hex-encoded key (e.g. server seed)
// message: Uint8Array to be signed
async function generateHMAC_SHA256(keyHex, message) {
  const keyBytes = hexToBytes(keyHex);

  // Import raw key for HMAC use
  const cryptoKey = await crypto.subtle.importKey(
    'raw',
    keyBytes,
    { name: 'HMAC', hash: 'SHA-256' },
    false,
    ['sign'],
  );

  // Generate HMAC signature
  const signature = await crypto.subtle.sign('HMAC', cryptoKey, message);
  return bytesToHex(new Uint8Array(signature)); // Return signature as hex
}

// Generates a single Blackjack card from a SHA-256 hash (hex string)
// Uses rejection sampling to ensure fair distribution across 52 possible cards
function generateBlackjackCard(hashHex) {
  const hashBytes = hexToBytes(hashHex);

  for (let i = 0; i <= hashBytes.length - 4; i += 4) {
    const view = new DataView(
      hashBytes.buffer,
      hashBytes.byteOffset + i,
      4,
    );
    const value = view.getUint32(0); // Read 4 bytes as big-endian unsigned integer
    const max = 52 * Math.floor(0x100000000 / 52); // Bias-free range
    if (value < max) {
      const index = value % 52; // Fair card index
      return CARDS[index];
    }
  }

  throw new Error('Failed to generate unbiased card value from hash');
}

// Combines all steps to return a Blackjack card result
// Inputs: serverSeed, clientSeed, nonce, cursor
async function getCard(serverSeed, clientSeed, nonce, cursor) {
  // Prepare input message for HMAC: public seed + nonce + cursor
  const message = new TextEncoder().encode(
    `${clientSeed}:${nonce}:${cursor}`
  );

  // Compute HMAC hash
  const hash = await generateHMAC_SHA256(serverSeed, message);

  // Generate and return card using the hash
  const card = generateBlackjackCard(hash);
  return card;
}

async function validateBlackjackResult(serverSeed, clientSeed, nonce) {
  const cards = [];

  for (let cursor = 0; cursor < 50; cursor++) {
    cards.push(await getCard(serverSeed, clientSeed, nonce, cursor));
  }

  return cards;
}

// Run the validateBlackjackResult function if input values are provided
if (serverSeed && serverSeed.trim() !== '' && clientSeed && clientSeed.trim() !== '' && nonce >= 0) {
  validateBlackjackResult(serverSeed, clientSeed, nonce).then(result => {
    console.log("Suits: D -> Diamonds, H -> Hearts, S -> Spades, C -> Clubs");
    console.log("Next 50 cards in the deck:", result);
  });
} else {
  console.log("Please provide valid serverSeed, clientSeed, and nonce (>=0) before running.");
}
            
About
  • wtf Duel?
  • High Scores
  • Referral FAQ
  • Provably Fair
  • Why Bonuses Suck
  • Fake Bets
  • Zero Edge
  • Careers
Legal
  • Terms of Service
  • Privacy Policy
  • Sports Betting Rules
  • Responsible Gaming
Community
Duel.com is owned and operated by Immortal Snail LLC, registration number: L22982, registered address: Arthur Evelyn Building, Suite 5, Main Street, Charlestown, Nevis, West lndies. Contact us at hey@duel.com. Duel.com is licensed and regulated by the Government of the Autonomous Island of Anjouan, Union of Comoros and operates under License No. ALSI-202411026-FI1. Duel.com has passed all regulatory compliance and is legally authorized to conduct gaming operations for any and all games of chance and wagering.Duel is dedicated to encouraging responsible gambling. To learn more, please visit: https://www.gambleaware.org
Copyright © 2026 duel.com. All rights reserved.
1,063 Online
$2m monthly and $25k daily leaderboards now live for slots and live games.
$2m monthly and $25k daily leaderboards now live for slots and live games.
WUTANG :
@Joshing
alr stop arguing w everyone
ChristianWins :
I had a 600x on 10 numbers high keno but on 0.18 betsize was soo pissed cause I was chasing for ages on higher betsize then I upped it to 0.7 and hit on literally the second spin
Lord4inch :
Lmao you stupid Indian
GEORGIANBISAKOL :
yeah your fcking job is begging in here
@Joshing
GEORGIANBISAKOL :
that said alot
WUTANG :
just ignore each other
ChristianWins :
So it was a 600x and 500x within like 3 spins
sirmypenisisblack :
ayo
sirmypenisisblack :
chill daddy
@sirmypenisisblack: chill daddy
GEORGIANBISAKOL :
sry nga
GEORGIANBISAKOL :
fck pari btw
Crimsonpulse2 :
hi friends im back
sirmypenisisblack :
yeah but im sad for that satanic guy bro
GEORGIANBISAKOL :
gg bro
@sirmypenisisblack: yeah but im sad for that satanic guy bro
Clash :
nahh bro
sirmypenisisblack :
also wouldve first ti for the bald guy
sirmypenisisblack :
but
sirmypenisisblack :
happens
Clash :
noone sold last game
@sirmypenisisblack: also wouldve first ti for the bald guy
Chucki :
baldermort
@Clash: noone sold last game
sirmypenisisblack :
yeah
sirmypenisisblack :
ik
Lord4inch :
@ChristianWins
bro I was tryna get out of the rinse and was betting 0 hit like 8 or 9 high I was like of course it would
Crimsonpulse2 :
how we doing
sirmypenisisblack :
i mean im sad for satanic they shouldve win that game
@Crimsonpulse2: how we doing
Chucki :
surviving the rinse bro, u?
jonjonrr66 :
i
Clash :
he tornadoed when satanic pressed omni and he was just cutting shit in the air
@Clash: he tornadoed when satanic pressed omni and he was just cutting shit in the air
Chucki :
dota 2 match bro
ben17175 :
hey
sirmypenisisblack :
nah bro
@Lord4inch: @ChristianWins bro I was tryna get out of the rinse and was betting 0 hit like 8 or 9 high I was like of course it would
ChristianWins :
Yeah it’s so bipolar lmfao
@Chucki: dota 2 match bro
Clash :
yes
sirmypenisisblack :
bane save the night for spirit bro
@Clash: yes
Chucki :
that was a rough throw ngl
@sirmypenisisblack: bane save the night for spirit bro
Clash :
yea that sleep was crucial
Lord4inch :
@ChristianWins
started doing actual bets like 2.50 pfffffft gone
@Chucki: surviving the rinse bro, u?
Crimsonpulse2 :
still down i guess i have no money to gamble lol
sirmypenisisblack :
fr
@Crimsonpulse2: still down i guess i have no money to gamble lol
Chucki :
real, my 5.25 is long gone too lmao
sirmypenisisblack :
900 hp LS + omnislash from jugg
sirmypenisisblack :
but bane sleep LS
sirmypenisisblack :
so yeah
Clash :
yup
Nicot1ne :
gm
@Nicot1ne: gm
Crimsonpulse2 :
gm
@Nicot1ne: gm
sirmypenisisblack :
WOW SAR
sirmypenisisblack :
gm
@Nicot1ne: gm
Clash :
gn
bakaprase :
hello nic
Crimsonpulse2 :
nicotine
sirmypenisisblack :
nik makino? neneng b?
@Nicot1ne: gm
Iduot :
gm
orion :
sar
Lord4inch :
I like to bet 5 on high keno because 4 you get 40 5 you get like 100
@orion: sar
JohnyDiceking :
Yo sae
@Lord4inch: I like to bet 5 on high keno because 4 you get 40 5 you get like 100
Crimsonpulse2 :
nice and did it succeed?
@Lord4inch: @ChristianWins started doing actual bets like 2.50 pfffffft gone
ChristianWins :
Yeah it’s over when I start increasing the bet it either hits or i end up losing it all
ChristianWins :
Morning nico
@ChristianWins: Yeah it’s over when I start increasing the bet it either hits or i end up losing it all
Chucki :
relatable ngl, bankroll is already gone anyway
Lord4inch :
@Crimsonpulse2
plenty of times 64x one time
navicalz :
k
Lord4inch :
@ChristianWins
about to play some and see how it's hitting
@Lord4inch: @ChristianWins about to play some and see how it's hitting
Chucki :
gl bro, hope keno treats u better than my $5 lmao
sirmypenisisblack :
spirit won TI and EWC at the same day
sirmypenisisblack :
lmfao
@Lord4inch: @ChristianWins about to play some and see how it's hitting
ChristianWins :
Alrignt good luck you chasing on 9 and 10?
@Lord4inch: @Crimsonpulse2 plenty of times 64x one time
Crimsonpulse2 :
wwww
ben17175 :
@Nicot1ne
hey
Nicot1ne :
hey
ben17175 :
hows it hanging big guy
Lord4inch :
@Chucki
I don't usually do 5 unless I have like 40 plus in the bank if I have less I do like 1.20 lol
@ben17175: hows it hanging big guy
Chucki :
not much, just watching others suffer lmao. u?
@Nicot1ne: hey
Crimsonpulse2 :
what r you up to
@Crimsonpulse2: what r you up to
Chucki :
just watching chat, broke as usual lmao
@Chucki: not much, just watching others suffer lmao. u?
ben17175 :
im good
@ben17175: im good
Chucki :
good to hear man, at least someone is doing alright here lol
Lord4inch :
@ChristianWins
shit keno been rinsing me lately. It was 80 dollars this morning
@Lord4inch: @ChristianWins shit keno been rinsing me lately. It was 80 dollars this morning
Chucki :
oof. keno is brutal man, ate my whole fiver too
@Chucki: good to hear man, at least someone is doing alright here lol
ben17175 :
im not doing alright here
ben17175 :
down 600 usd
@ben17175: im not doing alright here
Chucki :
damn bro, same here. chat taking everything today fr
lilbiggienig :
followed
@Matix
@Lord4inch: @ChristianWins shit keno been rinsing me lately. It was 80 dollars this morning
ChristianWins :
I made like 93 earlier and ended up ripping like 30 of it from 5$ so it might be paying
@ChristianWins: I made like 93 earlier and ended up ripping like 30 of it from 5$ so it might be paying
Chucki :
nice, turning a fiver into that is solid.
Mod Nicot1ne muted user Matix for 6 hours. Reason: "Advertising"
lou123 :
yo
navicalz :
boys i have 300 eur to my name, i just ran down 900 on bj. wish me nothing but 21s
@Chucki: nice, turning a fiver into that is solid.
ChristianWins :
hello up down left around
@lou123: yo
ChristianWins :
Wassup
@ChristianWins: hello up down left around
Chucki :
konami code vibes round here today lol
@lou123: yo
JohnyDiceking :
Hy
@navicalz: boys i have 300 eur to my name, i just ran down 900 on bj. wish me nothing but 21s
Crimsonpulse2 :
iwish you all the luck
ChristianWins :
@Nicot1ne
is chucki a bot?
lilbiggienig :
rip matix
@ChristianWins: @Nicot1ne is chucki a bot?
Nicot1ne :
dude idek
@Chucki: konami code vibes round here today lol
ChristianWins :
Are u a bot or a person bro how u respond so quick like this
Nicot1ne :
he replies too fast
@ChristianWins: Are u a bot or a person bro how u respond so quick like this
Chucki :
nah just sitting here watching chat go down tbh
ChristianWins :
Lmfaooo
1,063 Online

Duel

Casino

Sports

Chat

IconSolana
IconMinesBomb
IconMinesDiamondBlue
IconMinesDiamondGreen
IconMinesExplosion
IconKenoGem

Forgot password?

or continue with

Duel is not available in your current location due to licensing limitations.

or continue with