Skip to content
auditApril 4, 2026·2 min read

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.

Fred AzevedoFred Azevedo··Brazil

400,000

Rounds from Duel

318,981

Our Independent Data

99.99%

Match Rate

5 months

Verified Span

Castle Roulette on Duel Casino

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:

InputSourcePurpose
Server SeedDuel's serversPrivate seed committed before the round
drand Beacondrand.love (public randomness)External randomness neither side controls
Duel Production Bundle - Outcome Generation

// 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.
Verify Any Round Yourself

// 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.

The Numbers

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.

BetOur Hit RateCSV Hit RateOur RTPCSV RTPVerdict
2x50.08%50.06%100.17%100.12%✓
4x25.01%25.01%100.04%100.04%✓
8x12.51%12.51%100.04%100.04%✓
16x6.21%6.21%99.29%99.40%✓
24x4.15%4.15%99.49%99.57%✓
48x2.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

TestStatisticThresholdResult
Chi-Squared Goodness of Fit2.6311.07 (95%)PASS
Runs Test (Randomness)200,722 runs199,157-217,262PASS

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.

MultiplierObserved RepeatsExpected RepeatsDeviation
2x75,60075,659-0.08%
4x18,78718,848-0.32%
8x4,8034,731+1.52%
16x1,1761,158+1.55%
24x530521+1.73%
48x135128+5.47%

All back-to-back repeat rates within expected bounds. No clustering, no manipulation.

How Castle Roulette Compares

GameHouse Edge
American Roulette5.26%
Online Slots4-8%
European Roulette2.70%
Baccarat1.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.

Bottom Line

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 founder
Tags
#duel#castle-roulette#rtp-analysis#provably-fair#data#open-data
Fred Azevedo

Written by

Fred Azevedo is a working Brazilian influencer with his own audience and a background in casino operations. He founded RAW CREW to bring that experience and personal accountability to genuine acquisition, retention, and business growth, not fake traffic or inflated figures.

RAW CREW

Founder-led growth for crypto-native brands. We build communities your business owns and drive acquisition through our own affiliate network, influencers and paid media. Real users, lasting value.

LATAM · EU · APAC · US

© 2026 RAW CREW. All rights reserved.

For brands and industry professionals. Not a consumer signup service.