← Back to the giveaway
Provably fair
Verify a draw yourself
Every SkinFolio giveaway commits to a secret server seed before entries open and publishes its SHA-256 hash. After the draw, the seed is revealed. Paste the published values below and your browser will recompute the seed hash and the winner index — entirely client-side, no trust in us required. The numbers must match what was shown on the giveaway page.
The 64-char hex value published in the draw receipt.
Optional — leave blank to skip the commit check.
Only for re-drawn giveaways (forfeited prize etc., terms §9).
The winner indexes of ALL previous rounds, shown on the giveaway receipt.
Computed hash—
Hash match—
HMAC (first 8 bytes)—
Winner index—
Human entry no.—
The exact algorithm
Identical to the server'sgiveaway-fair.ts. Reproduce it in any language:seed_hash = SHA256(server_seed)— must equal the committed hash.key = utf8_bytes(server_seed)(the hex string's bytes, not decoded).msg = utf8_bytes(client_seed).mac = HMAC_SHA256(key, msg)→ 32 bytes.h = first 8 bytes of mac as a big-endian unsigned integer.winner_index = h mod N(0-based); human entry no. =winner_index + 1.
Re-draws (round ≥ 2)
When a prize is forfeited (terms §9) the re-draw derives from the SAME committed server seed — no new seed can be picked against the known entry list:- For
attempt = 0, 1, 2, …:msg = utf8_bytes(client_seed + ":reroll:" + round + ":" + attempt). candidate = first-8-bytes-BE( HMAC_SHA256(key, msg) ) mod N(key as above).- The winner is the FIRST candidate not in the voided-winner list (all previous rounds' indexes).