SpyDota, her oyuncunun oyunun adilliğini doğrulayabilmesi için Provably Fair algoritmasını kullanır. Bir kasa veya yükseltmenin sonucu, önceden sabitlenmiş sunucu seed'i, istemci seed'iniz ve oyun numarasıyla belirlenir; bu yüzden oyun başladıktan sonra değiştirilemez.

Sunucu seed'i, oyun sonucunun hesaplandığı gizli değerdir. Bir oyunu yeniden hesaplamak için seed'in açıklanması gerekir; oyun kartı bunu sizin yerinize yapar.
Üst kısımdaki avatarınıza tıklayın, “Geçmiş” sekmesini açın ve “Kasalar” ya da “Yükseltmeler” bölümünü seçin.
Düğme, oyun satırının sonundadır (telefonda tabloyu sağa kaydırın). Açılan kartta “Doğrula” düğmesine bir kez daha tıklayın.
Oyunu doğrulamak için sunucu seed'inin açıklanması gerekir. Yeni bir seed çifti oluşturacağız: mevcut seed açıklanıp doğrulamaya eklenecek ve oyun numaraları baştan başlayacak.
Seed hâlâ gizliyse kart “Seed'leri değiştir ve doğrula” seçeneğini sunar. Eski seed açıklanır; ardından onunla oynanan tüm oyunları doğrulayabilirsiniz. Yeni oyunlar 1'den saymaya başlar, oynanmış oyunlar değişmez. Seed zaten açıklandıysa bu adım olmaz.
Tarayıcınız oyunu açıklanan seed ile yeniden hesapladı ve sonuç sunucu kaydıyla eşleşti.
Doğrulama sayfası açılır. “Eşleşiyor”, tarayıcınızın oyunu yeniden hesapladığı ve sunucunun kaydettiğiyle aynı sonucu aldığı anlamına gelir. “düştü” etiketli eşyayı geçmişteki satırla karşılaştırın; yükseltmede “Kazanç” ya da “Kayıp” yazar.
Provably Fair başlamadan önce oynanan oyunlarda, hediyelerde ve verilen eşyalarda “Doğrula” düğmesi yoktur. Eşya değiştirildiyse doğrulama ilk düşüşe aittir. “Eşleşmiyor” görürseniz sunucu seed'ini kaydedin ve desteğe yazın.
Oyundan önce sunucu seed'inin hash'ini görürsünüz. Bu yüzden sunucu kaynak verileri fark ettirmeden değiştiremez.
Seed'iniz ve oyun numarası hesaplamaya katılır, bu yüzden sonucu tek başına sunucu oluşturmaz.
Bir oyunun verilerini girin. Hesaplama tarayıcınızda yapılır, sunucuya hiçbir şey gönderilmez.
Oyun verilerini girin ve “Doğrula”ya basın: çıkan sayı ve eşya burada görünecek.
Sunucu seed'i + Sizin seed'iniz + Oyun numarası = Adil sonuç
Sunucu rastgele bir sunucu seed'i seçer ve yalnızca SHA-256 hash'ini gösterir. Sonradan seed değiştirilemez: hash artık eşleşmezdi.
Her oyun için HMAC-SHA256 hesaplanır. Anahtar, sunucu seed'inin 64 karakterlik hex dizesi olarak olduğu gibi hâlidir; bayta çevrilmez. Mesaj; oyun türü, oyun, istemci seed'iniz ve oyun numarasından oluşur.
Hash'in ilk 8 hex karakteri 0 ile 4.294.967.295 arasında bir sayı verir. Bundan 1 ile 100.000.000 arasında bir bilet çıkar: floor(sayı × 100.000.000 / 2^32) + 1.
Oyun anındaki şans tablosunda her eşyanın kendi bilet aralığı vardır. Bileti aralığına denk gelen eşya düşer.
Eşik floor(şans × 100.000.000) değerine eşittir. Bilet eşikten büyük değilse yükseltme kazanır.
Sunucu seed'i, seed'leri değiştirdiğinizde açıklanır. Ardından çiftin her oyunu bu sayfada tarayıcıda ya da kendi kodunuzla yeniden hesaplanabilir.
Anahtar, sunucu seed'inin hex dizesinin olduğu gibi hâlidir (64 karakter); ondan çözülen baytlar değildir. Kendi yaptığınız doğrulamalarda en çok burada hata yapılır.