Virtual Synths and where to find them
Back in April I tweeted this:
Now, you could easily say, “We finally have hundreds of millions of dollars worth of DEX liquidity in 2020, when will you be satisfied?”
"Never" is the answer.
But the real reason we have way better liquidity on stablecoins and other wrapped/synthetic assets is Curve. The issue though is that all of the Curve pools are siloed. This means you can trade 20m through USDT:USDC on-chain today, or between WBTC:sBTC but you cannot go from USDT:WBTC without significant slippage, hence my tweet above.
Things have gotten a little better with the recent UNI incentives, now you can do a $5m trade with around 1.5% slippage, but this is still more slippage than most OTC desks offer. And if the UNI incentives decrease or disappear it will probably be more like 3-5% again.
A few months after that tweet I was discussing the issue with Justin when I realised the problem of siloed curve pools actually had a solution: Synths. Because sBTC and sUSD are in two of the largest Curve pools they can act as a bridge, since the key property of Synths is they can be exchanged with no slippage. So from the perspective of the AMM sUSD and sBTC are the same asset. The issue is we have implemented a speed bump on Synth exchanges to prevent frontrunning, which also unfortunately breaks composability. Justin and I had previously discussed this issue of composability with Anton from 1inch and he suggested a virtual token to represent the trade. So we dusted off the idea and Justin did some further R&D and progressed it into SIP-89.
SIP-89 specifies a change to the Synthetix protocol where the output of a trade is represented by a virtual Synth, so when an exchange is made between sUSD and sBTC the output of the exchange is represented by vsBTC, and once the anti-frontrunning waiting period (currently 3mins) elapses, this vsBTC can be settled directly into WBTC. This is not a perfect solution, however, as the user is exposed to the potential for the oracle rate to shift during this window. This risk is present in most on-chain trades though so in most cases the execution price using Virtual Synths will be better for large trades. This is just the beginning however.
Once Virtual Synths are integrated into AMM pools directly they will be able to bridge multiple pools in a single trade, enabling DEX aggregators like 1inch to implement route optimisations to execute each trade with the lowest possible slippage. In our testing slippage was reduced by up to 75% for large trades even after factoring in Synthetix protocol fees. So if someone uses an AMM to trade USDT → WBTC, with Virtual Synths the transaction becomes USDT → sUSD → sBTC → WBTC. This means the trader gets vsWBTC instantly, which is a claim for the underlying asset (in this case, vsWBTC). The user can then call the ```settle``` function after the 3min waiting period, and be reclaimed or rebated if there was a price shift. This is similar to how 1inch and other DEX aggregator routing works where the output is estimated in the front-end but is not confirmed until the actual trade settles on-chain.
This is all great, but in order to resolve the original issue mentioned in my tweet above we need to launch a new sETH:ETH AMM pool. We are waiting until the first AMM integrates Virtual Synths before we decide on an incentive structure, but the sDAO will almost certainly provide incentives to support deep liquidity between ETH and sETH.
As we developed this solution we have been collaborating with a number of teams who are looking to integrate Virtual Synths into their pools. We are very excited for the launch of the first of these pools, hopefully before the end of the year. We are working with some of the best teams in DeFi to implement this functionality including, Curve, 1inch, Shell Protocol, Saddle and more.
Virtual synths are one of the most exciting developments since the launch of Synthetix, they should allow for even more growth in on-chain trading and DEX volume. A special thank you to Anton from 1inch for working with us to solve the composability problem created by fee reclamation.