Direct some of Stability Fund and future captured interest towards building Protocol Controlled Value (PCV) on the Quipuswap kUSD/XTZ Pair

I’ve discussed this at length in the Discord but thought I’d make a formal discussion here and see if it is ready for a signal request or KIP.

The Idea: Create a permanent pool of liquidity between kUSD and XTZ by redirecting some of the stability fund and accruing interest from the stability fee towards the XTZ/kUSD QLP (I’ll propose some numbers later).

The Motivation: Building liquidity on their native tokens is a problem many protocols try to solve. For stablecoins like kUSD, this usually comes in the form of bribing (either by using convex to direct CRV emissions, or by emitting governance tokens directly to LPers). However this comes with a big problem, which is that once the rewards run out, liquidity can dry up and move elsewhere. So generally a protocol must pay a constant cost in the form of inflating their governance tokens to try to keep liquidity around in the hopes that someday the liquidity will be self sustaining (arguably only DAI has achieved this). But what if we removed this ongoing cost, that is once we “pay” for the liquidity, it is permanent, enter Protocol Controlled Value (PCV). This is an idea popularized by OHM but has begun to gain popularity among other protocols. The basic idea is that if a protocol owns a large amount of liquidity on their important native tokens, then they don’t have to incentivize others to provide it. However, for coins that are “unbacked” this runs the risk of people simply using the PCV as exit liquidity. This makes backed stablecoins like OHM, DAI, or kUSD perfect candidates for permanent liquidity because there is backing value preventing the liquidity from ever going to 0 (or there is no kUSD in existence outside of the PCV).

The Benefits: I’ve pretty much laid out a case for the benefits already but I’ll give a few more:

  • Liquidations run through the Quipuswap XTZ/kUSD LP. Building deep, permanent liquidity will improve liquidations for everyone.

  • kDAO rewards will run out on the farm some time this year. This may cause us to either have to renew the farm, hope that Quipuswap incentivizes the pair with their farming incentive, or risk losing a large chunk of liquidity to other DEXs/stable pairs that have better incentives.

  • Building a deep pool of liquidity will cement kUSD as a staple of Tezos defi. This sort of harkens back to what Liquidity Baking was trying to achieve: building a semi-permanent and reliable liquidity pool. If people know they can easily swap between volatile assets and stablecoin assets with low slippage via the PCV pool, they are more likely to feel safer holding kUSD (knowing they won’t get “trapped” holding a large amount, unable to swap) and developers are more likely to integrate it in their dApps. Admittedly this is somewhat speculative but network effects are real.

The Drawbacks/Risks: I see the primary risk being Quipuswap code risk, and having a large chunk of the treasury stored there. Fortunately, while a loss of funds would be terrible, it would not jeopardize the backing and functionality of the protocol. One might argue incentivizing a stableswap pool (e.g. kUSD/uUSD) is superior, but currently one can swap $100k without much slippage, and there seems to be enough competition between exchanges that stablecoin liquidity shouldn’t be a problem for the foreseeable future. Building XTZ/kUSD liquidity addresses a massive slippage problem.

Concrete Proposal: Immediately deploy 50% of the Stability Fund towards building XTZ/kUSD QLP liquidity. This can be done through periodic buys while the kUSD price is above some threshold (side benefit being this will temporarily solve kUSD peg issues). Furthermore, redirect 50% of the stability fee towards growing this pool. This could be automated by a contract that performs periodic buys, contingent on kUSD being below some value ($1.01 for example).

In summary I think this will bring large benefits to the protocol and ecosystem as a whole, and is well worth spending development resources on. Feel free to chime in with any questions or criticisms you might have.

2 Likes

I think it’s great. Yes. I also worry that the KDAO farm will end. So to create a permanent liquidity is more important. We should move this quickly. Better let it on mainnet before farm ending.

I don’t know if this is easy to code. Can Hover Labs give some advice?

I support making this happen! What do we need to do to get the ball rolling?

I think the first step would likely be to start deploying some of the stability fund towards quipuswap liquidity. We’re pretty on peg at the moment so it would need to be in small increments to prevent destabilization unfortunately. Once we have some permanent liquidity built up building a feature that will do this semi-automatically can be proposed.

I think this is an interesting idea, but I’m not sure how all of this would work mechanically.

Concrete Proposal: Immediately deploy 50% of the Stability Fund towards building XTZ/kUSD QLP liquidity. This can be done through periodic buys while the kUSD price is above some threshold (side benefit being this will temporarily solve kUSD peg issues). Furthermore, redirect 50% of the stability fee towards growing this pool. This could be automated by a contract that performs periodic buys, contingent on kUSD being below some value ($1.01 for example).

I can’t think of a good way to do something like this (basically exchange kUSD for XTZ so the protocol doesn’t just hold kUSD) without it being front run/exploited in an automatic fashion - a contract could definitely be built to make a buy only if the price of kUSD is running high on a specific dex (or something more sophisticated that’s aware of all major dexes or also facilitates sells for when it’s running low), but it’d be trivial to exploit if it was automated (push the price on the dex, “sell” to yourself in the same tx/batch, rinse, repeat).

That’s not to say that an automated solution doesn’t exist, so if anyone has ideas definitely let them fly! Things like random oracles or some zk-based, privacy-preserving dex (which doesn’t exist on tezos afaik) might be good solutions, but the tools to accomplish this are unfortunately limited.

This could also be done manually but requires a human (or humans via multisig) in the loop, which requires trust and centralization :-/.

I can’t think of a good way to do something like this (basically exchange kUSD for XTZ so the protocol doesn’t just hold kUSD) without it being front run/exploited in an automatic fashion

I think this can be done in a way that is not automated, but is still trustless. A contract that has one function that anyone can run:

Input: kUSD amount to swap

Function:

  1. Update harbinger
  2. Attempt swap
  3. If output XTZ < (kUSD amount / XTZ harbinger price)*1.01; fail
  4. Else swap
  5. Send XTZ to DAO

Good samaritans or people wanting to get a better price when peg is > 1.01 can pay the network fees to run the contract.

I am going to (attempt to) build this for my Encode hackathon entry so I hope to have something in less than a month. Please let me know if you think this will not work or is exploitable!

1 Like

This is a cool idea good luck in the hackathon!