The Dynamic Float Model is the core economic mechanism that governs LTB costs and rewards in Lotto Balls.
Core Concept
Instead of fixed costs and rewards, LTB values float based on the contract's current token balance. This creates a self-balancing system that adapts to supply and demand.
How It Works
The Float Formula
All LTB costs and rewards are calculated as a percentage of the contract's current LTB balance:
Value = Contract_Balance × Percentage_Rate
When the contract has more LTB:
Costs are higher (but capped)
Rewards are larger
When the contract has less LTB:
Costs are lower (but floored)
Rewards are smaller
LTB Play Cost
The cost to play with LTB is:
With bounds:
Minimum: 10 MLTB (1,000,000 LTB)
Maximum: 100 MLTB (10,000,000 LTB)
Cost Examples
Contract Balance
Calculated Cost
Actual Cost
50M LTB
5,000 LTB
10 MLTB (min)
500M LTB
50,000 LTB
50 MLTB
1B LTB
100,000 LTB
100 MLTB (max)
5B LTB
500,000 LTB
100 MLTB (max)
LTB Rewards
Rewards for USDC players scale with the contract's balance:
Matches
Percentage Rate
0
0.002478%
1
0.003717%
2
0.012432%
3
0.049686%
Reward Examples (at 1B LTB balance)
Matches
Calculation
Reward
0
1B × 0.00002478
24,780 LTB
1
1B × 0.00003717
37,170 LTB
2
1B × 0.00012432
124,320 LTB
3
1B × 0.00049686
496,860 LTB
Self-Balancing Properties
The Dynamic Float Model creates natural equilibrium:
When Balance is High
Cost: Reaches maximum cap → More affordable relative to value
Rewards: Large payouts → Faster distribution
Effect: Balance decreases toward equilibrium
When Balance is Low
Cost: Reaches minimum floor → Still playable
Rewards: Smaller payouts → Preservation of remaining tokens
Effect: LTB plays replenish the balance
The 2.1x Configuration
The current reward percentages follow a "2.1x multiplier configuration":
This creates meaningful reward progression while maintaining sustainability.
Technical Implementation
Where PRECISION = 1e18 for 18-decimal precision arithmetic.
Benefits of Dynamic Float
Sustainability: System auto-adjusts to prevent depletion
Fairness: Rewards scale with available supply
Flexibility: Adapts to varying demand levels
Transparency: All calculations are on-chain and verifiable
// Current cost to play with LTB
function getLtbCost() public view returns (uint256)
// Current reward for specific match count
function getLtbReward(uint8 matches) public view returns (uint256)
// All rewards at once
function getLtbRewards() external view returns (
uint256 reward0,
uint256 reward1,
uint256 reward2,
uint256 reward3
)