Keno Single is a fast-paced, fun game that allows you to choose:
• How many numbers to play with
• How many coins to wager
• Where to play and check your winning numbers -Keno Single is played by choosing up to 10 numbers from a total set of numbers from 1 to 40.

How to Play Keno Single?
More the number combinations selected, higher the potential payout.
The more selections hit successfully, the higher will be the payout multiplier.
Maximum possible selection and maximum possible successful hits is 10.

Auto Mode Operation Instructions
[ON WIN] when you win, the next bet amount will 'Increase by (your set)’ or 'Reset to initial amount'.
[ON LOSE] when you lose, the next bet amount will 'Increase by (your set)' or 'Reset to initial amount'.
[STOP ON WIN] Once the amount won (from start to this bet) is bigger/equal than (your set), auto will stop;
[STOP ON LOSS] Once the amount lost (from start to next bet) may be bigger/equal than (your set), auto will stop.
Press the '**Clear Table**' button to unpick them or change the selection.

What is the house edge?
Keno Single has only 1% House Edge


How are results calculated?

Starting with a secret I've generated a chain of 10,000,000 SHA256 hashes.
Each element is the hash of the lowercase, hexadecimal string representation of the previous hash. The hash of the chain's last element is 54fe30623823224ef8379e00f3d88a02ed3333937862ee0383b9cbb3d1e43763
Every game maps to a hash in the chain: The 10,000,000th element of the chain is the hash of game #1 and the first element in the chain is the hash of game #10,000,000.
To verify that a hash belongs to a game #n, simply hash it n times and compare the result with the terminating hash.

To calculate a game's result from its hash:

const crypto = require("crypto");
function seedGenerator(hash, salt) {
const hmac = CryptoJS.HmacSHA256(CryptoJS.enc.Hex.parse(hash), salt);
return hmac.toString(CryptoJS.enc.Hex);
function createNums(allNums, hash) {
const nums = [];
let h = CryptoJS.SHA256(hash).toString(CryptoJS.enc.Hex);
allNums.forEach((c) => {
nums.push({ num: c, hash: h });
h = h.substring(1) + h.charAt(0);
nums.sort(function (o1, o2) {
if (o1.hash < o2.hash) {
return -1;
} else if (o1.hash === o2.hash) {
return 0;
} else {
return 1;
return nums;
function keno(hash) {
const allNums = [
1, 30, 11, 40, 2, 29, 12, 39, 3,
28, 13, 38, 4, 27, 14, 37, 5, 26,
15, 36, 6, 25, 16, 35, 7, 24, 17,
34, 8, 23, 18, 33, 9, 22, 19, 32,
10, 21, 20, 31
let seed = hash;
let finalNums = createNums(allNums, seed);
seed = String(CryptoJS.SHA256(seed));
finalNums = createNums(finalNums, seed);
return finalNums.slice(0, 10).map((m) => m.num);
let hash = "game hash";
console.log( "result =>", keno(hash).map((item) => item.num).join(","));
This is our multiplayer keno seed event in bitcointalk

So our salt will be
Was this article helpful?
Thank you!