VMP-30 - Terminate the SOL/USD(USDT) market

VMP-30 - Terminate the SOL/USD(USDT) market

The SOL/USD(USDT) perpetual market has become completely dysfunctional because it uses Chainlink oracle for the index price, which only updates once every 24 hours. This creates a situation where the predicted funding rate can be very large (in excess of 2%), and this causes market makers to widen their quotes on the market. As they do this, the mark price becomes very volatile, further exacerbating the issue and the funding rate becomes even higher. We have witnessed predicted funding rates in the region of 3-4% in an 8 hour period.

Consequently, as of today, it appears that the LPs have abandoned this market, and therefore I propose that the market is terminated until a more suitable oracle can be found for a SOL/USDT perp.

The screenshots below show the state of the market earlier today. Not a single LP is meeting the SLA and the order book is virtually empty. There is only ~1,000 USDT of open interest, so users should not be significantly affected by terminating this market.

Full Proposal JSON:

TBC

Hello. I would consider to change tau.scaling from 1 to 10 back. I voted against this change. I think this was the trigger of the current situation. When you push LPs too close to the mark price they become insane vulnerable for funding rates hence they (we) take a gap on the risky side - which makes situation worse. But we have no choice because LPs will get their Live Quality Score under 1% other way. We made this situation worse on SOL market by changing tau.scaling. So now we consider closing the market… I would consider to change tau.scaling back to 10 and serve the SOL market as it was. We can change tau.scaling to 1 when the “funding rates oracle problem” be solved. Clothing the market is a very bad decision for our reputation at least. And what will happen with the new proposed markets? I see some proposals… don’t we get the same problem there?

Hi MoneySeeker,

Thanks for your feedback, any and all participation in governance discussion is welcomed.

The tau scaling parameter is a network level param and is not set on a per-market basis. Also, I would argue that it was not the tau scaling change that resulted in total dysfunction of the SOL market. I think the main culprits are the infrequent oracle update rate of once per 24h period, combined with the mark price method currently in use on Vega. As DavidBrent explained, the mark price becomes more volatile when the MMs quote wider spreads because it is the “last traded price” that is used as the market price on Vega, hence wider spreads lead to wildly fluctuating mark prices that are used in the funding rate calculation. This creates sort of a death spiral because MMs quote wide to avoid the funding rate but quoting wide adds more uncertainty and volatility to the funding rate. Ultimately having faster oracles and potentially a different mark price methodology would solve this issue entirely. The tau scaling change was necessary to incentivize MMs to quote at the front of the book and compete for rewards, hence reducing the spread.

I think it makes sense to close this market for now. However, we could consider proposing it again at a later date using the wrapped SOL/ETH pool on Uniswap as a price oracle. This would update much more frequently and might be a good way to prevent this issue in the future.

With respect to the newly proposed markets, these are proposed with settings that would source oracle pricing data from uniswap pools, the pools get updated every time someone trades into them so they should have much more frequent price updates than the chainlink oracles, hence we shouldn’t see the same issue that we see on the SOL market.

Cheers

Ed

I just think the “death spiral” on SOL market is scaled from 1 to 10 when we changed tau.scaling from 10 to 1. And as for LP rewards with tau.scaling 1 - I think it is a too much changing. We can see it on other markets such as LINK - most of LPS have a near to zero Live QScore - we will lost them soon. It is bad. Funding rates on LINK market is high too… do we already have a “death spiral” problem there? should we close this market too? I would not change tau.scaling before we solve funding rates problem. now we close markets and will lost LPs soon i guess. It was just too early. As for new markets with uniswap oracle - it is interesting and i will fote “for”.

I don’t speak english very well so my words can seem a little rude - it is note intended, i just don’t know how to say it better.

I don’t think that this is a problem when not so competitive LPs get a little rewards with tau.scaling 10. They do not get much but take a part in providing liquidity - I think it is good for now. When everything get better with new oracles and we have many LPs - then i would change tau scaling. That is my point. Now we have worse spirals , going to loose some LPs, going to close SOL market, going to pay all daily rewards to a couple hands which can lead to many little dumps on VEGA token price when they decide to sell. Tau scaling change was too early. It would be good when the other problems are solved

@MoneySeeker you are right to highlight the issues with the LINK market, but they have a different cause and @Ed-Commodum is going to create a separate thread to discuss how we solve that. I generally agree with everything Ed has said though, we should close this market for now until we have faster oracles.

I wouldn’t worry about “rewards going to a couple of hands” as there will be new altcoin markets soon and that will create plenty of opportunity for smaller LPs to benefit from trading on Vega too, without needing to compete on BTC and ETH where I agree it’s hard to benefit if you’re smaller, due to the size of some of the LP commitments.

tldr; this market isn’t broken because of tau scaling, other than to the extent that if the netwrk overpays by enough someone will market make anything, and that’s not a sustainable way for the system to work.

Long version:

LPs have been paid a very large amount by the network for providing liquidity that is inaccessible as a result of the tau scaling being 10.

It was set their very conservatively at launch btw. It is worth notinh that 1 corresponds to “real life according to the risk parameters of the market”. Setting tau scaling to 10 is something akin to rewarding LPs placing liquidty far from the best price at 10x the rate that the market’s fundamentals imply.

That’s not reasonable and this has been pretty obvious when you look at the liquidity vs rewards paid out and see what community members say publicly in Discord about their inability to place trade because of low liquidity on all markets.

However… it is not necessarily the case that a functional market with a single daily oracle feed can’t exist and work, though it is probably the case that such a market can’t work well, currently:

On the other hand, it should be possible for the market to be tradable with such a rarely updating oracle (futures work fine with a single settlement at expiry, after all).

In order for this to happen I suspect there would need to be at a minumum a change to set the funding to a single daily funding settlement instead of every 8 hours (every 8 hours means 2/3 times you are reapplying an old, stale piece of data—pointless!).

It may well also be worth adjusting other clamp or scalng parameters to somewhat control or reign in the funding (but then again, it may not!).

Finally, it’s likely that for this to work well enough the perp product would need the ability (which IIRC it doesn’t currently have) to weight the Vega prices going into the funding TWAP by proximity to the funding time, so that effectively funding would be primarily (or entirely) settling the difference between the Vega price at funding time and the index price at funding time, rather than the TWAP Vega price over the period vs the index price at a point in time.

Even if the above happens it would be a somewhat different product to a “normal” perp, and remains to be seen if anyone would LP it. It is not all that different though — things like perps on as-yet-unlaunched (or all locked) tokens already exist and have similar mechanisms. Still, it’d be different, and different on a token that with a good oracle (soon!) can have a completely normal perp, and waiting for that may be a better plan.

1 Like

Thank you all for your answers. looking forward to the new markets opening and new oracle. Best wishes to VEGA protocol. If your decision is closing the sol market - i am with you :slightly_smiling_face:

First of all, I respect you all about the technical aspects of your conversation.
However, closing a market in the dex market has a very significant impact on reputation.
This is definitely something to consider. Not only for technical consideration.

Low liquidity and low order book(high spread)->
low trading->
low low liquidity and low order book(high spread)->
low trading->
high volatility funding rate with few trading(or stuck)->
market closure →
low confidence->
low liquidity and low trading->
back to first… .repeat…

just small opinion from shrimp vega holder. thx…

@davek this seems like a poor argument for keeping a broken market open lol

yeah cause this is the place to discuss, argue, propose, bro, thx

I am writing about the process of change that I experienced while consistently trading in Vega.

What I mean to say is that it is never too late to close the market after trying out technical changes. Shutting down the market requires caution.

Who is earning from this market? only the lp. earning VEGA more than 3600 per epoch.

Not me.

This market only has 1200 VEGA per epoch, but that’s a waste of money if the market is no longer functioning correctly.

It’s just confusing for users to see a market that cannot be traded. I agree that it should be fixed if it’s possible to do so, but it can’t be fixed right now because there’s no way to access better settlement data for SOL.

After L2 oracles are available, we can recreate SOL/USDT using Pyth data for settlement and this problem won’t exist anymore - but we don’t know when that will be.

@Ed-Commodum @barney @MoneySeeker @davek

Do you think we should only suspend this market for the time being, and when we have Pyth oracles we can update the oracle and unsuspend the market?

Don’t fully understand how it works. But maybe it will be faster to create new market with correct oracle later (one step) than updating oracle and unsuspending the market (two steps). But maybe it is possible to have both steps in one proposal. The sooner market back - the better.

I think we should just close it and propose the new one when we’re ready.

Here’s the JSON for suspending then terminating the market:

{
    "rationale": {
        "title": "Suspend the SOL/USD(USDT)-Perp market.",
        "description": "The SOL/USD-Perp has become dysfunctional and LPs have stopped quoting on this market due to the severe fluctuations in the funding rate. These fluctuations are caused by a combination of infrequent oracle updates and unreliable mark prices used in the funding calculations that occur as a result of LPs quoting very wide. This proposal seeks to close the SOL Perp market as a result."
    },
    "terms": {
        "updateMarketState": {
            "changes": {
                "marketId": "f148741398d6bafafdc384819808a14e07340182455105e280aa0294c92c2e60",
                "updateType": "MARKET_STATE_UPDATE_TYPE_SUSPEND"
            }
        },
        "closingTimestamp": 1705953600,
        "enactmentTimestamp": 1705953600
    }
}
{
    "rationale": {
        "title": "Terminate the SOL/USD(USDT)-Perp market.",
        "description": "The SOL/USD-Perp has become dysfunctional and LPs have stopped quoting on this market due to the severe fluctuations in the funding rate. These fluctuations are caused by a combination of infrequent oracle updates and unreliable mark prices used in the funding calculations that occur as a result of LPs quoting very wide. This proposal seeks to close the SOL Perp market as a result."
    },
    "terms": {
        "updateMarketState": {
            "changes": {
                "marketId": "f148741398d6bafafdc384819808a14e07340182455105e280aa0294c92c2e60",
                "updateType": "MARKET_STATE_UPDATE_TYPE_TERMINATE",
                "price": TBC
            }
        },
        "closingTimestamp": 0,
        "enactmentTimestamp": 0
    }
}