
Our platform uses an EOS blockchain-based algorithm to determine the outcome of battles. This process is fully external, decentralized, and beyond our control, driven solely by the actions of miners and validators. Influencing game outcomes would require dominating the entire EOS blockchain network, which is not feasible.
After the battle is created, the platform generates server seed only. Once all players or bots are joined, the platform checks the latest EOS Block Number that has already been mined, then gets the number or future block that hasn't been mined and waits until the EOS Block ID is generated.
After the platform knows the EOS Block ID, the client seed can be created, and the battle game starts.
The battle starts spinning all rounds, 1 by 1. (Round count equals to boxes count).
(EOS Block ID can be found by number by the link https://bloks.io/block/359689419)
Sometimes happens when 2 or more users/groups have the same total value of dropped items. In that case the platform determines the winner by additional spin using Draw Seed for generating result. For each group in draw spin the platform assign tickets, than generate the extra ticket for choosing a winner(s).
Example: In the battle for 4 users, 2 of them have the same highest total value of dropped items. For the user #1 we assign tickets (1 - 50,000,000), for the user #2 (50,000,001 - 100,000,000). Draw spin outcome is 23,188,100. The User #1 has this ticket, and become a winner of the battle.
You can check our algorithm with our tool at the end of the page or run the JavaScript code manually. An item's ticket number can be found on the box page.
const serverSeed = "0bcfbdd1bdb8b5a3cc36f29dedc03fdf705a18b3610e46f094fe3337475de0ea"; (Random string for creating battle)
const clientSeed = "5e62aa1e3792036cf6bcc5f59f1c9f6a18d0438410077db13b531b4604dfad6c"; (EOS block id)
const nonce = 1; (unique play number)
random(serverSeed, clientSeed, nonce).then((x) => console.log("Result", x));
async function sha512(str) {
return crypto.subtle.digest("SHA-512", new TextEncoder("utf-8").encode(str)).then((buf) => {
return Array.prototype.map
.call(new Uint8Array(buf), (x) => ("00" + x.toString(16)).slice(-2))
.join("");
});
}
async function random(...parts) {
const combinedHash = await sha512(parts.join(":"));
const hashInt = BigInt("0x" + combinedHash);
const maxInt = BigInt(100000000);
return Number((hashInt % maxInt) + BigInt(1));
}