KhipuVault Docs

Prize Calculation

Detailed breakdown of how prizes are determined, funded, and distributed in KhipuVault Prize Pool.

Prize Calculation

Understand the math behind prizes: how they're funded, calculated, and distributed to winners.

Prize Funding Source

Prizes come from collective yields generated by all deposits:

Total Deposits: 2,000,000 MUSD
Average APY: 15%
Annual Yields: 300,000 MUSD
Weekly Yields: ~5,769 MUSD

Yield Distribution:

Weekly Yields: 5,769 MUSD
├─ 90% (5,192 MUSD) → Prize Pool
└─ 10% (577 MUSD) → Protocol Treasury

The 5,192 MUSD prize pool is distributed among winners every Friday.

No-Loss Guarantee

Prizes are funded ONLY from yields. Your principal deposit never funds prizes and is always withdrawable 1:1.

Prize Tier Structure

The weekly prize pool is split across three tiers:

Grand Prize (80%)

Prize Pool: 5,192 MUSD
Grand Prize: 5,192 × 80% = 4,153 MUSD

Winners: 1
Prize per winner: 4,153 MUSD

One lucky winner takes the largest share.

Runner-Up Prizes (15%)

Prize Pool: 5,192 MUSD
Runner-Up Pool: 5,192 × 15% = 778 MUSD

Winners: 5
Prize per winner: 778 ÷ 5 = 155 MUSD

Five winners share the runner-up pool equally.

Consolation Prizes (5%)

Prize Pool: 5,192 MUSD
Consolation Pool: 5,192 × 5% = 259 MUSD

Winners: 10
Prize per winner: 259 ÷ 10 = 25 MUSD

Ten winners receive smaller consolation prizes.

Complete Distribution Example

Weekly Yield: 5,769 MUSD
├─ Protocol Fee (10%): 577 MUSD
└─ Prize Pool (90%): 5,192 MUSD
    ├─ Grand Prize (80%): 4,153 MUSD → 1 winner
    ├─ Runner-Up (15%): 778 MUSD → 5 winners (~155 each)
    └─ Consolation (5%): 259 MUSD → 10 winners (~25 each)

Total Winners: 16
Total Distributed: 5,192 MUSD

Yield Calculation

Yields vary based on Mezo vault performance:

Weekly Yield Formula

Weekly Yield = (Total Deposits × APY) ÷ 52

Example:
Total Deposits: 2,000,000 MUSD
Current APY: 15%
Weekly Yield: (2,000,000 × 0.15) ÷ 52 = 5,769 MUSD

Yield Sources

Prize Pool aggregates yields from multiple Mezo strategies:

StrategyAllocationAPYWeekly Contribution
Mezo Native Staking60%13%3,000 MUSD
Mezo LP Pools30%20%2,307 MUSD
Mezo Money Markets10%11%423 MUSD

Total Weekly Yield: ~5,730 MUSD (before fees)

Yield Variability

APYs fluctuate based on market conditions. Prize Pool uses a 7-day moving average to smooth volatility and ensure consistent prizes.

Prize Scaling with Deposits

As more people deposit, prizes grow proportionally:

Scenario A: Small Pool

Total Deposits: 500,000 MUSD
APY: 15%
Weekly Yield: 1,442 MUSD
Prize Pool (90%): 1,298 MUSD

Grand Prize: 1,038 MUSD
Runner-Up: 194 MUSD (5 winners, ~38 each)
Consolation: 64 MUSD (10 winners, ~6 each)

Scenario B: Medium Pool

Total Deposits: 2,000,000 MUSD
APY: 15%
Weekly Yield: 5,769 MUSD
Prize Pool (90%): 5,192 MUSD

Grand Prize: 4,153 MUSD
Runner-Up: 778 MUSD (5 winners, ~155 each)
Consolation: 259 MUSD (10 winners, ~25 each)

Scenario C: Large Pool

Total Deposits: 10,000,000 MUSD
APY: 15%
Weekly Yield: 28,846 MUSD
Prize Pool (90%): 25,961 MUSD

Grand Prize: 20,769 MUSD
Runner-Up: 3,894 MUSD (5 winners, ~778 each)
Consolation: 1,298 MUSD (10 winners, ~129 each)

Key Insight: Larger pools create bigger prizes but also more competition (lower individual odds).

Expected Value Analysis

Individual Expected Value

Your expected value per draw:

Expected Value = (Probability of Winning) × (Prize Amount)

Example Calculation:

Your Deposit: 1,000 MUSD
Total Deposits: 2,000,000 MUSD
Your Ticket Share: 0.05%

Grand Prize Expected Value:
= 0.05% × 4,153 MUSD
= 2.07 MUSD

Runner-Up Expected Value:
= (5 ÷ 1) × 0.05% × 155 MUSD
= 0.38 MUSD per prize × 5 prizes
= 1.90 MUSD total

Consolation Expected Value:
= (10 ÷ 1) × 0.05% × 25 MUSD
= 0.125 MUSD per prize × 10 prizes
= 1.25 MUSD total

Total Expected Value: 2.07 + 1.90 + 1.25 = 5.22 MUSD per week

Expected Value vs. Yield Opportunity Cost

Compare Prize Pool expected value to direct yields:

Deposit: 1,000 MUSD
APY: 15%
Weekly Direct Yield: 2.88 MUSD (guaranteed)

Prize Pool Expected Value: 5.22 MUSD (probabilistic)

Expected Value Premium: 5.22 - 2.88 = +2.34 MUSD (81% higher)

Expected Value ≠ Guaranteed Returns

Expected value is a statistical average. You might win 4,153 MUSD or win nothing. Over many draws, expected value averages out.

Direct yields: Guaranteed but lower Prize Pool: Higher expected value but volatile

Prize Pool Reserve

To ensure prize stability during low-yield weeks:

Reserve Fund: 5% of weekly yields
Purpose: Buffer for yield volatility
Usage: Top up prizes if yields drop

Example:

Normal Week:
Weekly Yield: 5,769 MUSD
Reserve Contribution: 288 MUSD
Prize Pool: 4,904 MUSD

Low-Yield Week:
Weekly Yield: 2,000 MUSD
Reserve Withdrawal: 3,192 MUSD
Prize Pool: 5,192 MUSD (maintained)

Reserve Balance After: Previous balance - 3,192 MUSD

This ensures prizes stay consistent even during market downturns.

Winner Selection Process

Random Number Generation

Chainlink VRF provides verifiable randomness:

1. Draw scheduled for Friday 12:00 PM UTC
2. Request random number from Chainlink VRF
3. Receive provably random uint256
4. Use random number to select winning tickets

Ticket Selection Algorithm

// Simplified winner selection
function selectWinner(uint256 randomness, uint256 totalTickets) returns (address) {
  uint256 winningTicket = randomness % totalTickets;

  // Find user who owns this ticket number
  uint256 cumulativeTickets = 0;
  for (address user in allUsers) {
    uint256 userTickets = getTickets(user);
    if (winningTicket < cumulativeTickets + userTickets) {
      return user; // This user owns the winning ticket
    }
    cumulativeTickets += userTickets;
  }
}

Key Points:

  • Each ticket has equal probability
  • More tickets = proportionally better odds
  • Provably fair and verifiable on-chain

Multi-Tier Draw

1. Draw Grand Prize Winner
   - Use random number R1
   - Select winning ticket from total pool
   - Award 4,153 MUSD

2. Draw Runner-Up Winners (5x)
   - Use R2 = hash(R1 + 1)
   - Select winning ticket (exclude Grand Prize winner)
   - Repeat 5 times
   - Award 155 MUSD each

3. Draw Consolation Winners (10x)
   - Use R3 = hash(R2 + 1)
   - Select winning ticket (exclude previous winners)
   - Repeat 10 times
   - Award 25 MUSD each

Note: A single user can win multiple prizes in one draw (rare but possible).

Prize Calculation Edge Cases

Zero Yields Week

If weekly yields = 0 MUSD:
- No draw occurs
- Deposits remain safe
- Next week's draw proceeds normally

Partial Week

If Prize Pool launches mid-week:
- Yields prorated for days active
- Example: Launch Wednesday = 2 days of yields
- First draw might be smaller

Single Depositor

If only 1 person deposited:
- They win 100% probability
- Prize = yields from their own deposit
- Essentially earning direct yields as "prizes"

Historical Prize Data

Example of prize evolution:

WeekTotal DepositsWeekly YieldGrand PrizeWinners
1250,000 MUSD721 MUSD577 MUSD16
101,000,000 MUSD2,884 MUSD2,307 MUSD16
252,500,000 MUSD7,211 MUSD5,769 MUSD16
525,000,000 MUSD14,423 MUSD11,538 MUSD16

Trend: Prizes grow as more users deposit (network effect).

Prize Taxes and Fees

Tax Considerations

Prizes may be considered taxable income in your jurisdiction. Consult a tax professional for guidance.

KhipuVault does not withhold taxes. You're responsible for reporting winnings.

Protocol Fees:

  • 10% of weekly yields → Protocol treasury
  • 0% fee on deposits/withdrawals
  • 0% fee on prize claims

Prize Calculation Transparency

All calculations are verifiable on-chain:

Contract: PrizePoolCalculator.sol
Function: calculatePrizes(uint256 weeklyYield) public view

Returns:
- Grand prize amount
- Runner-up prize amounts
- Consolation prize amounts
- Protocol fee

Anyone can independently verify prize calculations.

Comparing to Traditional Lotteries

MetricTraditional LotteryPrize Pool
Prize-to-Revenue Ratio~50%~90%
Odds DisclosureOften unclearTransparent on-chain
Expected ValueNegativePositive (no loss)
Prize SourceTicket salesCollective yields
Principal Risk100% lost0% lost

Prize Pool offers vastly superior economics to traditional lotteries.

Next Steps


See current prizes: View Prize Pool →

On this page