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


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.


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.


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.


  • In 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


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.