Update sETH / sUSD Curve Pool Parameters - Atomic Swaps


This proposal requests the following changes in parameters:

  • Updating the A factor on the sUSD pool to 256 from 100
  • Lowering the fee on the sUSD pool from 4 bp to 2 bp
  • Lowering the fee on the sETH pool from 4 bp to 2 bp

Synthetix has long worked along side Curve, in order to offer a venue to exchange large volume on chain. The initial version that still is in operation to this day are synth-swaps. However, the primary disadvantage is the 6 minute delay to get a confirmed reliable price. An iteration on this concept was SIP-120 which brought forward Atomic Swaps, aka “swamps”.
These are swaps that take place without any delay in execution, with the oracle being the designated uniswap-v3 equivalent pool, with chainlink used as protection. Although, Atomic swaps generated billions of dollars for both Curve, Synthetix and 1inch during their launch in June, observation of data showed that further tweaking of the function in the form of
SIP-267 and SIP-288 which enforced that the Curve <> Synthetix <> Curve path is respected. This path is required, because the skewness of the debt pool can be controlled via the curve pool imbalances. This required a lot of engineering effort from both Synthetix side as well as our partners at 1inch.


With the necessary work from Synthetix’s protocol side done, what is left is to calibrate the parameters of atomic swaps on Synthetix side:

  • Switch to the 5 bp uniswap-v3 WETH/USDC as an oracle price source
  • Lower Synthetix atomic exchange fee gradually to the tune of 5 bp (currently at 15 bp) (on trades sUSD<>sETH)

And form Curve’s side, we need the changes mentioned in the summary section to be implemented. These parameter updates will allow us to provide the best execution possible on ethereum, for large volumes, at the cost of around 9 bp (5 +2 +2).

Motivation on amplification coefficient change:
The amplification coefficient is proposed to be increased as well on the sUSD pool, from 100 to 256 due to the relative scarcity of synth liquidity, whereby increasing the coefficient would allow greater usage of synth available in the sUSD curve pool and therefore results in larger trades to materialize due to the lower slippage impact.

Generating more volume and fees for both the Synthetix and Curve protocols.

The primary concern is around the credit risk associated synth which might not be adequately compensated with lower fees and a higher amplification coefficient. But few things to mention on this argument:

  1. Credit risk can largely be controlled via the battle-tested synth loans where users can deposit ETH and take out a sUSD or an sETH loan at 0 fee and 0 interest rate, with no cap on the amount.
  2. We aim at boosting volume, and to get there we need to be as competitive as the best amm available on chain. So the larger volume should make up for what is lost via lower curve LP fees.

Synthetix as can be seen here and here is one of the most evolving protocol on ethereum. A lot of parameter changes and codebase updates have been done based on careful analysis of incoming data since the protocol was created. The parameters proposed here might not be the most optimal ones, and more changes would be proposed in the near future keeping in mind what’s best for both the Synthetix and Curve stakeholders.


  • For the sUSD Pool here
  • For the sETH Pool here

This seems reasonable. With 2 bps fee, returns are maximized with that A value. There’s some pool imbalance risk, but it’s not too far outside the goal range (i.e., we might expect up to ~8 percentage point deviation from the optimal 25/25/25/25% balance).

The simulation indicated better returns with higher fees, but I see the logic of splitting the 4 bps across the two pools. Do we know if atomic swaps are the primary use-case for those pools? Or is it reasonable to expect they would be given expected volume increases? I can look into this if we don’t know.


Yeah atomic swaps and synth-swaps are the main use cases for these pools. They do provide an additional benefit of providing a venue to on/off-ramp sUSD/sETH too, but the primary volume pertains to atomic swaps.

1 Like

The parameters proposed here might not be the most optimal ones, and more changes would be proposed in the near future keeping in mind what’s best for both the Synthetix and Curve stakeholders.

Does this mean A changes are meant to be a regular occurrence? Or will Synthetix be using other pool operations (such as adding/removing liquidity) to affect pool imbalance? Furthermore, are curve pool parameters being accounted for in Gauntlet’s analysis?


Please note that the vote on the sETH pool has been updated to https://dao.curve.fi/vote/parameter/53 incorporating the necessary link in the description to this governance post.


Hopefully won’t be regulator occurence, but A factors can be good but slow risk management tools for atomic swaps that provide better ux than change in fees.
Synthetix is a very broad term, it encompasses many different stakeholders (Spartan Council / Core Contributors / Grants Council / …), but historically these stakeholders do not perform pool operations for risk management. But I do not speak on behalf of all of them.
As far as I know, Gauntlet’s retained services do not include parameters changes relating to trading activity.


The main tradeoff is that higher liquidity is not guaranteed. There’ll also be less liquidity available if there’s a peg divergence.

1 Like

Hello @KALEB forgive my ignorance, but what exactly is the A value’s impact on fees? I see that it likely means Amplitude but I can’t seem to see what the means in reference to this vote. Also if there is somewhere I can be directed where it explains the meaning of the A parameter that would be greatly appreciated.

hey no worries, here is the definition:

The amplification co-efficient (“A”) determines a pool’s tolerance for imbalance between the assets within it. A higher
value means that trades will incur slippage sooner as the assets within the pool become imbalanced.

And I believe the charts by @nagaking do help give an idea on the impact of changing A in terms of different observed varibales.

Ahhh thank you so much, that makes a ton of sense.

I guess you got that from the docs :smiley: Curve StableSwap: Pools — Curve 1.0.0 documentation

Unfortunately, that is somewhat misleading as the doc itself points out with the following note:

Within the pools, A is in fact implemented as 1 / A and therefore a higher value implies that the pool will be more tolerant to slippage when imbalanced.

Should correct the docs…