HolyHostingHolyHosting
Provably fair

Verificación pública del sorteo

No tenés que confiar en nosotros: los ganadores se derivan de la blockchain de Bitcoin y de una lista de tickets publicada de antemano. Todo lo necesario para auditarlo está en esta página.

Datos del sorteo

Premios1º Premio por anunciar · 2º Segundo premio por anunciar · 3º Tercer premio por anunciar
Cierre de participación8 ago 2026, 2:18 p. m. UTC
Tickets actuales0
Snapshot congelado
Tickets en el snapshot (N)
Bloque BTC objetivopor anunciar
Bloque minado
Regla claveUn premio por participante

01 · LISTA CONGELADA

Antes del sorteo publicamos la lista de los 0 tickets y su huella digital (SHA-256). No se puede cambiar sin que se note.

02 · AZAR DE BITCOIN

El azar sale del bloque objetivo de Bitcoin — nadie (ni nosotros) puede predecirlo ni manipularlo.

03 · UN ROLL POR PREMIO

La fórmula ids[sha256(hash:k) mod N] se repite con k=0,1,2… Cada roll válido asigna el siguiente premio; inválidos o repetidos se saltan y queda registrado.

Huella del snapshot: se publica al congelar la lista

Hash del bloque objetivo: todavía no minado

El verificador se habilita cuando el snapshot esté congelado y el bloque objetivo minado.

Para desarrolladores: API de verificación

O a mano, con Python

Verifica el checksum del snapshot y que CADA iteración k publicada salga del hash del bloque. Los saltos (ticket invalidado o participante ya premiado) están declarados con su motivo en la misma API.

import hashlib, json, urllib.request

data = json.load(urllib.request.urlopen("https://sorteos.holy.gg/api/public/verificacion"))
ids, bh = data["snapshot"]["entryIds"], data["giveaway"]["btcBlockHash"]

# 1) el checksum publicado coincide con la lista congelada
canon = json.dumps(ids, separators=(",", ":")).encode()
assert hashlib.sha256(canon).hexdigest() == data["snapshot"]["checksumSha256"]

# 2) cada iteración k publicada sale de la fórmula ids[sha256(hash:k) mod N]
for r in data["rolls"]:
    d = hashlib.sha256(f"{bh}:{r['k']}".encode()).hexdigest()
    assert ids[int(d, 16) % len(ids)] == r["entryId"], f"k={r['k']} no coincide"

print("OK — la secuencia completa sale del bloque de Bitcoin")
for r in data["rolls"]:
    print(r["k"], r["entryId"], r["status"], r.get("prizeRank") or "", r.get("reason") or "")

¿Dudas sobre el proceso? Escribinos en el Discord de HolyHosting · Volver al sorteo