We Analyzed 400,000 Castle Roulette Rounds. Here's What We Found.
I cross-checked Duel's 400K Castle Roulette dataset against 319K rounds I recorded myself. Full audit with charts, code, and both datasets to download.
400,000
Rounds from Duel
318,981
Our Independent Data
99.99%
Match Rate
5 months
Verified Span

Image taken from the actual Castle Roulette live game at Duel.com
Methodology
Two independent datasets, 319,000+ rounds of overlap
Duel gave us 400,000 rounds of Castle Roulette data. We cross-checked it against 318,981 rounds we collected independently using Pilot's API, a community-built API that tracks Castle Roulette rounds in real time. Our collection ran since December 2025, polling every 8 seconds. Because Pilot's API is community-run, there were gaps and downtime throughout the collection period, which is why our dataset is smaller than Duel's.
Out of 318,458 comparable rounds, 318,414 matched perfectly. That is a 99.99% match rate between two completely independent data sources.
Duel's Data
400,000 rounds
Official CSV export from Duel
Our Independent Data
318,981 rounds
Collected via Pilot's community API
The Wheel
48 positions, six multipliers, 100% RTP by design (0% house edge)
Castle Roulette has 48 positions on the wheel distributed across six multipliers. We confirmed with Duel that the 0.1% house edge listed in their terms was never applied to Castle Roulette. The game runs at a true 0% house edge, and the data backs it up. The number of positions determines how often each multiplier should hit on average, though variance means short-term results will always fluctuate:
positions
24
2x
~1 in 2 rounds
positions
12
4x
~1 in 4 rounds
positions
6
8x
~1 in 8 rounds
positions
3
16x
~1 in 16 rounds
positions
2
24x
~1 in 24 rounds
positions
1
48x
~1 in 48 rounds
Expected hit rates are long-term averages. Variance plays a big role in short sessions.
Wheel Distribution
Each bet type has a theoretical RTP of exactly 100%. slots/48 * multiplier = 1.0 for every color. 24/48 * 2 = 1.0. 12/48 * 4 = 1.0. 6/48 * 8 = 1.0. All the way down to 1/48 * 48 = 1.0. The math is perfect.
Provably Fair: The Code
How Castle Roulette generates outcomes
We downloaded and analyzed Duel's production JavaScript bundle. Castle Roulette is provably fair. Each round uses two inputs to generate a result:
| Input | Source | Purpose |
|---|---|---|
| Server Seed | Duel's servers | Private seed committed before the round |
| drand Beacon | drand.love (public randomness) | External randomness neither side controls |
// Step 1: Combine seeds with HMAC-SHA256
const hash = HMAC_SHA256(
serverSeed,
hexToUtf8(drandSeed) + ":0"
);
// Step 2: Take first 8 hex characters
const value = parseInt(hash.slice(0, 8), 16);
// Step 3: Map to wheel position (0-47)
const outcome = value % 48;
// Step 4: Map position to multiplier
const WHEEL = [
48, // position 0 -> 48x
2, // position 1 -> 2x
4, // position 2 -> 4x
2, // position 3 -> 2x
// ... 44 more positions
];
const multiplier = WHEEL[outcome];
The key properties that make this provably fair:
- Server seed is committed before the round. Duel cannot change it after seeing your bet.
- drand beacon is public and external. Neither Duel nor the player controls it. Anyone can verify the beacon value for any round.
- HMAC-SHA256 is deterministic. Same inputs always produce the same output. Anyone can recalculate and verify any round.
- Integer math only. No floating point, no rounding, no precision bugs. value % 48 always gives a clean integer 0-47.
// You can verify any Castle Roulette round:
// 1. Get the server seed (revealed after round)
// 2. Get the drand beacon for that round's timestamp
// from https://drand.love
// 3. Run:
const crypto = require('crypto');
function verify(serverSeed, drandHex) {
const msg = Buffer.from(drandHex, 'hex').toString('utf8') + ':0';
const hash = crypto.createHmac('sha256', serverSeed)
.update(msg).digest('hex');
const roll = parseInt(hash.slice(0,8), 16) % 48;
return WHEEL[roll];
}
// If the result doesn't match what Duel showed,
// the round was tampered with.
Verdict: The mechanic is textbook provably fair. Integer slots, exact distribution, HMAC-SHA256 with an external randomness beacon. This is exactly what a fair game should look like under the hood.
Verified Period: Dec 2025 - Apr 2026
318,981 rounds where we have independent confirmation
Here is the verified data side by side. "Ours" is what we collected independently. "CSV" is what Duel provided. Both datasets cover the same rounds during the overlap period.
| Bet | Our Hit Rate | CSV Hit Rate | Our RTP | CSV RTP | Verdict |
|---|---|---|---|---|---|
| 2x | 50.08% | 50.06% | 100.17% | 100.12% | ✓ |
| 4x | 25.01% | 25.01% | 100.04% | 100.04% | ✓ |
| 8x | 12.51% | 12.51% | 100.04% | 100.04% | ✓ |
| 16x | 6.21% | 6.21% | 99.29% | 99.40% | ✓ |
| 24x | 4.15% | 4.15% | 99.49% | 99.57% | ✓ |
| 48x | 2.05% | 2.06% | 98.46% | 98.99% | ✓ |
| Weighted Total | ~100% | ~100% | ✓ |
Verified RTP Comparison: Our Data vs Duel's CSV
100% = theoretical perfect RTP for a 0% house edge game
Why the small differences on higher multipliers? Higher multipliers (16x, 24x, 48x) hit less often, so they naturally show more variance over any sample size. Our data was collected through Pilot's API, which had gaps and downtime, so our sample for rare outcomes is smaller than Duel's. Duel's CSV has the complete dataset with no gaps, which is why their numbers are slightly closer to the expected values. The weighted total comes out to approximately 100% RTP for both datasets.
For the period we can verify, Castle Roulette is doing exactly what Duel claims. Every bet type is at or very near 100% RTP. The numbers match across both datasets.
Statistical Tests
Standard fairness tests on the verified data
Chi-Squared Test
PASS
p = 0.76 (well above 0.05)
Runs Test
PASS
Sequence is random
| Test | Statistic | Threshold | Result |
|---|---|---|---|
| Chi-Squared Goodness of Fit | 2.63 | 11.07 (95%) | PASS |
| Runs Test (Randomness) | 200,722 runs | 199,157-217,262 | PASS |
A chi-squared p-value of 0.76 means a perfectly fair game would produce this much or more variation 76% of the time. The game easily passes the standard fairness test.
| Multiplier | Observed Repeats | Expected Repeats | Deviation |
|---|---|---|---|
| 2x | 75,600 | 75,659 | -0.08% |
| 4x | 18,787 | 18,848 | -0.32% |
| 8x | 4,803 | 4,731 | +1.52% |
| 16x | 1,176 | 1,158 | +1.55% |
| 24x | 530 | 521 | +1.73% |
| 48x | 135 | 128 | +5.47% |
All back-to-back repeat rates within expected bounds. No clustering, no manipulation.
How Castle Roulette Compares
| Game | House Edge |
|---|---|
| American Roulette | 5.26% |
| Online Slots | 4-8% |
| European Roulette | 2.70% |
| Baccarat | 1.06% |
| Blackjack (perfect strategy) | 0.50% |
Castle Roulette runs at a verified 0% house edge. For context, that is lower than any standard casino game on this list, including blackjack with perfect strategy.
The Verdict
Castle Roulette is legit. 99.99% of overlapping rounds match perfectly between two independent data sources. The wheel distribution is uniform. The game mechanic is provably fair with HMAC-SHA256 and a public drand beacon. Both datasets show approximately 100% RTP across all bet types. Castle Roulette is doing what Duel says it does.
Download the Data
Both datasets are public. Run your own analysis.
Both datasets are public. Download the files, open them in a spreadsheet, and check our work.
Mistakes can happen and we may have gotten something wrong. That is exactly why we are making the raw data public so anyone can verify, challenge, or build on what we did. If you spot an error or have suggestions, we want to hear it.
Thanks to Duel for sharing their official results and making this level of transparency possible.
For brands
Real acquisition starts with a real conversation.
Speak directly with Fred, the influencer and founder putting his reputation behind the work. Discuss your crypto-native brand’s community, acquisition through our affiliate network, and retention. No fake traffic or inflated figures dressed up as growth.
Talk to the founderMore from the desk

Public Audit + RTP Checker for Groomer's Van
I published a public audit and RTP checker for Groomer's Van. Replay HMAC outputs, verify config hash, run full RTP simulations from the browser.
Read
The RAW CREW Manifesto: Real People. Real Communities.
Against fake influence, click farms, dishonest agencies and employees demanding kickbacks. We build real communities that belong to your business. Clear scope, fees and commercial terms for every engagement.
Read
The End of FairGambling and Tanzanite? How the CLARITY Act Could Turn Transparency Into a Liability
Proposed U.S. crypto regulation could make the tools we built to see inside casino wallets into the exact mechanism that flags us to exchanges. I break down what that chain could look like.
Read
