Provably fair
Честная игра
Исход каждой игры задан заранее и зафиксирован хэшем. Любой кейс, апгрейд или контракт можно пересчитать самому — здесь или в любом HMAC-калькуляторе.
- 1Хэш сида заранее
До игры вы видите SHA-256 от server seed. Сам сид скрыт, но подменить его нельзя — хэш перестанет совпадать.
- 2Ваш client seed и nonce
Client seed задаёте вы. Каждая игра берёт следующий nonce — 0, 1, 2… — поэтому числа не повторяются.
- 3Раскрытие после смены
Смените сид в профиле: старый server seed раскроется, и любую игру на нём можно пересчитать ниже.
Как считается
Формула
float = HMAC_SHA256(key = serverSeed, message = clientSeed + ":" + nonce + ":" + cursor) float = (uint32(байты 0–3) × 2^20 + (uint32(байты 4–7) >>> 12)) / 2^52
Одна игра — один nonce. Если игре нужно несколько чисел (×5 кейсов, контракт), они берутся с cursor 0, 1, 2…
КейсыОткрытие ×N — одна игра, i-й кейс берёт cursor i. Предметы кейса сортируются по цене от дорогих к дешёвым (при равной цене — по id), веса нормируются к сумме 1. Выпадает первый предмет, у которого накопленный вес больше float.
АпгрейдШанс = min(75, ставка / цена цели × 0,9 × 100), округлён до сотых; ставка — сумма монет или цена предмета на момент его получения. roll = float(cursor 0) × 100. Победа, если roll меньше шанса.
КонтрактИз float 0 и 1 по Box–Muller: g = √(−2·ln f₀) · cos(2π·f₁). Ценность приза = ставка × 0,78 × e^(0,55·g), но не меньше 0,3 и не больше 3 ставок. Кандидаты — активные предметы каталога с ценой от 0,3 до 3 ставок (если таких нет — весь каталог); выдаётся ближайший по цене к ценности приза. Если ближайших несколько, они сортируются по цене, затем по id, и берётся кандидат с номером ⌊float 2 × n⌋ (счёт с 0, n — число кандидатов).
Проверка
Пересчитать игру
Введите сиды и nonce или откройте игру по ссылке из истории — поля заполнятся сами. Всё считается в браузере.