Key Concepts & Parameters
StableSwap Invariant
At the heart of SPA is a Curve-style invariant equation. Simply, the invariant for two tokens X and Y is:
A * (x + y) + D − A * D = D^3 / (4 * x * y)
Where:
A is the amplification coefficient.
x, y are the current pool balances of token X and token Y (normalized).
D is the invariant (a single number solved by root‐finding).
Key points:
When A is large, the curve is flatter near the center, giving minimal slippage for small trades.
When A is small, the curve behaves more like an ordinary constant-product AMM, allowing larger trades but higher slippage.
The pool continually solves for D to keep
(x,y)
on the stable-swap curve, except when a fee is charged.
Amplification Coefficient A
The Amplification Coefficient (A) is a core parameter in Tapio's StableSwap implementation that controls how the pricing curve responds to trades and imbalances.
Key Properties:
Acts as a scaling factor in the StableSwap invariant equation
Determines pool behavior during balanced and imbalanced states
Higher A creates flatter curves with minimal slippage for small trades
Lower A allows larger price adjustments with higher slippage
Governance and Updates:
A adjustments occur through the RampAController contract under Curator governance
All changes implement time-delayed transitions to prevent parameter manipulation
Changes must respect bounds defined in the Parameter Registry
Current A value accessible via SPA contract's
getA()
method
Buffer
The buffer system is a protective mechanism that maintains LP token reserves to handle protocol imbalances and bad debt scenarios. Unlike user-facing explanations, developers need to understand the technical implementation and state management.
Technical Implementation:
Buffer maintains a separate LP token balance (
bufferAmount
) distinct from circulating supplyBuffer percentage (
bufferPercent
) determines allocation ratio for incoming fees and yieldBad debt tracking (
bufferBadDebt
) records deficit amounts when buffer capacity is exceededAll buffer operations occur during LP token supply adjustments and fee collection events
State Management:
Buffer Addition: Incoming fees first repay outstanding bad debt, then increase buffer reserves
Supply Removal: Deficit amounts are recorded as bad debt when buffer cannot cover losses
Supply Addition: New yield prioritizes bad debt repayment before buffer allocation and LP rewards
Automatic Rebalancing: Buffer operations sync with StableSwap invariant calculations during user interactions
Parameter Change Handling: The buffer system automatically manages value fluctuations that occur during governance parameter adjustments:
A Coefficient Changes: When RampAController modifies A, system recalculates StableSwap invariant D
Value Stabilization: Buffer absorbs D increases by receiving excess value, or covers D decreases by providing deficit coverage
Token Holder Protection: Prevents governance parameter changes from directly affecting circulating token supply
Contract Interactions:
Buffer operations are handled within LP Token contract during mint/burn cycles
SPA contracts trigger buffer updates through fee collection and yield distribution
Buffer state is queryable but not directly modifiable by external contracts
Governance can adjust buffer percentage through Keeper-mediated parameter updates
Last updated