This is a proposal to upgrade the Spot contracts with the following functional improvements. Broadly, these aim to improve the efficiency, predictability, and scalability of the Spot ecosystem.
1. Decouple Enrichment/Debasement from Rotations
This change creates a clean separation between rotations, the process to keep tranches fresh, and enrichment/debasement, the funding rate mechanism that keeps the system in balance such that there’s enough free capital to execute rotations.
With this update, tranche rotation always happens at a 1:1 conversion with respect to the underlying value. In addition, enrichment/debasement takes the form of direct & lossless transfer of value from one side to the other. This allows the funding rate to execute on its own schedule, for example daily. Moving from a weekly cadence to a more frequent one smooths out the application of this mechanism and makes the user incentives clearer and more predictable.
This decoupling is especially important in scenarios where DR is very low and rollovers are undersubscribed. Previously, when the two operations happened together and rotations were not fully executing, enrichment/debasement would also not fully execute in the times when it was needed the most. This change ensures that enrichment/debasement value transfer can always happen, no matter the system state.
2. DR-based fees
The fee system has been unified and made a function of DR. If a user performs an action that pushes DR farther away from 1, the fee will be higher than for an operation that moves DR back closer to 1. This aims for, as much as possible, the full system cost of an operation to be incorporated into the cost to the user for that operation.
The fee curves have the same structure as what’s used by Bill Broker. Fees on operations that bring DR closer to 1 can be made very low or free. Beyond a certain point, fees begin increasing linearly as DR gets pushed farther from 1.
See below for the proposed fee curves.
3. Fees Directed to stAMPL holders
All fees go towards stAMPL depositors, who hold the Jr (most equity-like) positions. stAMPL depositors hold the most upside and also the most risk. A healthy stAMPL vault helps the whole system run and scale more efficiently.
4. Pair Minting & Redemption of SPOT/stAMPL
Users may now mint and redeem SPOT and stAMPL together. This makes it easier to manage positions that stay closer to a 1x AMPL exposure while decreasing the amount of bare tranches that must be handled.
5. Bill Broker Support for Negative Fees
Previously the bill broker swap fee curve was a piecewise linear function with 2 segments. This change makes it a piecewise with 3 segments, as shown in the image below, and now supports negative fees.
Negative fees allow the Bill Broker to maintain a smaller spread and remain in the market, even when the asset ratio gets far away from 50-50.
Audit & Code
Audit by Peckshield can be found here.
Implementation
Proposed Configuration
Enrichment/Debasement
Parameter | Value |
---|---|
debasementLag | 15 |
enrichmentLag | 10 |
maxDebasementRate | 0.05 (or 5%) |
maxEnrichmentRate | 0.05 (or 5%) |
minDebasementRate | 0.005 (or 50bps) |
minEnrichmentRate | 0.005 (or 50bps) |
drEqLower | 0.95 |
drEqUpper | 1.05 |
SPOT Fees
Parameter | Value |
---|---|
drEq | [0.95, 1.05] |
feeDown | [[0.66, 0.15]*, [1.05, 0]] |
feeUp | [[0.95, 0], [4.0, 0.5]] |
*Original proposed fee down @0.66 has been decreased from 50% to 15%
Bill Broker
Parameter | Value |
---|---|
arSoft | [0.75, 1.33] |
arHard | [0.2, 5] |
bidFeeFactors | [1.05, 1.5] |
askFeeFactors | [1.05, 1.5] |
Charm SPOT/USDC Vault
Parameter | Value |
---|---|
concBandDeviationWidth | 0.2 (or 20%) |
activeZoneDeviation | [0.8, 1.2] (+/- 20%) |