SpyDota использует алгоритм Provably Fair, чтобы любой игрок мог проверить честность игры. Результат кейса или апгрейда определяется заранее зафиксированным серверным сидом, вашим client seed и номером игры, поэтому подтасовать его после начала игры нельзя.

Серверный сид — секретное значение, из которого считается результат игры. Чтобы пересчитать игру, сид нужно раскрыть: карточка игры сделает это за вас.
Нажмите на свой аватар в шапке, откройте вкладку «История» и выберите «Кейсы» или «Апгрейды».
Кнопка стоит в конце строки игры (на телефоне прокрутите таблицу вправо). В открывшейся карточке нажмите «Проверить» ещё раз.
Чтобы проверить игру, серверный сид нужно раскрыть. Мы создадим новую пару сидов: текущий сид раскроется и сразу подставится в проверку, а номера игр начнутся заново.
Если сид ещё секретный, карточка предложит «Сменить сиды и проверить». Старый сид раскроется — после этого можно проверить все игры, сыгранные с ним. Новые игры начнут счёт с 1, сыгранные не изменятся. Если сид уже раскрыт, шага не будет.
Браузер пересчитал игру по раскрытому сиду, результат совпал с записью сервера.
Откроется страница проверки. «Сходится» значит, что ваш браузер пересчитал игру и получил то же, что записал сервер. Предмет с меткой «выпал» сравните со строкой в истории, у апгрейда — «Победа» или «Поражение».
Кнопки «Проверить» нет у игр, сыгранных до запуска честной игры, у подарков и выдач. Если предмет заменили, проверка относится к исходному выпадению. Видите «Не сходится» — сохраните серверный сид и напишите в поддержку.
До игры вы видите хеш серверного сида. Поэтому сервер уже не может незаметно подменить исходные данные.
Ваш сид и номер игры участвуют в расчёте, поэтому результат не формирует один сервер.
Подставьте данные игры. Расчёт идёт в вашем браузере, на сервер ничего не отправляется.
Подставьте данные игры и нажмите «Проверить» — здесь появится выпавшее число и предмет.
Серверный сид + Ваш сид + Номер игры = Честный результат
Сервер выбирает случайный серверный сид и показывает только его хеш SHA-256. Подменить сид после этого нельзя: хеш перестанет совпадать.
Для каждой игры считается HMAC-SHA256. Ключ — серверный сид в виде 64-символьной hex-строки как есть, без перевода в байты. Сообщение собирается из вида игры, игры, вашего client seed и номера игры.
Первые 8 hex-символов хеша дают число от 0 до 4 294 967 295. Из него получается тикет от 1 до 100 000 000: floor(число × 100 000 000 / 2^32) + 1.
У каждого предмета в таблице шансов на момент игры есть свой диапазон тикетов. Выпадает предмет, в чей диапазон попал тикет.
Порог равен floor(шанс × 100 000 000). Апгрейд выигрывает, если тикет не больше порога.
Серверный сид раскрывается, когда вы меняете сиды. После этого любую игру пары можно пересчитать в браузере на этой странице или своим кодом.
Ключ — это hex-строка серверного сида как есть (64 символа), а не декодированные из неё байты. Именно здесь чаще всего ошибаются при самостоятельной проверке.