VNP-016 Increase Capital Efficiency of Liquidity Commitments

VNP-016 Increase Capital Efficiency of Liquidity Commitments

Change parameter market.liquidity.stakeToCcyVolume

Summary:

Change market.liquidity.stakeToCcyVolume from 1 to 20

Rationale:

This network parameter determines the ratio between liquidity commitment amount and bond. For example, when this parameter is configured to 1 a liquidity commitment of 100,000 USDT on a given market will require 100,000 USDT to be held in the party’s bond account. This capital is idle and cannot be used as margin for trading without suffering penalties (described in detail here Rewards and penalties | Vega Protocol Documentation). This is an extremely inefficient use of capital and currently serves as a significant barrier to attracting more liquidity providers.

The main purpose of the bond is to reserve some capital that can be used to penalise LPs who abandon a market. However, given that this is the sole purpose of the bond it is unnecessary to reserve 100% of the commitment amount and therefore this proposal increases the capital efficiency on liquidity commitments by a factor of 20.

If approved, a liquidity commitment of 100,000 USDT will require only 5,000 USDT to be held in the party’s bond account.

Full Proposal JSON:

{
    "rationale": {
      "title": "VNP-016 Change market.liquidity.stakeToCcyVolume",
      "description": "Change `market.liquidity.stakeToCcyVolume` from `1` to `20` as set out in [VNP-016](https://community.vega.xyz/t/vnp-016-increase-capital-efficiency-of-liquidity-commitments/4360)."
    },
    "terms": {
      "updateNetworkParameter": {
        "changes": {
          "key": "market.liquidity.stakeToCcyVolume",
          "value": "20"
        }
      },
      "closingTimestamp": 0,
      "enactmentTimestamp": 0
    }
  }
2 Likes

fully support this proposal!

1 Like

I think this makes a lot of sense. I support this proposal.

Edit:

While considering this proposal I was wondering how updating this parameter might affect existing live LP Commitments. Specifically I am wondering if updating this parameter would result in the required order book volume of existing LP commitments increasing by a factor of 20 when the proposal is enacted? The below code snippets from core suggest this might be the case:

func (e *Engine) OnStakeToCcyVolumeUpdate(stakeToCcyVolume num.Decimal) {
	e.stakeToCcyVolume = stakeToCcyVolume
}
func (e *Engine) doesLPMeetsCommitment(...) bool {
    ...

    requiredLiquidity := e.stakeToCcyVolume.Mul(lp.CommitmentAmount.ToDecimal())
    ...
}

I couldn’t find anything suggesting that the lp.CommitmentAmount for each active commitment is automatically updated to keep the required volume the same.

If this is the case (hoping someone from the team can confirm/deny) then LPs must be given an opportunity to reduce their bond size in advance of the proposal enactment, otherwise they will likely be unable to meet the volume requirements of their LP Commitment.

This makes sense to me. LP bond has now reason to be 100% of the obligation.

In the JSON, I’d recommend that for good practice, I’d recommend a couple of changes.

  1. Include the full text of the summary (i.e. including the old and new values) in the JSON “title” attribute.

  2. Include at least a cut-down version of the justification in the description attribute in addition to the link to this thread so that voters do not have to rely on content on a mutable website.

i believe that you are right. The commitment is to a bond amount so the obligation will need to be reduced. We’ll make sure the team message this through all channels if the proposal passes.

Furthermore, reductions are only actioned at the end of the epoch so it is important that the enactment timestamp is at (or just after) an epoch end so that LPs can managed their commitments correctly.

For some reason I’m unable to edit the original post, so here is the updated JSON proposal following Barney’s feedback:

{
    "rationale": {
      "title": "VNP-016 Change market.liquidity.stakeToCcyVolume from 1 to 20",
      "description": "Change `market.liquidity.stakeToCcyVolume` from `1` to `20` as set out in [VNP-016](https://community.vega.xyz/t/vnp-016-increase-capital-efficiency-of-liquidity-commitments/4360). This parameter controls the ratio between the bond and a liquidity commitment. E.g. a value of 1 means 100k bond for 100k commitment. Changing this parameter to 20, will require a 5k bond for 100k commitment, which significantly increases the capital efficiency for LPs."
    },
    "terms": {
      "updateNetworkParameter": {
        "changes": {
          "key": "market.liquidity.stakeToCcyVolume",
          "value": "20"
        }
      },
      "closingTimestamp": 0,
      "enactmentTimestamp": 0
    }
  }