Prize Distribution

How winners are selected and prizes are distributed in Gaambl Lotto games

Winner Selection Process

Winners are selected using a provably fair process with Fisher-Yates shuffle and exponential decay curve distribution.

Fisher-Yates Shuffle

All players are shuffled using the entropy random number to ensure fair, unpredictable winner selection.

Winner Count Calculation

Number of winners is calculated based on the risk mode percentage of total players.

Prize Calculation Formula

Prize distribution uses an exponential decay curve that favors early winners with larger prizes. The formula ensures provably fair distribution while creating exciting winner-takes-most scenarios.

Prize Pool Breakdown

  • • Total pool = sum of all entry fees
  • • Platform fee = 2% of total pool
  • • Prize pool = total pool - platform fee
  • • Winners get 98% of the total pool

Mathematical Formula

// Calculate position for each winner
position = (i × 1,000,000) ÷ winnersCount
// Calculate decay factor
decayFactor = (curveFactor × position) ÷ 1,000,000
// Calculate weight using exponential curve
weight = ((1,000,000 - decayFactor)²) ÷ 1,000,000
// Distribute prizes proportionally
prize = (prizePool × weight) ÷ totalWeight

Where:

  • i = winner position (0, 1, 2, ...)
  • curveFactor = risk mode multiplier (300,000 to 1,000,000)
  • winnersCount = number of winners based on risk mode
  • prizePool = total pool minus 2% platform fee

Interactive Prize Calculator

Use the calculator below to see exact prize distributions for any game configuration. This uses the same formula as the smart contract, so you'll get accurate results for any scenario.

Interactive Prize Calculator

Calculate exact prize distributions using the smart contract formula

Game Parameters

Quick Presets
10 500
Risk Mode
BALANCED Mode:
Balanced approach with 25% winners. Good risk/reward ratio.
Token

Prize Distribution

Total Pool: 100.00 USDC
Platform Fee (2%): 2.0000 USDC
Prize Pool: 98.00 USDC
Winners: 25 / 100 (25.0%)
Winner Payouts
1st Place:
5.2957 USDC
5.4%
2nd Place:
5.1694 USDC
5.3%
3rd Place:
5.0446 USDC
5.1%
4th Place:
4.9213 USDC
5.0%
5th Place:
4.7995 USDC
4.9%
6th Place:
4.6793 USDC
4.8%
7th Place:
4.5606 USDC
4.7%
8th Place:
4.4434 USDC
4.5%
9th Place:
4.3277 USDC
4.4%
10th Place:
4.2136 USDC
4.3%
11th Place:
4.1010 USDC
4.2%
12th Place:
3.9899 USDC
4.1%
13th Place:
3.8803 USDC
4.0%
14th Place:
3.7723 USDC
3.8%
15th Place:
3.6658 USDC
3.7%
16th Place:
3.5608 USDC
3.6%
17th Place:
3.4574 USDC
3.5%
18th Place:
3.3554 USDC
3.4%
19th Place:
3.2550 USDC
3.3%
20th Place:
3.1561 USDC
3.2%
21th Place:
3.0588 USDC
3.1%
22th Place:
2.9630 USDC
3.0%
23th Place:
2.8687 USDC
2.9%
24th Place:
2.7759 USDC
2.8%
25th Place:
2.6846 USDC
2.7%
Risk Analysis
Win Rate
25.0%
Curve Factor
300,000

Claiming Prizes

Winners must manually claim their prizes after the game is completed.

Claim Function

function claimPrize(uint256 gameId) external

Claim Process

  • • Prizes are reserved in contract until claimed
  • • Winners must call claimPrize() to receive their winnings
  • • Prizes are transferred in the same token as the entry fee
  • • Gas-optimized O(1) prize tracking and removal