Adjusting Terra-Terra spread to follow constant product algorithm

As of Columbus-3, currency swaps incur the following fees:

  • Terra-Luna & Luna-Terra swaps pay a constant product fee, which increases to disadvantage the more popular of the two trade directions (read Oracle Revamp Proposal for Columbus-3)
  • Terra-Terra swaps pay a tobin-tax, currently 25 bp

While the flat tobin tax was designed to simplify the mechanism, recent volatility in fx markets has called for a more robust solution. More robustness could simply be achieved by removing the flat tobin tax from Terra-Terra swaps and enforcing the moving constant product fee model to all swaps on Terra currency markets. On an implementation level:

  • There exists four key parameters on the market module:
    • BasePool: Terra liquidity pool(usdr unit) made available per some small slice of time
    • Minspread: Minimum swap spread the protocol charges for swaps involving Luna
    • TobinTax: flat swap fee for Terra to Terra swaps
    • IlliquidTobinTaxList: exceptionally high tobin taxes
  • Let’s do away with the above 4 params. For each of the whitelisted currencies in the oracle module, we create a unique BasePool and Minspread such that the system stores a unique swap constant product for each pair in the set {Luna, KRT, UST, MNT, SDT …}
2 Likes

How is this exactly more robust than the tobin tax? Do we have data on the amount of Terra-Terra swaps that occur monthly (just to see how big of a problem that is)?

The proposed solution can be more robust because it penalizes trades of significant size @HeyChristopher. That said, I think that the added complexity does not necessarily justify this benefit. The tobin tax rates have been set to prevent arbitrage between on-chain and off-chain with very high probability (see here for a discussion). I think that the current design is sufficiently robust while also being very simple.