Better POOL Tokenomics through gPOOL, Staking, Prizes, and Liquidity

Better POOL Tokenomics through gPOOL, Staking, Prizes, and Liquidity

POOL tokenomics have taken a backseat since the launch of PoolTogether V4; the DAO has focused entirely on the product experience. While this focus has been great for our core product, the POOL token holders haven’t been having any fun. The old V3 POOL prize pool is on Ethereum, so for many it has become unusable. POOL cannot be used to vote on sidechains and L2s. POOL is stuck!

Let’s make POOL fun again.

This plan aims to:

  • Enable POOL voting on Polygon and L2s
  • Offer POOL staking
  • Build hype with a new POOL prize pool
  • Make the price durable with deep protocol-owned liquidity

I believe that, in unison, these mechanisms will make POOL much more engaging.

Enable POOL Voting on Polygon and L2s

As of today, PoolTogether V4 liquidity is largely on Polygon. The sidechain dominates the prize pools, having over $23m while Ethereum lags far behind at about $2m. Currently, we are using the default Polygon token bridge for POOL. This is convenient, but it means that POOL tokens are locked in the bridge contract on Ethereum. Those tokens cannot vote. Our Polygon users should be able to engage in governance!

If we can delegate the voting power of bridged POOL tokens, then those holders can signal their vote. The votes will be delegated to a multisig, who acts on behalf of token holders. It’s centralized, but its an easy short-term solution to our multichain voting problem. Eventually we’ll be able to move governance to a zk L2.

We can delegate the voting power of bridge POOL by introducing an intermediary token: gPOOL.

gPOOL

gPOOL is a token contract that lives on the Ethereum network. Users deposit POOL to mint gPOOL, and can withdraw POOL by burning gPOOL. The exchange rate of gPOOL to POOL is always 1:1.

Governance will own the gPOOL token contract and delegate the voting power of held POOL to the executive multisig. This means that holders of gPOOL, or its derivatives, can have real voting power.

We can bridge gPOOL using the default ERC20 token bridges, and the bridged tokens and any derivatives can be used to vote using a Snapshot space.

gPOOL Staking

If users stake their gPOOL they can earn POOL emissions. By depositing into the gPOOL they are effectively committing their POOL as voting power, so we reward them.

Starting February 2025, governance will be able to mint 2% of the total supply per year. This means that we can support a 2% inflation rate indefinitely.

A staking contract means that we now have a native POOL yield source.

V4 gPOOL Prize Pool

To create even more excitement around the POOL token, we can create a V4 POOL Prize Pool. This pool could be a HYPE machine. We can use gPOOL staking as the yield source and subsidize prizes to bootstrap it. Once we have the DPR, we can have infrequent MASSIVE prizes.

Imagine that:

  • The prize pool attracts $2.5m in liquidity
  • The DPR is 0.03% for a daily draw (~10% APR)
  • We’ve subsidized the prizes by adding $1m in POOL

We could have a prize distribution like so:

Prize Size Approx. Yearly Count
$100,000 0.2500
$8,333 3.0000
$2,083 12.0000
$521 48.0000
$130 192.0000
$33 768.0000
$16 3072.0000
$4 12288.0000

This could create hype, and as demand for POOL increases we can turn the prize down so that it stays the same USD value.

Since the Prize Pool holds gPOOL, we can count V4 POOL Pool tickets alongside gPOOL so that users can still vote.

In order to ensure that winners have exit liquidity, we can take some steps to provide…

Protocol Owned Liquidity

The above staking mechanism and prize pool are intended to create demand for the POOL token. However, POOL liquidity is extremely shallow right now. POOL cannot be bought or sold without impacting the price significantly.

To make sure users can get POOL, I propose we supply a significant amount of POOL to a Uniswap V3 POOL/USDC pair. We would supply such that:

  • Governance is supplying purely POOL tokens (a sell wall)
  • The price range is set slightly below the current market price, to entice early adopters to buy POOL. This will create a cushion of USDC that allows winners to exit, if they desire.

For example, let’s say we create a POOL/USDC position like so:

  • Starting price of POOL at 2 USDC
  • Min price at 2 USDC, max price at 50 USDC (approx. our ATH)
  • Supply 1,000,000 POOL

If POOL was arbitraged until it hit the current market value of $3.10, then we’d effectively be selling POOL for USDC and create a cushion of approximately $800,000 USDC (judging by the Uniswap position). This would create an extremely deep market that would provide winners with exit liquidity and stableize the price. The protocol would also earn trading fees.

Summary

I think we need to create volume and demand for the POOL token. It needs more utility. However, to support this added utility we need to provide deep amounts of liquidity. In tandem I believe these will improve the POOL token position.

I invite people to share their thoughts! This is a combination of a number of ideas, so we’ll need to break them up. I think it’s important to present them as a coherent plan that works together.

References

This post is a synthesis of ideas both new and old:

RFC: Enable POOL voting on L2s and non-Ethereum L1s
Tuna’s POOL Stimulus Plan
Gonbatfire’s POOL Tokenomic Reactivation Plan

22 Likes

This proposal seems like a solid step in the right direction. My one request is that we at least consider the V4 gPOOL Prize Pool subsidy to be in USDC initially. I believe POOL to be undervalued and don’t want to deplete our treasury POOL too much at current price when we can get more value out of it later. This can allow POOL demand to overcome supply and the winners would have the option of cashing in their winnings for POOL if they choose. I look forward to being able to migrate my POOL. :slight_smile:

7 Likes

The Uniswap V3 position is designed to be that exit liquidity.

I think it makes way more sense for the default action to hold POOL, rather than having them exit with USDC from the treasury.

Exit should be an option, not the default

6 Likes

Thinking further on that- imagine if the pair in Uni was USDC ticket <-> POOL

Then the liquidity would be sponsoring the USDC pool and providing exit liquidity for POOL holders.

9 Likes

Oh boy I’m so excited about gPOOL, finally voting power :sob: and V4 gPOOL with a rock solid gPOOL staking as a base sounds good to me and plenty sustainable!

Now, there is something I have trouble understanding and would appreciate if someone can shed me some light:

What would prevent people not interested on holding POOL (maybe ones who don’t even use PoolTogether at all) to buy the discounted POOL and then dump it on the market? don’t we need a locking mechanism to prevent that?

5 Likes

Yes- I kind of glossed over that.

We’d need to look more closely at the existing Uni v2 market.

Pure arbitrage would be buying it on V3 then dumping it on V2, so it would crush the V2 price until they’re at parity. I based the $800k off of the Uni V3 ticks, but in reality it will be far, far lower and push the price downward. Like a token sale. My numbers are extremely idealistic :sweat_smile:

Edit: we’d likely want it much tighter than I mentioned. Gov could supply some initial liquidity too.

3 Likes

With the recent boom of L2s this is incredibly important. We want those with even a single POOL to be able to vote. There are tons of small POOL holders who probably don’t see the value in depositing in the POOL Pool due to high gas costs and their votes are lost! This will help ease that pain point. I found myself keeping a lot of POOL idle when gas prices were too high to justify depositing into the POOL pool.

This is a great way to incentivize people to vote. It doesn’t stray too far from what we already established with the V3 POOL Pool contract so that’s good! We’ve seen that work well with the POOL rewards and snapshot votes. There is a good foundation there, even if I would have liked more voter participation from those already deposited…

I’d love the V4 gPOOL Prize Pool right about now. It’s nice that V4 POOL Pool tickets can vote as well. I would migrate my entire V3 stack to V4 as soon as this launched just to sunset my V3 usage. I feel sidelined right now, primarily using V3.

@Brendan Could you outline how this would look while it’s all implemented? At least from a user standpoint for someone who holds the bulk of their POOL on L1? What constitutes a default ERC20 token bridge? For example, I’ve been using Hop and Across to bridge to Optimism and Arbitrum. Seeing the outlined process modeled in the current state of L2 would be nice!

I am very excited to be a POOL holder after reading the 2022 PoolTogether Roadmap and this awesome POOL tokenomics post. This basically encapsulates everything I felt has been lacking with POOL and we’ve addressed it with input from the community as well as the core team’s nudge in terms of implementing all of it! It’s super nice to see that synergy between the community and team.

5 Likes

Had another thought!

If users bought into pools through Uni V3, then governance could move funds around.

Basically:

  • gov supplies USDC <-> ticket liquidity
  • user spends USDC for USDC tickets.
  • gov rebalances position by minting more tickets
  • gov supplies USDC Ticket to POOL pair

This allows users to move in and out, for POOL holders to move in and out, and will allow users to swap pools easily.

Funds are mostly held in sponsorship and fees are earned. A user doesn’t need to pay deposit gas either.

Edit: users could also buy into pools with anything; even POOL! Behind the scenes it would just swap.

Users could also swap pools easily

For people who want more pool, we should still have POOL prizes

5 Likes

Yes- when I say “default bridge” I’m referring to existing token infrastructure that Polygon and L2s provide that make it easy to create a new token bridge.

In a nutshell, L2s natively support message passing between Ethereum and the L2. Polygon has a message passing layer built into its consensus algorithm. The “default code” is a contract on the L1 side that holds the L1 tokens, and a contract on the L2 side that mints tokens. The L2 token is therefore a different token! Tokens are moved from L1 → L2 by holding the tokens on the L1 side and minting on the L2 side.

This is why security is critical- the L2 token can be minted by the bridge. This is why bridges are the weak spot. Polygon’s bridge is secured by its validator set (IIRC), although it has far fewer validators than Ethereum (100 vs 10000 in terms of magnitude). A true L2 like Optimism is secured through fraud proofs on L1, so technically it’s as secure as Ethereum.

Bridges like Hop don’t have the power to mint Dai, so they use money markets to incentivize liquidity on either side. They control “hop” versions of the tokens, like Dai and USDC. Money markets on either side allow users to move out of the hop token positions and into the native ones.

In our case, we ARE the canonical asset so we can mint and burn the tokens.

Does that make sense?

3 Likes

It does, thank you for the explanation! Now I’m more aware of what’s actually going on when bridging tokens between all the layers…

I’m seeing Arbitrum and Optimism make optimizations every week so it’s exciting to see PoolTogether jump in on the L2 action! By the time we deploy on them, they’ll be very optimized. They’re already a joy to use, anyway. The zk stuff will be a topic for another day, haha! Baby steps.

3 Likes

I think this is fantastic, but I do have a couple of questions/thoughts. If I am reading this correctly, what you are proposing is:

  1. Greater utility for Pool by giving Polygon Pool holders the ability to vote on chain
  2. Big prize pool for Pool Holders
  3. Liquidity for Pool

Point 1 to me is a no-brainer

Point 2 I don’t exactly understand how this would work:

To generate yield on Pool deposited, won’t you first need to convert it to a currency paying yield? Won’t that in turn put downward pressure on Pool price?

Don’t get me wrong, I love the idea of generating a special pool for pool holders and maybe it’s my inexperience/naiveté, but I don’t understand where the yield comes from.

Point 3 also makes sense to me, but a caution from the world of Fiat trading. Many governments have tried to control their capital pricing/liquidity via their treasury and they have all failed. Whether it was the South Korean Yuan attack, the Mexican Tesebono crisis, the Argentinian peso collapse or any of the other countless examples…short term treasury interventions always lead to long term pain. It is important to consder the policy trilemma when thinking about treasury interventions.

Truthfully, in my opinion, the only real way to increase Pool price long term is to increase the value behind the Pool token itself: TVL. I love the idea of a pool lottery and anything else that more closely links Pool to TVL.

My suggestion is to otherwise think about other utility based things that can drive interest in Pool…some thoughts:

  1. The treasury working group has a large mandate- maximize yield on what will soon be $100 billion TVL safely. A quarterly report on their strategies, findings and understanding of the risks and opportunities of DEFI, gated as an NFT and only accessible to Pool Holders.

  2. The ability for Pool holders with a set amount of pool to create ‘private pools’ amongst only their friends and family with the TVL either managed by the TWG or not. ie…I can get my entire family to put in $100,000 into a pool where the yield is managed by the TWG, but the returns are only available privately to those in my pool/

I mean obviously consumer demand for things like this would need to be validated…but they are thought starters.

So, if I am reading this correctly, my thoughts are:

  1. Definitely yes!
  2. Love it, BUT, how is yield being generated to this prize pool?
  3. The sentiment is bang on, but providing liquidity via the treasury comes with significant risk. I believe the only way to really provide liquidity is to generate excitement around the protocol, its growth and it’s future.
  4. Start thinking about some incremental utility value that can be driven to Pool Holders

I love these discussions, I find them extremely fascinating…

5 Likes

Great post, Brendan, and for sake of this response, I’m only going to focus on the Protocol Owned Liquidity piece, as I’ve thought about this in relation to USDC tickets and building liquidity so the TWG could pursue a ticket listing.

Uniswap V3

While I think Uniswap V3 is a great innovation in DeFi, the IL for volatile pairs on Uni V3 can be quite high due to the nature of V3 positions. And we would need to provide shallow liquidity along the full range to prevent someone from manipulating the price. Brendan and I had a brief discussion about his yesterday. However, the price only jams if no one else provides liquidity in a range that is outside of the existing band. While security issues in relation to price source would be one concern, I do think that the IL would be hard to offset without active management using products like BarnBridge’s SMART Alpha or Squeeth (Squeeth is designed for ETH pairs), which allow users to hedge against smart volatility.

While there are Uni V3 LP managers, IL has proven quite severe for users with almost half of LPs being unprofitable. There’s a CoinTelegraph article with a link to the study in reference with more detail.

Visor Finance, which has since rebranded, has suffered several security events. Popsicle Finance suffered as exploit in August 2021. I’ll include the associated statements/articles in reference to the losses. There are also entries in Rekt but I will not cite them here. (A note: I hold the view that Rekt is akin to the Perez Hilton of DeFi publications due to the opinionated tone and nature of the writing. I do, however, understand many people view Rekt as an authority on loss events in DeFi.)

Visor Finance Beta hack.

Visor Finance November spot price exploit.

vVISR staking contract exploit.

Popsicle Finance August Exploit

Lots of things, then, to consider about Uniswap V3.

Balancer V2: Smart Pools

While discussing the Stablecoin Asset Allocation approaches with members of the Treasury Working Group, I suggested a Balancer Pool on Ethereum that held interest-bearing forms of USDC, USDC V4 tickets, and USDC.

For example: USDC / nUSDC / aUSDC / cUSDC / ptUSDC

Where:
nUSDC = token representing liquidity provided to Notional Finance’s fCash AMM
aUSDC = interest-bearing token for supplying USDC to Aave V2’s lending market
cUSDC = interest-bearing token for supplying USDC to Compound’s lending market
ptUSDC = ticket for depositing into V4 prize pool

Any of these could be substituted for other interest-bearing forms of USDC or other interest-bearing tokens. The benefit of such a pool: we can create liquidity for ptUSDC while also putting treasury assets to work! The protocol would earn a blended interest rate from the interest-bearing tokens + swap fees for trades routed through that pool. Now, if we did this, we could mention this in the docs and highlight other places while being mindful that we can’t list in the app (regulatory implications).

There’s one piece. I haven’t forgotten about POOL liquidity.

Because Balancer allows users to create pools with weights other than 50/50, we could create a liquidity pool with, say, 60% POOL / 40% USDC. Using different weights would allow the protocol to somewhat minimize IL. The 80/20 pools are described as, “a happy medium when balancing liquidity an Impermanent Loss mitigation” in the Balancer docs.

Let’s say we do both these things: we now have:

USDC / nUSDC / aUSDC / cUSDC / ptUSDC at a 20/20/20/20/20 weight

and

POOL / USDC at a 60/40 weight

Balancer using their smart router to find the best price for trades, so someone trading POOL for ptUSDC would be routed through the two pools so a user could sell POOL for ptUSDC. On the other hand, someone could sell aUSDC for POOL, and now our pools are earning us trading fees, we’re giving users different ways to trade in and out of pools, and we’re reducing gas costs for users to migrate in and out of interest-bearing tokens without needing to withdraw assets and deposit assets in V4.

Allowing users to swap from aUSDC or cUSDC into ptUSDC would help onboard more users, if we were to pursue a way to grow TVL on Ethereum or if we were to change prize tiers on different networks, as outlined here.

Users could add liquidity to these pools as well. At this point in time, Balancer would need to work with PoolTogether to create such a pool, but it I believe this would be something Balancer would be interested in helping our community develop, given we’re looking for a long-term liquidity solution. I’ve reached out to the Balancer team to see if this boosted pool + cross pool liquidity solution is viable one but sharing to further the discussion.

Note: the interest-bearing assets in question are just examples for the purposes of this post.

We could also approach Balancer about providing BAL rewards for the POOL / USDC pool which would act as an incentive for users to supply USDC and/or POOL to the pool as well.

Other considerations for POOL liquidity

I’ve seen discussion about whitelisting POOL on Bancor, and we’re currently participating in the Ondo + Fei LaaS program. I’d like to wait and evaluate the outcome of the LaaS program’s benefits before commenting on that. The most important consideration here: we want deeper liquidity for POOL in DeFi and fragmenting liquidity while the token price is low could give us shallow liquidity across multiple pools. On the oracle side, we could use a Chainlink oracle and multiple pools would make price manipulation less likely. Slippage would become the issue for larger trades, which could be POOL → USDC or USDC → POOL.

I’m always open to other approaches, but I really do think that Balancer’s pools would be a great solution for PoolTogether, given the various use cases available to folks creating pools on Balancer.

@Brendan I know you know most of what I’ve written but I outlined the case for other readers :slight_smile:

Looking forward to your thoughts :ocean: :trophy:

9 Likes

Love this, but I think some of the fees earned from protocol owned liquidity could go to gPOOL holders. Would be nice to provide rewards from somewhere other than inflation.

3 Likes

This. If 100% of gPOOL is staked then that would mean that effective yield would be 0%, so other sources of revenue besides inflation are a must

2 Likes

Thanks everyone for your thoughts!

I’m going to group some of the questions, because I think it’s helpful to view it together.

gPOOL Staking Rewards

Governance can mint 2% of the POOL supply per-year starting in February, 2025. This means that governance can create POOL tokens out of thin air. The current supply is 10m, so the first year governance can mint 200,000 POOL. The next year governance can mint 204000, and so on.

By giving stakers the newly minted tokens, we can allocate ownership to the people committed to the protocol. It’s highly unlikely that 100% of tokens will be staked, as money markets will need to hold gPOOL. Ideally, the protocol holds liquidity in money markets so that it can capture both interest and trading fees. The protocol can hold liquidity in a set of Uniswap pairs or in a Balancer pool like Brave described.

Users can redeem their gPOOL through money markets to capture value. The protocol owned liquidity would allow them to exit. Staking would allow them to earn gPOOL and liquidate it.

Keeping liquidity in money markets is efficient and has benefits:

  • Protocol earns trading fees
  • Creates deep liquidity for POOL buyers
  • Creates deep liquidity for POOL holders wishing to exit
  • POOL “redemption” price (market rate) is automatic and driven by the market

Protocol Owned Liquidity

Thank you @BraveNewDeFi for such a comprehensive post; you’ve been thinking about PoL for some time and it’s great to see some of your insight. You mention that I probably know most of what you’ve written- but I don’t! I don’t have practical experience with Balancer so I appreciate the deeper insight.

I selected Uniswap because I felt the V3 “sell wall” mechanism was particularly relevant to our needs; we’d supply POOL and effectively convert it to USDC as the market purchased it. I don’t think impermanent loss is a problem in this case- I see it as PT providing POOL tokens to the market. For example, if we provided a range of $2 - $50 and the market bought all the way up to $10 then IMO the protocol simply sold POOL all the way up the curve.

However, long term you’re absolutely right in that for the best performance the position should be actively managed. I haven’t thought about how we would manage the position long-term.

The other thing I like about Uniswap is how well-known and generally well-understood it is. On Polygon it has USDC volumes of $50m per day, vs $22m on the Balancer stablecoin pool. Ideally we hold liquidity where the biggest markets are!

The Balancer V2 approach you describe is really interesting.

  • It can hold a variety of stables (if we want) and POOL tokens so that users have liquidity
  • Trades don’t need to be routed through multiple pairs; they occur within the pool itself. We wouldn’t need to setup a chain of pair as with Uniswap. I’m not sure about the actual efficiency trade-off, however, as I don’t know Balancer’s curve.

Something that I wonder, however, is whether it’s even worth it holding a yield-bearing asset in a pool; whether Balancer or Uniswap. If the asset is unique, then it’s illiquid as far as the AMM is concerned. Since it doesn’t generate fees and is essentially dead liquidity, why hold it in an AMM? And for more advanced strategies, they may be too sensitive to be put up in a money market. For example, if we recursively farm Aave to generate an APR of 10% or higher it would make more sense for the protocol to hold those funds directly. We are not going to trade that position. To optimize yield we may be better off using custom strategies and hold them safe in the protocol.

I 100% agree. We need to concentrate the liquidity we have in one place. So rather than holding multiple stables, I think it really comes down to providing liquidity in a USDC / POOL pair. Or- if Fei is ready for L2 in a FEI / POOL pair.

Chainlink requires $5m / day in volume before setting up an oracle. We’ll need to rely on AMMs for the time being, unfortunately.

4 Likes

Alright everyone, I think it’s a good time to summarize the discussion.

We have strong consensus around gPOOL. We will wrap POOL as gPOOL and bridge it to L2s and sidechains so that users on those chains can vote with real power. Regardless of our future strategy, this is the first step we need to take.

gPOOL can be built without any governance actions, although we may wish to supply gPOOL through protocol owned liquidity.

It seems that people like the idea of protocol owned liquidity, but we need to determine what our strategy is. @BraveNewDeFi and I discussed it a little here, but it’s a much bigger conversation that should be broken out into its own thread. It’s also something we can tackle once the gPOOL infrastructure is set up.

We’ll also need to continue conversations around POOL staking and the POOL pool. We need to reach a stronger consensus around token emissions.

6 Likes

Could we use some of the stables or swap DeFi tokens to stables from V3 to inject protocol owned liquidity?

1 Like

For sure. This is what we need to discuss: the PoL strategy.

stake $POOL get another token is better, such as stake $POOL get $SWIM?
it is agile, we could use $SWIM build our ecology.

4 Likes