Nothing up our sleeve

Provably fair

Every dart gets a secret server seed the moment it exists. We publish only its SHA-256 hash beforehand, so the seed can't be swapped after you aim. When the dart lands, the seed is revealed and you can recompute the exact roll yourself — in your browser, with the code below.

The maths

commit_hash = SHA256(server_seed)              // published before the throw
hmac        = HMAC_SHA256(server_seed, client_seed)
roll        = parseInt(hmac[0..8], 16) % 10000  // 0 – 9999
drift pick  = parseInt(hmac[8..16], 16)
item pick   = parseInt(hmac[16..24], 16)

The client seed is your crate id — fixed and visible before you throw. A throw sticks the ring you aimed at when roll < base_odds_bps × darts_staked.

Your throws

Connect to see and verify your own results, or use the manual checker below.

Manual checker