Prizes

Revenue Distribution

Every ticket purchased splits its cost into three pools:

Pool
Share
Purpose

Jackpot

50 %

Paid to players who match all 5 white numbers

Super Jackpot (seed)

30 %

Paid to players who match 5 whites + the exact gold number and position

Protocol fee

20 %

Covers operations (CCIP fees, VRF costs, server)

These splits are enforced in the smart contract constants JACKPOT_BPS = 5000, SEED_BPS = 3000, and FEE_BPS = 2000.


Prize Tiers

Jackpot — Match 5/5 Whites

Match all five white numbers drawn (order does not matter).

  • The Jackpot pool is shared equally among all Jackpot winners in the round.

  • If nobody wins, the entire Jackpot pool rolls over to the next round.

  • Any integer-division dust (rounding remainder) also carries over.

Super Jackpot — Match 5/5 Whites + Gold

Match all five white numbers and the gold number at the exact drawn position.

  • The Super Jackpot (seed) pool is shared equally among all Super Jackpot winners.

  • If nobody wins, the pool carries over and keeps growing across rounds.

  • Super Jackpot winners also receive their share of the regular Jackpot pool.

Note: The Super Jackpot can only grow — it accumulates 30 % of every ticket ever sold until someone claims it.


Payout Calculation

At settlement, the contract computes:

A Super Jackpot winner receives jackpotPrizePerWinner + superPrizePerWinner.

A Jackpot-only winner receives jackpotPrizePerWinner.


Probability

Number Space

  • White numbers: 5 drawn from 1–90 (order does not matter) → C(90, 5) = 43 949 268 combinations.

  • Gold number: 1–90 → 90 possibilities.

  • Gold position: 0–4 → 5 possibilities.

Odds per Ticket

Outcome
Calculation
Approximate Odds

Match 5/5 whites

1 / C(90, 5)

1 in ~43.9 million

Match 5/5 whites + gold number + position

1 / (C(90, 5) × 90 × 5)

1 in ~19.8 billion

These are per-ticket odds. Buying multiple tickets in a round increases your chances proportionally.


Rollover Mechanics

Scenario
Jackpot Pool
Super Jackpot Pool

Jackpot won, Super not won

Paid out (minus dust)

Carries over

Neither won

Carries over

Carries over

Both won

Paid out

Paid out

Jackpot won, Super won

Paid out

Paid out

Dust from integer division always carries over to the next round's corresponding pool.


Claiming

  • Prizes can be claimed at any time after settlement — there is no expiry.

  • Use claimPrize(roundId, ticketIndex) for a single ticket or claimPrizeBatch(roundId, indices) for multiple tickets in one transaction.

  • If the ETH transfer fails, the amount is queued in pendingPayouts and can be withdrawn later with claimPendingPayout().


Settlement Reward

The address that triggers settlement (calls settleRound() or settleRoundBatch() for the final batch) receives 1 % of the round's fee pool (SETTLE_REWARD_BPS = 100), capped at the available ownerFees balance.

Last updated

Was this helpful?