[RFC] PTBR-15: G9 Software Inc. <> PoolTogether

[RFC] PTBR-15: G9 Software Inc. <> PoolTogether

Start Date Jan 1st, 2024
Duration 6 months
Budget $684,050 USD

:camera_flash: Snapshot Vote

G9 Software Inc. is a software consultancy specializing in web and blockchain applications. This proposal offers deliverables and IP in exchange for compensation.

This is an updated proposal from G9 for 2024; the first one failed. We listened to POOL token holders and incorporated the feedback we received. The deliverables detailed below will allow PoolTogether protocol to fully decentralize and create a path to sustainability.

This will be the last major PTBR submitted by G9. After this, we are open to a retainer contract for maintenance and hosting if the community desires.

Goal

Our goal is to help PoolTogether become a permissionless, decentralized, sustainable protocol.

Weā€™re going to accomplish that by making the protocol fully self-contained, easy to deploy, and deliver value to the POOL token.

Deliverables

There are a number of ways that we want to improve the prize experience:

  • Adjustments to the Prize Pool
  • New 4626 Vault Factory
  • Re-launch on Optimism, launch on Arbitrum, Ethereum and Base
  • Migration App

To ensure the protocol is sustainable:

  • POOL buyback and burn mechanism
  • Localized RNG
  • Prize Pool Launch Script

Finally, we will host and maintain the open source apps weā€™ve previously delivered.

Adjustments to the Prize Pool

  • wETH as the prize
  • Improve tier adjustment algorithm

wETH as the Prize

Switching the prize asset to wETH makes it easy for winners to swap back into whatever vault asset they have.

Using wETH instead of POOL reduces the amount of liquidity coordination and custom mechanisms needed for the optimal prize experience.

Adjust Tier Algorithm

The prize pool needs some adjustments to ensure that tier changes occur smoothly and efficiently.

  • Daily tier liquidity needs to be reclaimed upon contraction
  • Tier count change should be limited to one up or down.
  • Reduce the number of dust prizes

New 4626 Vault Factory

We will build a new Vault Factory that produces vaults that are less restrictive with respect to the 4626 spec. We will actively test the vault to ensure it is compatible with the Yield Daddy wrapper for Aave V3. The vault will likely be compatible with other 4626 sources and we will test against several other yield sources, but we cannot guarantee it will be compatible with all 4626 yield sources.

The current Vault Factory produces vaults that have a limitation that makes them unable to scale with Aave.

POOL Buyback and burn

We will build a POOL buyback and burn mechanism that burns a portion of the reserve in the Prize Pool. The remaining portion will be spent on the RNG.

A protocol needs resources in order to evolve and grow. PT is spending stables right now because they are highly liquid assets, but there is a finite supply.

The most natural next step for governance after the stables run out is to spend the 4m+ POOL tokens in the treasury. This is what many other protocols do; they use their own tokens. Ajna, Uniswap, and Optimism all use their own tokens as incentives.

Peopleā€™s biggest concerns about giving away POOL have been around dilution; they donā€™t want the token to be inflated.

Current Mechanism

PT V5 has the reserve mechanism that serves as a back-stop for prizes. On a long enough time frame, the reserve should grow indefinitely (barring RNG costs). However, this isnā€™t intuitive to most people. Also, the tokens are not guaranteed to be burned; a black swan event where two grand prizes are awarded is theoretically possible, which means the reserve isnā€™t strictly locked.

Buyback and Burn

We can make the burn explicit by using the reserve to buy back and burn POOL. This creates room for governance to distribute POOL as incentives to builders

This has the added advantage of benefiting the POOL token everywhere; if the tokens are burned on Optimism, then governance on Ethereum can take advantage of the supply dip. Governance can distribute POOL as incentives to builders.

PoolTogether can launch on any number of chains and governance on Ethereum will benefit from the supply changes.

Visualization

By design, V5 uses a portion of the total yield earned on deposits to fund incentives which keep the protocol running autonomously.

For example, Liquidation rewards go to bots swapping yield into WETH With these proposed changes we are aiming to lower incentive costs. In the case of Liquidation Rewards, we would decrease costs by using WETH instead of POOL as the Prize Asset.

Localizing the RNG lowers costs for RNG Rewards Eliminating dust prizes also lowers costs for Claim Rewards.

By lowering these costs and adjusting how the prize backstop works, we can fund an explicit POOL Buyback & Burn program, which would have the benefit of strengthening the POOL token.

As a result of these proposed changes, the vast majority of the yield on deposits would be converted into WETH and delivered to depositors as prizes. We believe this addresses a lot of technical and liquidity issues we faced before.

Example Numbers

Letā€™s calculate what the burn rate would be at different levels of TVL. The numbers assume that 80% of the reserve is used for buyback and burn. This is just an example to demonstrate the magnitude of the burn; final numbers TBD.

TVL APR Yearly Reserve Yearly POOL Burn
$5,000,000.00 5.00% $37,234 $29,787
$10,000,000.00 5.00% $61,404 $49,123
$50,000,000.00 5.00% $261,194 $208,955
$100,000,000.00 5.00% $522,388 $417,910
$200,000,000.00 5.00% $909,091 $727,273
$500,000,000.00 5.00% $2,272,727 $1,818,182

Here is the original spreadsheet.

Note: tier details have been hidden to keep things simple.

Localized RNG Mechanism

We will localize the RNG mechanism so it uses an RNG native to the chain. This will lower costs significantly and enable more POOL to be burnt.

Previously we were bridging the Chainlink VRF result from Ethereum. If we are going to burn the reserve, then this approach wonā€™t be feasible.

Prize Pool Launch Script

We will create instructions and a script that allow a developer to easily launch a PoolTogether Prize Pool deployment on EVM-equivalent chains.

This will enable the protocol to easily incentivize anyone to launch on new chains or L2s.

Launch Parameters

The launch script will have many configuration parameters; some of which apply to all chains, and others that depend on the target chain.

For example, global parameters include:

  • Tier shares & reserve shares (determine the amount allocated to reserve)
  • Buyback and burn percentage (determine percentage of daily reserve to use to buyback and burn POOL tokens).

Chain specific parameters include:

  • Draw period (how often a draw occurs)
  • POOL token address
  • Prize token address

These lists are not complete, but illustrate some of the more important params.

Generation will configure the launch script with our recommended global parameters.

Launch on Optimism, Arbitrum, Ethereum and Base

We will use the launch script to (re)launch the protocol on Optimism, Arbitrum, Ethereum and Base. The deployments will include the core Prize Pool, the Twab Rewards and the supporting factories.

New Prize Pool deployments will occur in three steps:

  1. Generation will configure the chain-specific parameters with our recommended values
  2. We will run a Snapshot vote to approve of the deployment parameters
  3. Once approved, we will deploy to the chain

Once deployed, the Prize Pool will be ready for new Vaults. It is expected the community will launch vaults using the vault factory.

Migration App

We will build a web app that makes it easy to transfer balances from PoolTogether V3 and V4 to PoolTogether V5.

The target V5 vaults will need to be determined by the community.

App Maintenance & Hosting

We will host and maintain the following web apps until June 30, 2024:

The apps will be updated so that they display vaults chosen by the community.

Apps will be updated to reflect new mechanics where applicable; for example Cabanalytics can be updated to reflect the POOL burn, and the apps can be updated to reflect the new prize asset.

If the community wishes to switch hosting for Q3 2024, then we are happy to provide guidance to the new service provider.

Timeline

The Optimism deployment will be first. Re-deployment will depend on how quickly we can proceed with R&D and auditing. I estimate best case it will be live by March 1st, and worst case by April 1st.

Deployments on other chains will follow after this release, likely in a bi-weekly cadence.

Support

The Generation team will be available for support all the way through to the end of Q2. We will assist in people deploying vaults, setting up bots, or any other use of the tech that has been built.

Budget

The budget includes the cost of a $52,000 audit by Code Arena.

Amount Denomination
$684,050 USD Stablecoins

:camera_flash: Snapshot Vote

13 Likes

I trust that this budget is necessary to meet the goals outlined and I will likely be voting in favor. I think having these difficult discussions and having the community provide feedback will bring us back stronger and more unified. It sounds like some of the adjustments will make the machine run smoother and I am excited to see dusty prizes cut back. Also glad to have the budget done as a 6 month period so the team can feel secure hyperfocus on building without having to deal with funding midway.

10 Likes

If anyone only reads a few lines in my commentary, read this quote. The Vaults and success on other L2s is on our shoulders. Letā€™s WorkTogether to make it successful.

I truly hope this helps with the comfort level of the team and strategizing of priorities.

I still think this is too lofty of a goal.

My accounting thanks you.
__

Is there a reason to not award the prize and the prize asset? pUSDC as USDC, pWETH as WETH, pLUSD as LUSD, etc.

Iā€™m not a huge fan of the ritual sacrifice of POOL. Albeit I understand where this is headed, Iā€™m not entirely confident that burning is the road to value creation. Scarcity creates value when thereā€™s demand for the resource, right now we are our only demand pressure. We alone cannot induce demand, I am hopeful that value will be acknowledged and thereby realized by other protocols/individuals in the coming months.

Thank you @Brendan and G9 for considering the feedback from the community. We were, are, and will also be passionate about PoolTogether. A level of passion breeds chaos - look at any sports team fan base.

I support this proposal. Iā€™m questioning this proposal after the ā€œresponseā€ to questions

5 Likes

Thanks for the revised proposal

I think having WETH as the prize token is a huge improvement for this protocol. It alleviates any liquidity concerns and makes bot participation a lot more inviting. Shoutout to @BraveNewDeFi for pushing on this change.

I also think reducing small prizes will be an improvement. My calculations show the median prize value of V5 thus far has been 0.76 POOL. It would be great to see simulations of the the proposed prize algorithm impact on prize size. It would be good if the community can have some more insights on what impact the proposed changes will have on ā€œdust prizesā€.

Looking forward to the new vault/vault factory. I think yield sources are the key to PoolTogethers success. The easier they are to plug-in the better.

Like @Taliskye the buyback and burn scheme doesnā€™t excite me as economics for POOL. Iā€™m also generally not optimistic about open source software with a tax parameter. Especially one with a play button deployment. Will this burn rate be a choice made by the DAO or GS?

I will also +1 @Taliskyeā€™s comment about expanding chains. Letā€™s not do that to check a list of boxes, letā€™s be strategic. Deployments should have obvious paths to growth, be it partnerships or incentives.

We really need to get this going by April 1st at the latest.

Do we know the RNG solution? Thatā€™s a pretty significant deliverable and knowing more would be good.

I thought the migration app development was being funded by PT Inc?

I would like to know GSā€™s perspective on potential OP Retro PGF. PoolTogether will likely qualify for the next round which could be a significant source of funding. Do we agree that any such funding is used to continue development and growth of the protocol?

Is there an ETA for the ImmuneFi bounty to be posted? In the event more security payouts or audits are needed on this protocol who will be responsible for covering those costs? From what I have witnessed at other protocols an ImmuneFi bounty brings a lot of new eyes to the code. This is good but can also be a surprise to the balance sheet.

This sounds like a nice change. How will this work?

4 Likes

Thanks for doing the hard work of listening, engaging in numerous discussions, and putting up this revised proposal.

Very excited about this deliverable. From what Iā€™ve heard from Ncookie previously this will be a major improvement in terms of retaining prize value, especially when looking at scaling new deployments.

The prize pool launch script sounds like a very valuable addition!
It would be great to gather some best practices and things to consider from the learnings and decision-making processes GS will take during the deployments of the chains you list.

Thatā€™s a powerful list of chains to aim for! Bullish V5 :ox:
Previously you mentioned the interest in deploying to zk-rollups as well. Is this still feasible by using the launch script or are there any particular roadblocks that would keep us from doing so?

Is Generation Software going to deploy the new WETH and USDC prize vaults or is that up to the community as well?

Letā€™s go - this will be a helpful tool! Canā€™t wait to test :test_tube:

Are you up to continuing the hosting after that? Would you consider extending the length to something like 4 years instead?

This sounds extremely interesting! This can be a good opportunity for protocols to come and promote their potential vaults on this forum. Previously it couldā€™ve been hard to figure out for others what the process of getting a vault into the standard list is like. This change will allow us to create a more transparent process around it. Looking forward to learning more soon.

This is a huge change and comes unexpectedly for me. Iā€™m aware of different opinions across the community but I was sold on the dev teamā€™s conviction about POOL as a unifying prize asset. What has led to making this change in the end? It feels like this is not just an isolated decision but will have some major impact on how the different pieces of the protocol play together.

In my opinion, thereā€™d be four options to consider when thinking of the prize token:

  1. POOL
  2. The vaultā€™s pToken
  3. Gas token of the chain youā€™re on
  4. Free choice for user or vault deployer

From everything I understood so far, choosing POOL would be most beneficial to the protocol. I do understand peopleā€™s concerns about efficiency during scaling but Iā€™ve been very trusting in seeing it pay out once the protocol achieves its necessary growth.
What are the reasons for moving away from POOL, and is there a benefit of not using pWETH over WETH, so winning would potentially grow a userā€™s balance?

Sorry for opening Pandoraā€™s box again. I know youā€™ve been managing discussions around various topics and it must been incredibly hard to satisfy everyoneā€™s expectations while keeping a red thread and moving forward.

Iā€™m having a little trouble understanding the buyback mechanism. Looking at the spreadsheet, would it mean that 10% of all accrued yield would effectively be swapped for POOL and then burned?

Iā€™m still digesting this one. That would be sad!

I hope this decision isnā€™t based on the backwind on Generationā€™s last PTBR. It would be very sad to see the original team move away because you feel forced to. You all are still needed and PoolTogether would not be here without you in the first place. Iā€™m convinced thereā€™s a need for Generation Software and a desire to have you all on board to drive the protocol forward.

End notes

During the RFC phase of this PTBR batch, many allegations were made that it would be the same people benefiting from the PTBRs who are also voting them through. I donā€™t agree with either the statement or sentiment but due to the nature of the discussion, I will abstain from the onchain vote.
However - I want to see the PTBR succeed. You are providing immense value not only to this community but to the whole DeFi ecosystem.

Iā€™m in support of this PTBR. The 6-month duration is very reasonable and probably shouldā€™ve been the case for your PTBRs all along. Letā€™s turn on the warp drive for this hyperstructure!

4 Likes

Thanks for the support everyone! It looks like weā€™ll be able to move forward. Iā€™m going to put the vote on-chain tomorrow.

There are a LOT of questions here, so I want to answer them as broadly as possible.

Our goal for this PTBR is to finalize the hyperstructure, and to enable PoolTogether to be self-serve and sustainable. Once complete, we will have streamlined:

  • Deploying new Prize Pools (launch script)
  • Incentivizing Prize Pool actions (bots)
  • Creating new Vaults (vault factory)
  • Ability to incentivize deposits (twab rewards)
  • Sustainability

Being an immutable protocol, the configuration parameters will be defined in the launch script. Generation will provide instructions and our recommendations so that any developer can customize a new Prize Pool deployment.

With this in mind, we are intentionally leaving the door open for POOL token holders to draw the protocol forward. Token holders control the treasury, so the major lever of control will be how to structure incentives:

  • How to encourage new deployments.
  • How to encourage vault creation.
  • How to encourage deposits.

Show me the incentive and Iā€™ll show you the outcome! Generation is having success with incentives in our bounty program; two bounties for V5 have been paid out already. Weā€™ve always respected security reports any time they come in, but once the audit is complete we will go public with an ImmuneFi bounty program.

The homework for token holders is to figure out how to coordinate on the above. GS will be looking to you for direction on vaults.

Regarding any other questions: GS will continue to engage openly and transparently with the community. There are many more discussions that weā€™ll need to have! We can chat in Discord and bigger topics can be discussed in dedicated forum posts.

1 Like

200

Did you really end on this and not speak to any of the questions from anyone? Doesnā€™t appear like GS is willing to engage openly or transparently.

2 Likes

This seems like the same request with the front loaded spend laid out for us to see. 400k for the first 3 months, another 280k for the next 3 monthsā€¦

ā€¦no response to questions on the new request

ā€¦can we just start with fixing the current vaults then go from there?

I donā€™t support this as is.

3 Likes

My vote will be ā€˜noā€™ until all the questions in this thread are addressed. I donā€™t think itā€™s too much to ask and itā€™s important to me that we are building the bridge of communications, not continuing to ignore them.

2 Likes

I know that funding for GS is probably running low, but I would recommend waiting to post the vote on chain until after the community call this week to give Poolers a chance to talk with GS about their proposal. Going straight from RFC to PTBR + On-chain Vote was a core issue last time, and I do know that timing is at issue here. However, as others have pointed out, thereā€™s a lot of uncertainty about some aspects in the revised proposal that people would like answered.

I donā€™t think answering the questions broadly is the right communication strategy; it would be beneficial to answer the core questions people have asked, which boil down to:

  • Will GS deploy any vaults at launch, or will GS launch the vault factory and leave any vault deployment up to the wider community. I donā€™t think this is clear in the main proposal.
    • If GS doesnā€™t plan to launch any vaults with the V5 redeploy and this responsibility is shifted onto the community, it really doesnā€™t make sense for Poolers to pays for a BD function with GS, unless they plan to fund BD with external funds. In past PTBRs, funding has been primarily used for salaries, which are tied to deliverables. One of the core functions within GS has been BD work, which should help boost adoption and throughout 2023, it was emphasized this meant getting more protocols to build on top of PT v5. If GS doesnā€™t plan to launch any vaults and has no deliverables tied to launching vaults, other than the vault factory redeploy, then past funding for BD-related deliverables didnā€™t really have any impact for the protocol. This turns out to be a worrying aspect for people that have commented so far.
  • On the below quote: I donā€™t think everyone here understands what this means, exactly. Afaik, PT Inc controls the PoolTogether.com domain and GS decided to launch their own separate frontend using the Cabana Fi site. Folks are unclear what this means for Cabana fi. If no one takes over hosting the domain, will this site be deprecated? If so, this somewhat informs the migration work. I donā€™t think Poolers want people to migrate their deposits using a frontend to access the protocol that may not be available in six months.

I think these are the two questions people are most concerned about. There are other comments that people have raised, and I think itā€™s important to address those questions ahead of the on-chain vote to prevent the same outcome as we saw for GSā€™s last on-chain proposal.

Iā€™m assuming most of this boils down to miscommunication, but providing clarity ahead of a vote seems incredibly important if GS wants to have a high degree of confidence that theyā€™ll secure their next six months of funding. I really want to see GS succeed and I think clear communication is the best path toward success on the upcoming PTBR.

2 Likes

@taliskye @underthesea Iā€™m not trying to avoid answering your questions; Iā€™m trying to keep the conversation streamlined so that we donā€™t go too deep into any particular topic. I think we broadly agree on the direction to go, the tactics of getting there can be discussed in more detail on-the-fly.

This vote is critical to allow GS to continue operating, so I wanted to keep it moving along.

That being said, if the questions are going to swing votes then Iā€™m happy to answer them! Iā€™ll go through them one-by-one.

Yes; thatā€™s the goal but itā€™s very complicated. Think of wETH prizes as a step in that direction. For more background and rationale please read this post.

GS will determine a recommendation but the DAO can have the final say on what that number is.

There are clear contenders such as Witnet and an upcoming Chainlink deployment, but weā€™re still working on the best strategy.

It is, but it was clear that people needed to see it here.

Yes; of course. Iā€™m not sure if Iā€™m interpreting this question properly?

The bounty will be made live after the audit.

Itā€™s up to the community to decide. How about a Snapshot vote? Reimburse a member that creates the vaults (like Lonser). Weā€™ll put the vaults into a list and pop them into the UI.

The launch script will work with any chain that has identical RPC interface to Ethereum and EVM-equivalence. I canā€™t promise it will work on all chains; thatā€™s out of scope. For sure itā€™ll work for the promised chains above.

The community will decide on the vaults. We want to make sure there arenā€™t any perceived roadblocks to growth.

Yes, weā€™re open to continuing to host. I hope that was clear in the PTBR! 4 years is a very long time, however. I assumed weā€™d stick to quarterly-ish cadence.

It became evident that using POOL for the prize asset would require a significant amount of coordination in terms of liquidity, and require us to build custom mechanisms to ensure smooth operation. The shorter, easier, path is to use a highly liquid asset.

There are trade-offs. pWETH is gas-heavy and adds risk to the prize asset. wETH is highly composable and highly liquid.

No, the calculation is more nuanced than that. Itā€™s based on the reserve shares.

The community will launch vaults; I believe this has been made clear. We want to allow the DAO to proceed with whatever vaults it wants. An example of this is Lonser launching the Dai vault, and I know something is brewing around another vault as well.

If no one is hosting Cabana.fi, then users will need to use Pooltime. The code for Cabana is fully open source, however, so itā€™s not gone by any means. Is that what you were asking?

Keep the questions coming! If anyone has any critical questions then please ask and letā€™s get them resolved.

7 Likes

There have been a couple of updates I want to highlight:

Launch Configuration Consensus

In the Council call this morning the concern was raised that we should be voting on whether to buyback and burn.

I realized that this extended to many other parameters; in that if governance is going to define ā€œofficialā€ prize pools, then it should decide how the parameters are configured:

  • Draw period
  • Reserve tiers
  • Buyback percentage
  • Prize token address
  • POOL token address

By establishing this process, this has the added benefit of allowing governance to define official prize pools proactively. For example: the parameters for a prize pool on zkSync can be defined ahead of time, then the first person who deploys a matching prize pool receives an incentive.

You can see the updates in the Launch Parameters section

Visualizations

Weā€™ve added some excellent visualizations to help see the flow of funds. The diagrams illustrate the flow of funds at key stages in the V5 protocol.

See them above

4 Likes

Thanks for addressing the questions. Also really appreciate the added governance process for deployment parameters. I believe this is important for alignment.

Trying to clarify my previous questions

  1. Could you share how much funding do you have remaining for the ImmuneFi bounties. And what happens if that funding is exhausted by new reports? Will we do a PTIP to fund more bounties?

  2. Because you say you will be available for support through Q2 it leaves some uncertainty about what happens after that. One question I was asking was, if GS receives Optimismā€™s Retro PGF funding for V5 work that was funded by PT treasury, would that OP funding be used to continue more development and growth on PT?

3 Likes

We have approximately $47k left in our security budget. If it runs out weā€™ll need to request more funds. There is a chance weā€™ll have to make the request off-cycle from the quarterly PTBRs depending on if/when this happens.

Optimismā€™s Retro PGF funding has a bunch of strings attached; IIRC the OP canā€™t be sold and therefore canā€™t be used for operational expenses. I donā€™t know enough at the moment to know how weā€™d handle that scenario. Iā€™d have to do more research here.

Regardless, I agree that the funding should be used for PoolTogether.

3 Likes

Thanks for the quick reply. I will be voting yes on this proposal

5 Likes

I also support this proposal and will vote YES! :slight_smile:

(The only part I donā€™t like is the ā€œPOOL Buyback and burnā€ cause I think it is a tax on depositors but I like that it will be a configurable parameter and then Gov can decide if we wanna implement it)

3 Likes

Thanks everyone for your feedback! Iā€™m going to lock this thread in preparation for the official PTBR.

2 Likes