Slots
A 3-reel slot machine with weighted symbols, configurable payouts, and a verifiably-onchain RTP you can compute yourself before you spin.
How it works
The Overtime Slots contract implements a 3-reel slot machine. When you spin:
You stake an amount in your chosen collateral
The contract requests a random word from Chainlink VRF
From the random word, three reels are sampled independently using the configured
symbolWeightsThe result is checked against the pay table:
Triple (all three reels match) → pays the symbol's
triplePayoutmultiplierAdjacent pair (reels 1+2 match, or reels 2+3 match) → pays the symbol's
pairPayoutmultiplierOtherwise → no payout
If you won, the payout is transferred immediately
Every component of this is configurable per deployment, and every component is public state.
What's onchain
symbolCount
Number of distinct symbols on the reels
symbolWeights[i]
Weight of symbol i in the reel sampling distribution
symbolWeightsTotal
Cached sum of weights (probability of symbol i = symbolWeights[i] / symbolWeightsTotal)
triplePayout[i]
Payout multiplier for three of symbol i
pairPayout[i]
Payout multiplier for an adjacent pair of symbol i
maxPayoutMultiplier
Cap used to size the bankroll reservation
houseEdge
Public state variable, capped at MAX_HOUSE_EDGE = 5%
You can read every one of these directly from the contract. The probability of any outcome is a pure function of these public variables, meaning the expected return-to-player (RTP) of the slot is something you can calculate yourself before staking a single token.
Why this is unusual
Most online slots ask you to trust an RTP figure printed in the game info modal. There is no way to verify it. Even regulated jurisdictions only require periodic audits, not real-time verifiability.
Overtime Slots is the inverse:
The RTP is computable from public state. Anyone can sum
weight × payoutacross all winning combinations and compare to the stake.The house edge is hard-capped at 5%. The contract structurally cannot be configured to extract more.
Any payout-table change emits an event. Every spin from that block onward uses the new table, and every spinner can read it before they spin.
Limits
Minimum bet
3 USD
House edge
Configurable, capped at 5% (MAX_HOUSE_EDGE)
Maximum profit per spin
Set per deployment (maxProfitUsd)
Cancel timeout
30 seconds minimum
Supported collaterals: USDC, WETH, $OVER.
User guide
1. Open the Slots machine
Select Slots from the casino lobby. The pay table is visible in the interface and matches the on-chain configuration exactly.
[Screenshot — Slots interface with visible pay table]
2. Set your stake and collateral
Choose your collateral, enter your stake amount.
[Screenshot — stake entry]
3. Spin
Click Spin and sign the transaction. The spin enters PENDING while waiting for the VRF callback.
[Screenshot — pending spin]
4. Result
When the random word arrives, all three reels resolve at once. The contract checks for a triple match, then for adjacent pairs, and pays out accordingly.
[Screenshot — resolved spin with reel result]
5. Payout
Winning spins transfer the payout to your wallet in the same transaction. The result, the random word and the payout are all in your bet history and on a block explorer.
[Screenshot — winning spin with payout]
How to verify RTP yourself
Want to confirm the slot's RTP before you stake? At a high level:
Read
symbolCount,symbolWeights[],triplePayout[],pairPayout[]from the contractCompute the probability of each outcome:
Triple of symbol
i:(weight[i] / total)^3Adjacent pair of
i(positions 1+2 or 2+3, third reel anything else):2 × (weight[i] / total)^2 × ((total - weight[i]) / total)
Multiply each probability by the corresponding payout multiplier
Sum across all symbols → that's the expected return per unit staked
The complement of that sum is the effective house edge.
You don't have to take Overtime's word for it. You don't have to trust an audit firm. You can read the chain.
Free bets
Slots supports placeBetWithFreeBet for users with an Overtime free-bet balance. Mechanics are identical, and free-bet wins are settled through the existing Overtime free-bets infrastructure.
Last updated
