How Provably Fair Works
You should not have to trust us. Here is exactly how you can verify every spin result yourself.
The problem with traditional giveaways
In a traditional online giveaway, you have no way to verify that the operator picked the winner fairly. They could pick whoever they wanted and claim it was random. You just have to trust them.
Oyays uses a cryptographic technique called "provably fair" that makes it mathematically impossible for us to manipulate results after the fact — and lets you verify every spin yourself.
Step 1: The daily commitment
At the start of each day (midnight UTC), our server generates a long random string called the server seed. We immediately compute its SHA-256 hash and publish that hash on the fairness page. This is called the commitment.
Because SHA-256 is a one-way function, publishing the hash does not reveal the seed. But it locks us in — we cannot change the seed later without changing the hash, which you can verify.
Step 2: Generating your spin result
When you spin, our server computes:
Where sessionId is your unique session identifier and nonce is a counter that increments with each spin (1, 2, 3...). This produces a 256-bit hash.
We then reduce that hash to a number in the range 0–249,999 using rejection sampling (to avoid modulo bias). If the result is exactly 0, the spin wins. There is one winning value out of 250,000 possible values.
Step 3: The daily reveal
At the end of each day, we publish the original server seed on the fairness page. Now you have everything you need to verify any spin from that day:
- Take the revealed server seed and compute its SHA-256 hash. It should match the commitment we published at the start of the day.
- Take your Spin ID (which encodes your session ID and nonce) and compute HMAC-SHA256(serverSeed, sessionId + ":" + nonce).
- Reduce the result to a number in 0–249,999. If it is 0, the spin was a winner.
- Compare your recomputed result to what we recorded. They should match exactly.
Why this prevents manipulation
- We cannot change the seed after publishing the commitment — doing so would change the hash, which you can verify.
- We cannot predict your session ID or nonce — they are assigned server-side and unique to you.
- The result is deterministic — given the same inputs, HMAC-SHA256 always produces the same output. If we recorded a different result than what the math produces, you would catch it.
Try it yourself
After any day ends, go to the fairness page, paste your Spin ID, and we will recompute the result for you. Or use any HMAC-SHA256 tool (there are many free ones online) to verify it independently without relying on our website at all.
Frequently asked questions
Can Oyays change the result after I spin?
No. The server seed is committed before any spins happen. Changing it would change the published hash, which you can verify at any time.
Why are the odds 1 in 250,000?
We chose 250,000 as the denominator to make the daily giveaway genuinely exciting — not so easy that it is trivial, not so hard that it feels impossible. With 100 spins per day, your daily odds are roughly 1 in 2,500.
What if more than one person wins on the same day?
Only the first eligible winning spin of the day is awarded the prize. Subsequent winning spins are recorded as "pool-forced losses" in the audit log. This is disclosed in our Official Rules.