SIP-222: Update exchange fee system

NetworkEthereum & Optimism
ImplementorMEB (@barrasso)
ProposalLoading status...

Simple Summary

Update exchange fees to be charged as a sum of fees for source and destination synths.


This SIP proposes to modify the current exchange fee system to compound source and destination synth fees rather than simply charging the rate associated with the destination synth.


In the current exchange fee system, a specific exchange fee is attached to each synth and the fee charged for an exchange is determined by the destination synth’s fee. While this is sufficient for exchanges into and out of sUSD (or other fiat synths), it is less suitable for exchanges between volatile assets. Exchange fees and oracle deviation thresholds are largely calibrated to the price action for the USD pair. Thus, exchanges between volatile assets are more likely to be frontrunnable. Furthermore, the current system also imposes an overly punitive fee between stable asset synths (fiat synths) due to the potential for frontrunning by trading into them from a more volatile asset. An indirect benefit of the system proposed here is that fees for exchanges between stable asset synths can be lowered significantly.



Currently the fee for an exchange is a function of the destination synth’s associated fee. This SIP proposes that instead, the fee charged be set to the sum of fees for both synths.


Setting exchange fees as a sum of fees between the source and destination synths helps better align fees with the cost/risk of provisioning liquidity for a pair of assets. For instance, if fees for all synths are set to 30bp, the fee for e.g. sUSD <> sAAVE and sUNI <> sAAVE are identical, though the latter carries significantly more frontrunning risk. Additionally, the fee for sUSD <> sEUR must also be set to 30bp, which is overly punitive given that EUR:USD is extremely stable.

Technical Specification

Proposed exchange fees Ethereum L1:

  • sUSD = 0 bp
  • All forex synths = 15 bp
  • sBTC, sETH = 25 bp
  • sLINK = 85 bp
  • sADA, sDOT, sAAVE, sDEFI = 100 bp

Optimsim L2:

  • sUSD = 0 bp
  • All forex synths = 15 bp
  • sETH, sBTC = 25 bp
  • sLINK = 30 bp
  • sSOL, sMATIC, sAVAX, sAAVE, sUNI = 35 bp

Test Cases

Fees for [sUSD, sEUR, sETH, sAAVE] = [0 bp, 15 bp, 25 bp, 100 bp]

  • sUSD <> sETH fee = 25 bp
  • sETH <> sAAVE fee = 125 bp
  • sEUR <> sUSD fee = 15 bp
  • sETH <> sEUR fee = 40 bp

Configurable Values (Via SCCP)


Copyright and related rights waived via CC0.