SIP-98: Re-implement double exchange fee rate on swing trades

Author
Discussions-Tohttps://discord.gg/CDTvjHY
StatusImplemented
Created2020-11-27

Simple Summary

Double the exchange fee rate on any swing trade. That is any move to or from an s Synth to an i Synth. e.g. sTRX <> iBTC or iETH <> sBNB. The one Synth excluded from this is sUSD - moving in or out of sUSD will not double the fee.

Abstract

Doubling the exchange fee rate would reduce the amount of opportunities for a front runner swing trading between the long and inverse synth of a feed, i,e sBTC and iBTC without moving into sUSD first. This mechanism was previously implemented in SIP-21. This SIP targets swing trading and reduces the need to increase fees on the synths via SCCP's which affect other traders / users of the platform.

Motivation

There is already a leveraged benefit on the inverse Synths and currently being able to trade short <> long in a volatile market is a continuous advantage to front runners.

It has been observed that there are possibilities to frontrun real world prices and the on-chain oracle prices between the long s synth and the inverse synth, without moving in between sUSD which would incur a 30bips fee to sell the short or long position first before opening a swing trade.

Exchanging in or out of sUSD will not double the fee.

Specification

  • In Synthetix.exchange() detect a swing trade, that is any exchange to or from any synth beginning with s or i.
  • Double the ExchangeRates.exchangeFeeRate()

For example, if the exchange fee rate is 30 bips, it would make the swing trade 60 bips both direction.

Test Cases

https://github.com/Synthetixio/synthetix/blob/v2.34.0/test/contracts/Exchanger.spec.js#L2239

Implementation

While implementing this SIP, sBTC and iBTC, sETH and iETH trading fees were also reduced back to 30bps, as they had been increased as per SCCP-65 and SCCP-62 to combat frontrunning that was observed utilising swing trades between short and long synths.

Copyright and related rights waived via CC0.