[Signal Vote] BIP #13 - Liquidity Provision for BPRO

Simple Summary

The goal of this post is to begin the process of formalizing the creation of a B.AMM managed G-UNI BPRO/USDC pool that is controlled by the DAO.

Abstract

G-UNI is a generic ERC20 wrapper on a Uniswap V3 Position created by Gelato. Pools with any price bounds on any Uniswap V3 pair can be deployed via the GUniFactory instantiating a tokenized V3 Position. When liquidity is added into the pool, G-UNI tokens are minted and credited to the provider. Inversely, G-UNI tokens can be burned to redeem that proportion of the pool’s V3 position liquidity and fees earned. Thus, G-UNI tokens represent proportional ownership (or “shares”) of the underlying Uniswap V3 position. Similar to the Uniswap V2 LP experience, anyone can add liquidity to or remove liquidity from a G-UNI Pool, and can earn their portion of the fees generated just by holding the fungible tokens.

G-UNI Pools created with createManagedPool are assigned a manager account who can configure the executor meta-parameters and also can control and alter the range of the underlying Uniswap V3 position. This proposal seeks to use a fee-less bManager contract that maintains the range for the pool around the TWAP and funnels any profits into the DAO’s treasury.

Motivation

BPRO has very little liquidity, and we need a long term solution to create a healthy market. The pairing with USDC is used to increase the DAO’s exposure to stable assets.

Specification

I propose we use the following default settings for the bManager initially :

gelatoSlippageInterval = 5 minutes; // default: last five minutes;

gelatoSlippageBPS = 500; // default: 5% slippage

managerFeeBPS = 0 // can be reset

gelatoWithdrawBPS = 100; // default: only auto withdraw if tx fee is lt 1% withdrawn

gelatoRebalanceBPS = 100; // default: only rebalance if tx fee is lt 1% reinvested

Initial lowerTick and upperTick settings should be +/-500 bp (basis points) of the current TWAP.

bManager should utilize the B.AMM’s dynamic slippage feature to incentivize calling of executiveRebalance when the TWAP is within 125 bp (bps in terms of the average of lower and upper ticks) of lowerTick or upperTick. The B.AMM should remove its fee and instead offer up to 250 bp of the rebalance profits. This incentive would increase as the TWAP gets closer to either min or max ticks. If either tick is reached the B.AMM is offering 100% of the 250 bp reward.

This bManager should be able to be upgraded by DAO vote.

Implementation :

This is an informal proposal!

Signaling your support will be the next step to let the team know you want it formalized into code.

Proposal:

B.protocol should create a managed G-UNI BPRO/USDC pool.

4 Likes

As mentioned in the community call today, increasing liquidity of BPRO has a few more options (besides G-UNI) that the community has mentioned in the past.

At this stage, it was suggested to put all relevant options to a signal vote to see the preference of the token holders. If/once a specific method will get significant support from the community, further research (and maybe development efforts) will be made to finalize it into a full BIP to be executed/allocating funds.

The options discussed and that will be put up for the signal vote are:

  1. G-UNI - as proposed above
  2. Visor - as was proposed but didn’t reach quorum on BIP #8
  3. Olympus Pro - can read the docs here

Another option that is not in the lines of “Protocol Controlled Value” like the 3 above is -
4. “Classic” LM to LPs on Uniswap/Sushiswap and the likes pools

DAO members will be able also to signal their support whether the DAO should -
5. Provide liquidity on other L1s and L2s.

1 Like

Thanks for bringing this back back to the forefront @EitanK!

We have recently rebranded to Gamma Strategies (from Visor), and happy to answer any questions with regards to managing liquidity.

I’ve done a comparison of the pros / cons of many of these options (including Ohm Pro) in this post here: Build Protocol-Owned Liquidity on Uniswap v3 - #18 by BP333.

With regards to G-UNI vs. Gamma, I just wanted to outline a few thoughts.

  1. Impermanent loss - I would think that the ranges would need to be managed quite well. During volatile periods, a 500 bps range would likely be untenable as the number of rebalances would skyrocket. We currently pay around $200 - $1,000 per rebalance. IL would be quite heavy as well in a USDC paired pool given that the asset is uncorrelated with BPRO. ETH has some correlation with BPRO which allows for having the same range with less impermanent loss.

  2. Dynamic range - We use our machine learning algorithms to dynamically adjust the price range to mitigate against impermanent loss. It widens bands during volatile times to mitigate IL, and narrows them during less volatile times to maximize for fee returns.

  3. Ability to use single-sided liquidity - I believe G-UNI requires ratio deposits of assets within the pool, which will require deposits of USDC as well as BPRO.

Happy to talk through more of the pros and cons and answer any questions!

Impermanent loss - I would think that the ranges would need to be managed quite well. During volatile periods, a 500 bps range would likely be untenable as the number of rebalances would skyrocket. We currently pay around $200 - $1,000 per rebalance. IL would be quite heavy as well in a USDC paired pool given that the asset is uncorrelated with BPRO. ETH has some correlation with BPRO which allows for having the same range with less impermanent loss.

The theoretical G-UNI-B.AMM design mentioned above would outsource the rebalancing (fee costs included) to the market/arbs so that purchases made during times that the ticks are close to being crossed can absorb the profit and rebalance for us much like the bot did here. I imagine the estimates on the range and reward will need to optimized, they are just an initial guess. I also don’t think it will be able to absolutely perfectly maintain the range but the gains in trustlessness and automation outweigh a small loss in liquidity IMHO. The point of the rebalancing process is to help combat IL, the B.AMM would be optimized around IL reduction (which includes the reward) and maintaining the range. The ability of our version of Curve’s stableswap invariant to maintain portfolio ratios is pretty well tested and seems to hold up, I believe a rebalancing process driven by it should work.

Dynamic range - We use our machine learning algorithms to dynamically adjust the price range to mitigate against impermanent loss. It widens bands during volatile times to mitigate IL, and narrows them during less volatile times to maximize for fee returns.

Machine learning is cool. Don’t feel like its a magic fix though that couldn’t be out performed by an optimized smart contract in many cases. The dynamic range size is another cool parameter that could be messed with in parallel to the B.AMM.

Ability to use single-sided liquidity - I believe G-UNI requires ratio deposits of assets within the pool, which will require deposits of USDC as well as BPRO.

I actually like that we would gain a larger share of stable assets. The project now has ~$2.2 Million of stable liquidity of which a small amount could be used to bootstrap. OTC BPRO sale could happen as well if people don’t want to go that route. The growth squad did one for cash for the growth push. This part I am least worried about honestly.

Thanks @a7om for the clarity!

That’s a very interesting reward mechanism for rebalances. I wonder how that would work in an extremely volatile & gas-intensive environment. I will say that we do have a similar mechanism where we’ve integrated with KeeperDAO, who captures the arb opportunities created by our rebalances, and relays a majority of those arb profits back to the LP position. Additionally, we cover the costs of all rebalances. See here for more details on this integration: https://twitter.com/Keeper_DAO/status/1488965452537774082?s=20&t=-x7v_6QBXN6tffrqmQ77ew

With regards to our machine learning algorithm, I agree it’s not a magic fix; however our Autoregressive strategy (active-strategy-framework/2_AutoRegressive_Strategy_Example.ipynb at main · GammaStrategies/active-strategy-framework · GitHub) has been outperforming as you can see here: Dune Analytics.

I ran some backtests overnight specifically on the BPRO-ETH pair and got the following results when utilizing our Autoregressive Strategy:

This was based on $1,000,000 provided as liquidity in the BPRO-ETH pair in Q4 of 2021. It outperformed holding BPRO and ETH by 15.86%.

This is the performance over time.


Here’s how the bands performed. You can see when the price action was volatile in November, the ranges went extremely wide to mitigate against impermanent loss. A tight range during that time would have been extremely detrimental.

1 Like

Impressive results. Interested to see how your project progresses