The Prize Pool Network
PoolTogether has gone through four iterations. Each iteration has supported more assets:
- The first version accepted Sai
- The second version accepted Dai and USDC
- The third version introduced a prize pool factory, so we had many prize pools for many different assets.
The latest version of PoolTogether, version four, significantly improves prize distribution. We can offer a virtually unlimited number of prizes. However, we currently only accept USDC.
We could create more prize pools, but the infrastructure is complicated. Doing so would be extremely cumbersome. PoolTogether still treats each asset separately: if you deposit USDC, you win USDC. Prize liquidity would not be shared between assets, so new assets would have to bootstrap their liquidity.
Protocols grow by accepting many different assets. USDC is often only about 20% of a protocol’s TVL. PoolTogether can unlock significant growth by accepting more types of assets. Users want to hold their favourite tokens; not just stables.
The Prize Pool Network unifies prizes across all prize pools; allowing us to offer a massive grand prize and easily on-board new assets.
This new model introduces three major changes:
- A unified prize model: no matter what asset you deposit you will have a chance to win the same prize as everyone else.
- Yield is sold for prizes: To ensure that we have prize liquidity denominated in a single token, the protocol will swap the yield tokens for prize tokens.
- Odds are distributed by staking: Odds will be distributed across the prize pools through POOL staking.
Let’s dive in!
PoolTogether Primer
Before we begin, let’s review two important concepts: prize pools and prize distributors.
Prize Pools
A “prize pool” is a pool of assets deposited into a particular yield source.
Users deposit funds into prize pools to win prizes. Their chance to win is proportional to their deposit size. Prize pools can be entered and exited at any time. There are no fees, so users will always get back their full deposit. Prize pools are non-custodial (as before), so only users can move their funds.
Prize pools are specific to an asset and yield source. For example, we may have an Aave V3 USDC prize pool and an mStable USDC prize pool. We aren’t limited to stablecoins either; our prize pools could accept any token that generates yield, such as wBTC and wETH.
Prize Distributors
Each day there is a prize “draw”. The draw encodes the prize distribution, which contains thousands of prizes. Users claim their draw prizes from the Prize Distributor. Prizes are all denominated in the same token, but there are differing tiers of prize rarity and size.
Unified Prize Model
The prize pool network unifies the prize model such that users will be eligible to win the same prizes no matter what asset they deposit. Each prize pool will use the same Prize Distributor. This means that:
- Prize liquidity is shared among all prize pools, allowing us to offer a single massive prize
- Infrastructure is much simpler, allowing us to easily on-board new assets.
Single Massive Prize
By combining the yield from all prize pools we can have a single massive prize. For example, let’s say we’ve accrued yield across a variety of prize pools:
Asset | USD Value of Accrued Yield |
---|---|
USDC | $2000 |
DAI | $1500 |
wETH | $500 |
wBTC | $350 |
CRV | $80 |
Total | $4430 |
Individually the pools wouldn’t have a very large prize. However, when combined together the prize is much more compelling.
Note: there is more than one prize. The $4430 would be broken up into tiers of different rarity and size.
Easily On-board Assets
Unifying the prizes simplifies the addition of new assets because there is no need to bootstrap prize liquidity. By allowing prize pools to tap into shared liquidity they get instant access to a prize. In the above example, we see that the CRV prize pool only generates $80 in yield. If we weren’t sharing prize liquidity, then that pool would only have an $80 prize. When the pool was first created it wouldn’t even have a prize!
Which Token to use for Prizes?
An open question for the new network is which token should be the prizes be denominated in? The arguments for a variety of prize tokens will be presented in a separate post. It’s important that we have an open discussion to discuss the merits of each token so that the PoolTogether community can come to a consensus and move forward.
Regardless of which token we use, the same mechanics will apply: users win prizes, yield is liquidated for prizes, and POOL holders stake to distribute odds.
In the rest of this post you’ll see the term prizes and prize tokens. This is intended to refer to whatever token we decide to use.
Yield is Sold for Prizes
We would like to denominate the prize in a single token, but we are accruing yield in all sorts of tokens. This is why we liquidate the yield tokens for prize tokens. The prize tokens are then fed back into the prize distributor.
Users will be able to buy the yield tokens, but we expect that eventually bots will consume any available arbitrage.
Edit: Liquidator Algorithm is now posted, including explanation, diagrams and graph
There will be a follow-up technical post that outlines the details of the liquidation algorithm.
Distributing Prizes
No matter what asset a user deposits they will have a chance to win the same prizes. However, assets have different yields. Some assets will have a higher APR, while others will have a higher TVL. How can the protocol fairly distribute the odds of winning across deposits?
POOL token holders stake on prize pools to allocate odds. In return, the stakers earn rewards.
Staking on Gauges
Each draw has a total number of picks. These picks form the “probability space” of the draw. Each pick is a chance to win. Technical details here.
Staking determines how picks are distributed across prize pools. The picks allocated to a prize pool are then split among the depositors in that pool.
The number of picks that a prize pool is allocated depends on the size of its stake:
fraction of picks = staked amount / gauge stake total
The gauge stake total
is a number that is manually configured by governance. This number allows governance to ensure that the odds are fairly distributed across chains as well as across pools. If a prize pool gauge has 200 POOL staked on it on Optimism and a prize pool on Polygon has 100 POOL staked on it, then the Optimism prize pool will have twice as many picks as Polygon.
The gauge stake total
also allows governance to control the prize frequency. By increasing the number, prizes will become less frequent as pools will receive a smaller fraction of the total picks. This gives governance the option of configuring very large prizes that occur infrequently. Imagine we have a $1,000,000 prize that occurs once per year! This will give us so much more freedom when designing the prize distribution.
Staking Rewards
When users stake on prize pool gauges they also receive rewards: stakers split a portion of the proceeds from yield sales for that prize pool. The portion for the stakers is the staker cut. Governance will manually set the staker cut globally across all liquidation pairs.
For example:
- Let’s say someone has staked 100 POOL on a prize pool. The total staked amount on that prize pool is 300, so they have 33.3% of the staked amount.
- While the user is staked, the prize pool liquidates yield and earns 1000 prize tokens.
- The staker cut is 10%, so 100 prize tokens are distributed to the stakers. The staker in question can claim 33.3 prize tokens
Like prizes, users will need to manually claim their staking rewards from time-to-time. We’ll make sure the action can be batched alongside withdrawal, and that they can claim for multiple pools.
Incentives Balance Odds
Staking rewards should naturally balance the odds. The more yield a pool gets, the higher the APR is for stakers. Assuming stakers seek the highest APR, the effective staker APR should be consistent across the prize pools. This means that the staked amount will be proportional to the total prize pool yield:
Assuming:
- Prize: $1,000,000
- Gauge Stake Total: $500,000,000
Asset | Deposits (USD) | APR | Yearly Yield | Staker Cut | Staker APR | Staked POOL | Odds |
---|---|---|---|---|---|---|---|
ETH | $5,000,000 | 0.38% | $19,000 | 10.00% | 5.20% | $36,538 | 0.01% |
wBTC | $23,400,342 | 1.00% | $234,003 | 10.00% | 5.30% | $441,516 | 0.09% |
USDC | $35,000,000 | 2.26% | $791,000 | 10.00% | 4.90% | $1,614,286 | 0.32% |
FEI | $10,000,000 | 2.29% | $229,000 | 10.00% | 5.00% | $458,000 | 0.09% |
Total Odds: | 0.51% | ||||||
$1,273,003 | Daily Prizes: | $5,101 |
Notice how the Fei and wBTC prize pools have different TVL and APR, but the same odds; this is because their yield is approximately the same, but stakers will make sure their returns are optimized across the prize pools.
Flow of Funds
Let’s summarize the above changes in a flow of funds diagram:
Here you can see how tokens flow through the protocol:
- Users deposit funds
- Funds generated yield
- Yield is liquidated for prizes
- Prizes are fed into the prize distributor, with a portion going to staking rewards
- Winners claim their prizes from the prize distributor.
V4 Migration
The existing PoolTogether V4 system can be migrated to support the prize pool network. The only changes required are to:
- Swap out the Prize Distributor
- Attach Yield Liquidators to the prize pools
Existing users will not need to move any funds; they can immediately take advantage of the new network.
The prize pool network requires the POOL token for staking, however. The POOL token must be securely bridged to chains on which prize pools reside. This is not the case with Avalanche, so it will not be supported at launch.
Rollout
PT Inc’s tentative rollout schedule:
Date | Description |
---|---|
June 13 | Testnet launch |
June 27 | Audit begins |
July 11 | Production Launch |
In a few weeks PT Inc is going to roll out a prize pool network testnet. This will be an opportunity for the community to try out the new app. The testnet will allow us to work out any bugs and get a feel for the system. We’ll be able to smooth out any rough corners.
Once we’re happy with the contracts, we’ll send them off for audit. We’ll take a full weeklong audit for this new code.
With the smart contracts largely solidified, it’ll be time for us polish the app with the final design and develop our launch plan.
Finally, we launch!
Launch Plan
There are a number of questions that governance needs to decide on before our production launch. I will help coordinate the decision making as we get closer to launch.
In the meantime, it would be worthwhile to start thinking about:
- Which asset should be the prize?
- Which networks to deploy to (Optimism? Polygon?)
- Which networks to shut down (Avalanche? Ethereum?)
- What is the initial prize distribution? (we can do large infrequent prizes now)
- Which assets to launch with (can be all of them if we like)
Which Asset Should be the Prize?
We still need to decide which asset we want to give away. There are basically two front-runners for the asset: POOL and USDC. More on this soon.
Which networks to deploy to?
The new prize pool network requires the POOL token. The POOL token is available on Polygon on Optimism, so it will be easy for us to launch on those chains.
However, the POOL token is not available on Avalanche. We will not be able to deploy the network to Avalanche.
Another aspect to consider is Aave V3: it has not been deployed to Ethereum. It seems having Ethereum L2s is now considered sufficient, so it may be enough to have Optimism.
Which networks to shut down?
In light of the above, perhaps we shut down the Avalanche and Ethereum prize pools.
What is the initial prize distribution?
The new network will allow us to have large, infrequent prizes. The launch is an opportunity to come out swinging with $100k+ prizes that occur once a quarter, or six months etc.
It would be worthwhile for the Treasury Working Group to start thinking about the prize distribution. Instead of considering how to divvy up the interest accrued over one day, we can consider much longer timelines. How could we divvy up interest accrued over six months?
What assets to launch with?
With the latest iteration of the prize pool network code, it’s becoming clear that we will incur very little overhead from launching new pools. We may just want to launch with support for all assets on Aave. Nonetheless, it’s worthwhile thinking about which assets we want to promote.
The assets that have POOL staked will be the ones with the highest odds of winning; so token holders can coordinate by staking on the best assets.
Summary
The new prize pool network will allow PoolTogether to scale indefinitely; incorporating new assets and chains without incurring significant overhead.
POOL token holders will be able to engage and govern the system in a decentralized way, and incentives will ensure the protocol is balanced.
We’re incredibly excited about this direction for the protocol, and believe this can take us to $1b+ TVL.