SNX Arbitrage Pool
Update (30/10/2019): there is now a new arb contract. More details here.
We recently launched an experiment to incentivise liquidity for the sETH/ETH pool on Uniswap. In one week, almost 1500 ETH has been added to the pool and it is now the fifth largest Uniswap pool. This has demonstrated the effectiveness of combining DeFI protocols to strengthen incentives.
The purpose of sETH on Uniswap is to provide a deep pool of liquidity into and out of Synthetix.Exchange. Liquidity is just one aspect though, it is also critical that the pool is stable at a 1:1 ratio. So while liquidity has improved, we need to address stability. Which is why we are proposing to divert some of the SNX inflationary supply to help restore this 1:1 ratio.
Specifically the proposal is to allocate 5% of the inflationary SNX supply each week (i.e. ~72k SNX) to an arbitrage contract that can only be accessed via the sETH pool on Uniswap, and only when the ratio is below 99:100. This will create an efficient arbitrage cycle between Synths and SNX.
Before detailing the arbitrage pool mechanism, it is worth reviewing how the Synthetix peg functions and some of the limitations of this mechanism.
The Synth peg is a soft peg. SNX tokens collateralise all Synths within the network, but sETH and other Synths are not directly redeemable for SNX. Except in the specific scenario where a user has issued debt previously and is looking to repay it. This means that there is only a small subset of users able to profit from arbitraging Synths when they fall below the peg. It also means that if very few of these users want to pay off their debt, then there will be weak incentives to restore the peg. One way to resolve this is to attempt to force users into repaying their debt — this is the approach taken by Maker where they raised interest rates in an attempt to get users to close CDP’s. Synthetix does not charge interest on Synth debt so this is not a viable approach for us.
The solution to improving the peg is to offer a mechanism to allow for direct redemption of SNX for sETH and other Synths. However, because there will likely be significant demand for this redemption mechanism before supply and demand for Synths has reached an equilibrium, we must to limit access to this redemption mechanism to only users who have purchased Synths below par on the open market.
Thankfully we have a mechanism to achieve this via the sETH/ETH pool in Uniswap. Each week some of the inflationary SNX supply will be deposited into a contract. These SNX tokens will only be accessible under certain conditions, the process is as follows:
- Each week ~72k SNX will be deposited into the arbitrage contract
- This SNX will be locked until the sETH/ETH ratio falls below 99/100
- A user sends ETH to the arbitrage contract
- The contract accepts ETH and converts it to sETH via the Uniswap pool
- The contract redeems sETH for SNX at par
- The contract sends the SNX to the user
This arbitrage pool will ensure that direct redemption is available to restore the peg when supply exceeds demand. In this case, Synth holders who sell below the peg will sell at a discount and other users will be able to purchase SNX at a discount equal to the discounted Synths sold. If we look at the current pool as an example we can see:
1467 ETH in the pool
1557 sETH in the pool
So it would require ~45 ETH converted to sETH to restore the ratio to 1:1.
This is ~$10,000, so it is fair to assume that within a few weeks the peg would be much closer to 1:1.
There is also a second order effect, which is that SNX sold on the market (assuming the arbitrage cycle is closed) will put downward pressure on the price. This will lower the Collateralisation Ratio of minters who sell debt below par, forcing them to buy Synths back on the open market in order to maintain their ratio and continue to claim fees.
We have already run a small scale experiment to test this process which was fairly successful, and this was before the sETH pool had been created. We will be running a similar experiment using Foundation funds for the next two weeks to assess the impact on the peg in combination with sETH pool incentives. This trial will begin Wednesday the 24th, July at 6pm AEST (The same time the sETH pool snapshot is taken).
EDIT: we are continuing the trial indefinitely.
During the trial, distribution will be implemented manually without the smart contract. Instead, users who exchange ETH for sETH below 99/100 can fill out this form to lock in their purchase. They then need to send the sETH to this wallet here. We will then send the SNX to them manually.
In order to provide confidence for users of Synthetix.Exchange, we need a simple on-ramp and off-ramp for the exchange that is stable and has low slippage. If these incentives continue to perform as they have in the early stages it is highly likely that they will enable a much better user experience on synthetix.exchange.
Thank you in advance to everyone who participates, please jump into Discord if you've got any questions.