Valid Bet
Server Seed & Hash: [MATCH]
Winning Hash:
Winning Hash (integer):
Game Winning Numbers:
Verify Bet
Below you can authenticate the outcomes of any bet placed on our site. Please provide the information for the specific bet you wish to verify.
How we get the winning numbers
function getWinningNumbers( string $clientSeed, int $nonce, string $serverSeed, int $min, int $max, int $count, bool $unique = false, bool $pad = false ): array { $rangeSize = $max - $min + 1; // Fast path: non-unique draws in small range → single HMAC + byte-based rejection sampling if (!$unique && $rangeSize <= 200) { $results = []; $ctr = 0; // generate initial raw HMAC buffer $buffer = hash_hmac('sha512', "{$clientSeed}-{$nonce}", $serverSeed, true); $bufLen = strlen($buffer); $pos = 0; // rejection threshold to avoid modulo bias $threshold = (int)floor(256 / $rangeSize) * $rangeSize; while (count($results) < $count) { // refill buffer if exhausted if ($pos >= $bufLen) { $ctr++; $buffer = hash_hmac('sha512', "{$clientSeed}-{$nonce}:{$ctr}", $serverSeed, true); $bufLen = strlen($buffer); $pos = 0; } $b = ord($buffer[$pos++]); // reject values outside threshold for uniformity if ($b >= $threshold) { continue; } $val = $b % $rangeSize; $num = $min + $val; $results[] = $pad ? sprintf('%02d', $num) : $num; } return $results; } // Secure bit-extraction path for unique draws or larger ranges // 1) initial HMAC buffer (binary) $buffer = hash_hmac('sha512', "{$clientSeed}-{$nonce}", $serverSeed, true); $bytePos = 0; $bitPos = 0; $bufLen = strlen($buffer); $reseedCt = 0; // reseed helper: append 512-bit blocks $ensureBits = function(int $needed) use (&$buffer, &$bufLen, &$bytePos, &$bitPos, $clientSeed, $nonce, $serverSeed, &$reseedCt) { while ((($bufLen - $bytePos) * 8 - $bitPos) < $needed) { $extra = hash_hmac('sha512', "{$clientSeed}-{$nonce}:{$reseedCt}", $serverSeed, true); $buffer .= $extra; $bufLen = strlen($buffer); $reseedCt++; } }; // get n bits, return int $getBits = function(int $n) use (&$buffer, &$bytePos, &$bitPos, $ensureBits) { $result = 0; $taken = 0; while ($taken < $n) { $ensureBits($n - $taken); $current = ord($buffer[$bytePos]); $avail = 8 - $bitPos; $toTake = min($avail, $n - $taken); $shift = $avail - $toTake; $mask = (1 << $toTake) - 1; $result = ($result << $toTake) | (($current >> $shift) & $mask); $bitPos += $toTake; $taken += $toTake; if ($bitPos === 8) { $bitPos = 0; $bytePos++; } } return $result; }; // precompute bit lengths if ($unique) { $bitLens = array_map( fn($i) => (int)ceil(log($rangeSize - $i, 2)), range(0, $count - 1) ); } else { $commonLen = (int)ceil(log($rangeSize, 2)); } $results = []; if ($unique) { // unique draws via partial Fisher-Yates $pool = range($min, $max); for ($i = 0; $i < $count; $i++) { $needed = $bitLens[$i]; $limit = $rangeSize - $i; do { $val = $getBits($needed); } while ($val >= $limit); $num = $pool[$val]; $results[] = $pad ? sprintf('%02d', $num) : $num; $last = $limit - 1; [$pool[$val], $pool[$last]] = [$pool[$last], $pool[$val]]; } } else { // replacement draws via bit extraction for ($i = 0; $i < $count; $i++) { do { $val = $getBits($commonLen); } while ($val >= $rangeSize); $num = $min + $val; $results[] = $pad ? sprintf('%02d', $num) : $num; } } return $results; } You can get the winning numbers for each game by using the following: Quick Pick: $winning_array=getDraws($cseed, $nonce, $sseed, 0, 49, 4, false, true); Line Bingo: $winning_array=getDraws($cseed, $nonce, $sseed, 0, 9, 6, false, false); High-Low: $winning_array=getDraws($cseed, $nonce, $sseed, 0, 99, 5, false, true); Lucky 7s: $winning_array=getDraws($cseed, $nonce, $sseed, 0, 9, 15, false, false); Pick Six: $winning_array=getDraws($cseed, $nonce, $sseed, 0, 9, 6, false, false); Mini Keno: $winning_array=getDraws($cseed, $nonce, $sseed, 0, 39, 10, true, true);
Verify Bet
Valid Bet
Server Seed & Hash: [MATCH]
Winning Hash:
Winning Hash (integer):
Game Winning Numbers:
Verify Bet