Proposal: Initiate Rollout of Spot v2

What is Spot?

SPOT is a decentralized flatcoin that uses tranching instead of liquidation markets to provide durable long-term stability. SPOT can be held directly as a refuge from inflation, used as a peer-to-peer digital cash, or held as alternative collateral to USDC within reserves.

Spot has been successfully operating since Dec of '22, and the Rotation Vault since in Aug '23. We believe this protocol has the potential to be an important innovation for society at large—and that healthily scaling SPOT is important for that long run success.

With that in mind, the Fragments development team has been hard at work developing features that can execute on that vision, and we would like to begin the rollout of these in collaboration with the broader Ampleforth community.

Spot v2

Spot v2 introduces two key features. They serve to:

  • Facilitate SPOT <> AMPL arbitrage through Swapping, and

  • Balance demand for stability and volatility using a Dynamic Rotation Fee

For more background, please refer to the linked resources below.

Rollout Steps

Provided there is support from the community, as determined by rough consensus here and by signal vote, the rollout will be performed as an inplace upgrade. Existing SPOT holders and stAMPL stakers will not need to remove or migrate their assets. If, however, the vote passes and you’d like to opt out of an upgrade, you would need to exit the system before that happens. There are no changes to the underlying ButtonTranche contracts.


Once there is rough consensus in community discussion, we can move to a signal vote, which takes 5 days. There is no Timelock associated with Snapshot, so we will wait at least two days following the conclusion of voting before executing the rollout.

Implementation & Details

Proposed Fees & Configuration

Rollover Fee Curve
rolloverFeeLower (Debasement) -10% / yr
rolloverFeeUpper (Enrichment) 20% / yr
rolloverFeeGrowth 7

Rollover Fee % vs Deviation Ratio Plot
Rollover Fee % vs Deviation Ratio

Other Fee Values
perpMintFee 1%
perpBurnFee 1%
underlyingToPerpSwapFee 4%
perpToUnderlyingSwapFee 4%
vaultMintFee 0%
vaultBurnFee 5%
Configuration Values
targetSubscriptionRatio 1.5
deviationRatioBoundLower 0.9
deviationRatioBoundUpper 1.25
minUnderlyingBal 100k
minUnderlyingPerc 33%
minDeploymentAmt 25k AMPL

I think I need a better grasp on these fees.

Can anyone ELI5 with maybe an example with numbers on how this will work for debasement and enrichment?

I dont understand the context of rollover fee growth either. Is this annually? Weekly? How does this factor in with debasement and enrichment?


Ditto, I think more details are always welcome.

“How Spot v2 Makes Arbitrage More Efficient” in the original post links to the wrong article.

My question is, how does the proposal incentivise arb profits stay in the AMPL ecosystem? Surely the stakers get a fee from the swaps but additional profits could be drained. Should this fee % not be on a curve so it adjusts with price movements? With the Aave implementation, the capped 72,000% API also basically drained all lenders over time, as the rebase API was exceeding that 72,000% at a certain price level.This will not happen with the Rotation Vault?

Good questions Pascal. I’ll answer here, and make sure they’re included in the docs when applicable. For those willing to look at the protocol code, most fee details can be found in the FeePolicy.

Fee Values

perpMintFee - The fee a minter pays when minting SPOT.

For example, if the collateral value of 1 SPOT token is 1 AMPL (as it is now), a minter receives 1 SPOT for 1 fully collateralized AMPL A-tranche when the fee is 0%. If there were a 1% fee, a minter would receive .99 SPOT for that 1 tranche. This is non-extractive, so the all the input tranches still go to the SPOT collateral base, effectively enriching SPOT.

perpBurnFee - The fee for redeeming SPOT tokens for the underlying collateral.

Similar structure as the mint fee. A 1% burn fee means a redeemer would get 1% less collateral compared to the 0% fee case. The remainder stays in the SPOT collateral set.

underlyingToPerpSwapFee and perpToUnderlyingSwapFee - These are the trade fees when swapping between AMPL and SPOT through the Rotation Vault. Since this swapping is enabled by the liquid AMPL provided by Rotation Vault stakers, these fees go to the Rotation Vault, in the form of increased collateral base for vault stakers.

Note that swapping also results in SPOT minting or redemption. So the total swap fee for a user is the sum of perpMint/Burn and the SwapFee.

vaultMintFee and vaultBurnFee - Similar to perp mint and burn fees, but for the Rotation Vault (i.e. stAMPL). This is similarly non-extractive, so all fees result in increasing the collateral base for the remaining stAMPL holders.

Rollover Fee Curve

The rollover fee curve is a shaped Sigmoid function, similar to the sigmoid curve of the AMPL supply policy. The shape of this sigmoid curve is defined by three shaping parameters: ceiling, floor, and growth factor.

rolloverFeeLower determines the lower asymptote, and rolloverFeeUpper defines the upper asymptote. rolloverFeeGrowth determines the slope at the origin. So the higher the growth facter, the more sensitive the fee is to changes in the input, and the quicker the system reaches the ceiling or floor.

The input of this curve is the “Deviation Ratio”, which is a measure of how far the SPOT/stAMPL ratio is from the desired equilibrium.

Configuration Values

targetSubscriptionRatio - This determines what is considered a “healthy equilibrium” between SPOT and stAMPL. A subscription ratio of 1.0 is exactly equal to the tranche ratio of the current minting bond. Today, the bond minting ratio is 33/67, so a target subscription ratio of 1.0 would be 33 AMPL worth of SPOT for every 67 AMPL worth of stAMPL. 1.5 adds a 50% buffer to guard against underfunded SPOT rotations.

deviationRatioBoundLower - The point below which swapping from AMPL to SPOT is no longer offered by the rotation vault.

deviationRatioBoundUpper - The point above which swapping from SPOT to AMPL is no longer offered by the rotation vault.

minUnderlyingBal - A safety buffer of AMPL that must always exist inside the Rotation Vault. See 3.1 here, for reasons for this safety measure.

minUnderlyingPerc - This guards the swap functions from locking up free AMPL that would otherwise be needed to perform rotations. Rotation uptime is always given priority over swapping.

minDeploymentAmt - The smallest size rotation needed to execute, denominated in AMPL. This guards against gas griefing attacks.


First, see the post above on fee structure so there’s no misunderstandings on those mechanics. The total swap trade fee would be a healthy 5%, and that portion is completely non-extractive. It stays in the the SPOT/stAMPL system. If an arber decides that a 1% profit (very large for one trade!) is what they consider worthy, then 5/6ths of that stays in the system (it would take a 6% deviation to trigger).

But real arb markets are hypercompetitive. 1% profit per trade, risk-free is nearly unthinkable. So in practice, even in the worst cases, we’re talking very small numbers.

Secondly, the flows described in that blog post are just one example. There are alternate flows an arber can use if they preferred to stack AMPL or stack SPOT instead of stacking USDC. They would even be simpler in some ways since they would never need to touch any outside asset.

However, the broader point perhaps is that we can’t control how traders trade assets in open markets. It’s essential that people are able to trade both SPOT and AMPL for, say, ETH, in the open market for liquidity and safety reasons.

An alternate formulation of your question could also be “How can we ensure value stays in the ecosystem when a fast trader trades AMPL for something else like ETH or USD?” In the past, there were no options.

But now there is – SPOT.


The fee breakdown was very helpful, there are a lot of moving pieces here so having an understanding of them is important.

Overall I am in favor of this rollout. I think the fee structure as it stands makes sense, and poses no significant threat to the AMPL / SPOT ecosystem.

I think we can spend months analyzing this until we’re blue in the face, but I’m in favor of seeing how this behaves in the wild and receiving market feedback in real time, and avoiding analysis paralysis. The fees can always be altered in the future if desired, worst case.


Thanks, clear - looking forward to see how this plays out in the market!


Is the deviation ratio not taking into account the target subscription ratio of 1.5? In other words, a 1.0 deviation ratio equals a 1.5 subscription ratio, the lowerbound is 0.9 x 1.5 = 1.35, and the upperbound is 1.25 x 1.5 = 1.875 subscription ratio?

1 Like

Yes, exactly. The Deviation Ratio is defined as the Subscription Ratio / Target Subscription Ratio.

So your calculated 1.35 and 1.875 SR examples are also correct.

1 Like

I am in favor of this proposal.

1 Like

Looks good to me, i will vote in favor of this

1 Like

Looking forward to the next step! Any idea when we can start vote process? Can’t wait.


Thanks for the comments and support everyone! I’ve kicked off a signal vote here, and voting begins tomorrow.

1 Like

The signal vote has passed. Following the timeline from above, we plan to execute the rollout no earlier than next Monday.

As a safety measure, swaps are currently planned to be disabled until after the first rollover occurs. Assuming all goes well after the first rollover, swapping will be turned on immediately after.