Lottery funding mechanism

đź‘‹
This is live now at pevl.xyz! Please read this 1-pager on a 0-fee lottery first if you haven’t already!

Principles

Most important is maximizing the initial prize pool $ amount and # of entrants to make a big splash, then maintaining most of that size in subsequent raffles. This is because users are drawn to large lotteries, and previous attempts failed because raffle amounts were too small.

High-level, this means:

  • Have only one main game, rather than more selection
  • Allocate significant points for users/activity the first few hours/days of launch
  • Funds in lottery prize pools should stay unless withdrawn

Lottery Implementation

The best approach we’ve identified is by having jackpots that are continually funded initially by LPs.

Goal:

  1. Offer a low variance way to farm Blast airdrop for LPs
  2. Offer a high-variance, positive EV way to play the lottery for retail
  3. Incentivize growing jackpot size
  4. If the jackpot is won, next jackpot pool is restarted with a large pool size
  5. Limited gas and complexity for jackpot drawing

Mechanics

  • Users benefit since they have a positive EV option to win a very big jackpot (high variance) by buying raffle entries. The lottery itself is neutral EV, but since they get a small share of the Blast developer airdrop, it’s positive EV.
  • LPs benefit since they have a way to get significant access to the Blast developer airdrop by providing their funds at a positive EV, though with low variance. They contribute a large sum (principal), then choose a % to risk as a jackpot (stake), and get the vast majority of the Blast developer airdrop that we share.
  • The prize pool is initialized daily with LP’s stake. Jackpot drawing is per day. Only one winner can win each jackpot. Any ticket proceeds beyond the initial pool size is added to the jackpot.
  • If ticket proceeds ≥ initial prize pool, a jackpot must be won. If ticket proceeds < initial prize pool, jackpot may not be won.
  • If jackpot is won, user takes home prize amount. Money from entries up to the initial prize pool size is added to LPs’ principal, and then they contribute another % of their principal.
  • If jackpot is not won, money from entries is shared to LPs such that
    • Preferred approach - rest of doc/examples use this approach: Their principal and stake remain at their target risk allocation %.
    • Alternate if easier to build - not covered in doc: The proceeds only increase their principal

Prize pool details

  • LPs choose the level of risk they’re willing to take, with minimum of 1% and max of 100%
    • Recommended range is 5-20%.
    • We have a minimum because we don’t benefit if they deposit into our contract and do nothing. The maximum is at 100% since retail may want to farm airdrop too, and want lower variance than the lottery itself.
    • Eg. Deposit $1000, select 10%. $100 is at risk at a time for lottery pool.
  • Users can buy lottery tickets to win the jackpot. It is neutral EV since they get a % of lottery tickets depending on size of jackpot. Users cannot get refunds on tickets.
  • Prize pool grows slightly when no jackpot is drawn, and decreases slightly when jackpots are drawn.
  • LPs can submit a change to their stake %, add or remove their principal or stake %, prior to a lottery commencing. All state changes take place between when the lottery draws and the next lottery commences.

Points:

  • Our points program rewards users for deposit liquidity into our contract, generating native yield, as well as building large jackpots.
  • At the end of a season, these points claim 80% of native yield and 51% of our Blast developer airdrop.
  • Users earn points immediately when they buy lottery tickets. By granting these immediately, they are able to go play mini-games instead of waiting daily. Users come to use primarily to win the lottery, so they get minimal points for buying tickets.
  • LPs deposit money and commit a small fraction to serve as a guaranteed jackpot. Since jackpot size is most important to attract users to buy tickets, LPs get significant points for the amount as risk (stake), with minimal points for the amount that is not at risk (principal).
  • Points are calculated by multiplying $ amount deposited into contract * time * multiplier
    • $
      • 1 point is awarded for every 0.001 ETH that’s locked in our contract for 1 day
    • Time
      • At risk for jackpot only starts counting when money is actively at risk.
      • Principal and user ticket entries start counting immediately. Eg. If you deposit 1 ETH principal at noon and lotteries run at midnight, you get 500 points for the remainder of the day.
    • Multiplier
      • At risk for jackpot is 10x multiplier
      • In the principal is 1x multiplier
      • User entry is 1x
‣

Examples

GTM

Launch points multipliers

To incentivize early adopters to provide liquidity and buy lottery tickets, we are providing additional incentives for the first month.

This is the points calculation for LP’s at risk stakes:

Raffle #
Launch bonus multiplier
Multiplier for money at risk (staked)
Total points per 0.001 ETH per day
Daily Raffle 1
5x
10x
50
Daily Raffle 2
4x
10x
40
Daily Raffle 3-7
3x
10x
30
Daily Raffle 8-14
2x
10x
20
Daily Raffle 15-30
1.5x
10x
15

This is the points calculation for raffle tickets bought and LP’s principal:

Raffle #
Points multiplier
Multiplier for tickets bought or LP principal
Total points per 0.001 ETH per day
Daily Raffle 1
5x
1x
10
Daily Raffle 2
4x
1x
8
Daily Raffle 3 - 7
3x
1x
6
Daily Raffle 8-14
2x
1x
4
Daily Raffle 15-30
1.5x
1x
3

Long-term

This approach works in the short and medium term to attract liquidity providers, since we expect Blast to continue their developer airdrop for 1+ years. Blur continues to offer airdrops today, over a year post-launch.

In the long-term though, if the developer airdrop is reduced or the mechanics change, LPs may move their liquidity somewhere else that offers higher yields. My thinking on this is:

  1. Would be great to have this problem - we have a product that retail and LPs use, and the reducing airdrop is what affects us
  2. We could provide liquidity ourselves - from the airdrop we get, we can be our own LPs to ensure there’s always something in the pool
  3. There are many ways to monetize, and provide these earnings as yield - the frontend (website/telegram bot) can charge fiat onramp fees or swap fees, and this can be returned to points holders/LPs to supplement yield and provide reason to keep liquidity here

Ultimately, I see this Blast airdrop farming phase as the GTM to attract liquidity, such that we can build a consumer product where crypto is under the hood.

If we can succeed with Blast users and LPs, I’m confident we’ll be able to make it work beyond.