Auton Stabilization Mechanism (ASM)
Auton Stabilization Mechanism: elements, the functions they perform, and the lifecycle for Auton and Newton supply.
Overview
This section describes the Auton Stabilization Mechanism (ASM) and protocol. The Auton Stabilization Mechanism provides functions to compute the target value for the Auton Auton (ATN) and methods to drive the Auton’s actual market price towards the target through the supply of the Auton and Newton (NTN).
Autonity implements a Collateralized Debt Position or CDP-based stabilization mechanism. Auton tokens are minted and burned exclusively as a result of changing collateralized debt positions.
Autons are minted when users take out CDPs. Users deposit collateral in the form of Newtons (NTN) to borrow Auton at interest.
Autons are burned when a CDP is repaid by depositing ATN to the ASM’s smart contract. The NTN collateral is removed and returned to circulation.
CDPs are created with defined collateralization and liquidation ratios which limit the risk that the debt cannot be adequately covered by the sale of the collateral.
Changes in supply and demand for Auton are absorbed by dynamically adjusting CDP incentives to increase and decrease Auton borrowing costs when Auton price moves above or below its Stabilization Target the Autonomous Currency Unit (ACU).
ASM identifiers and accounts
The ASM functions with two identities for cryptographic security: the CDP owner and the stabilization protocol contract.
Stabilization Contract calls to mint and burn Auton as CDPs are interacted with to borrow and repay Auton are restricted to the Stabilization Contract address, the ‘stabilizer
’ protocol address.
CDP identifiers
The CDP owner’s account address is used as a unique identifier for the CDP itself as well as the CDP owner.
The identity is in the form of an Ethereum formatted account address and is used to:
- unambiguously identify the CDP on-chain
- by the CDP owner as the
msg.sender
address in all CDP interactions: to open, repay debt, and withdraw collateral from the CDP - by a Liquidator to identify the CDP being liquidated in a liquidation scenario.
Stabilization protocol
ASM roles, core concepts, and the lifecycle of a CDP from opening to closure.
Stabilization roles
There are three roles in the ASM:
- Borrower (CDP owner): a user taking out a CDP to borrow Auton, deposing collateral in return. There is no limit on the number of open CDP’s a borrower can own at any one time. Borrower’s must have an account on the Autonity network.
- Liquidator (Keeper): a user or agent that liquidates a CDP that has brobecome under collateralized, repaying the CDP’s outstanding debt and receiving remaining collateral token in return. Liquidator’s must have an account on the Autonity network.
- Stabilizer (ASM Protocol): the
stabilizer
is the protocol account address used for Autonmint
andburn
operations by the Stabilization Contract)
ASM elements
The ASM is composed of 3 system elements implemented as smart contract logic: ACU, Supply Control, Stabilization. ASM contracts are deployed by the protocol at genesis.
ACU
The Autonomous Currency Unit (ACU) is a currency basket from which an index value is computed. This index value is then used as the stabilization target for Auton price, see Stabilization.
The ACU currency basket is composed of 7 free-floating currencies:
- AUD - Australian Dollar
- CAD - Canadian Dollar
- EUR - Euro
- GBP - British Pound Sterling
- JPY - Japanese Yen
- SEK - Swedish Krona
- USD - United States Dollar
Each currency’s quantity in the basket is computed to provide a currency basket with minimal total variance with respect to its underlying currencies. The index value then has minimal volatility with respect to variance from individual currency fluctuations.
The index value of ACU can be computed at any time in terms of exchange rates. The index value is computed from price data for each of the basket currencies. Price data is sourced from off-chain by the validator oracle network and retrieved from the Oracle Contract on-chain.
The value is recomputed at the end of each oracle voting round after new price data for the basket currencies has been computed by the oracle network.
Public functions can be called to return the ACU value, the currency pair symbols in the basket, and the basket quantities, see ACU Contract Interface.
Modifying the currency basket is restricted to the governance account. See the Governance and Protocol Only Reference, modifyBasket()
.
Supply control
The Supply Control contract controls the supply of Auton in circulation on the network. The contract is called by the Stabilization contract to mint and burn Auton as CDP’s are opened and Auton borrowed and repaid. See the Governance and Protocol Only Reference, mint()
and burn()
.
Public functions to return the total supply of Auton and the amount of Auton available for minting can be called, see Supply Control Contract Interface.
Stabilization
The Stabilization Contract maintains a record of CDPs and calls the Supply Control Contract to mint and burn Auton as collateral token is deposited or withdrawn and borrowing repaid. For each CDP, the Stabilization Contract records:
timestamp
: the timestamp of the last borrow or repayment.collateral
: the collateral deposited with the Stabilization Contract.principal
: the principal debt outstanding as oftimestamp
.interest
: the interest debt that is due at thetimestamp
.
The stabilization mechanism operates by dynamically adjusting CDP incentives.
Users post Collateral Token to borrow ATN against collateral at the Borrow Rate. The Auton Borrow Rate goes up (down) depending on whether ATN/ACU is below (above) the target exchange rate for ATN/ACU to:
- Increase ATN borrowing (more supply) when ATN/ACU is above target
- Decrease ATN borrowing (less supply) when ATN/ACU is below target.
CDP collateral token is currently restricted to the Autonity staking token NTN but may be extended to other protocol assets.
Modifying the stabilization configuration for CDP collateral and debt thresholds is restricted to the governance account. See the Governance and Protocol Only Reference, setLiquidationRatio()
, setMinCollateralizationRatio()
, and setMinDebtRequirement()
.
Public functions can be called for:
- CDP ownership - borrow and repay Auton, withdraw and deposit Collateral Token
- CDP cost discovery - collateral price, borrow limit, minimum debt requirement, and interest due
- CDP liquidation - if a CDP is liquidatable and to liquidate.
ASM configuration
ASM parameter settings:
- ACU:
- quantities =
[21_300, 18_700, 14_300, 10_400, 1_760_000, 18_000, 141_000]
, the basket quantity corresponding to each symbol. - scale =
5
, the scale used to represent quantities and the ACU value as a fixed-point integer. - symbols =
["AUD-USD", "CAD-USD", "EUR-USD", "GBP-USD", "JPY-USD", "USD-USD", "SEK-USD"]
, the symbols comprising the currency basket.
- quantities =
- Supply Control:
- initial allocation = 2^256 - 1, the total supply of Auton available for minting.
- Stabilization:
- borrow interest rate =
50_000_000_000_000_000
(0.05e18
), the annual continuously-compounded interest rate for borrowing. - liquidation ratio =
1_800_000_000_000_000_000
(1.8e18
): the minimum ACU value of collateral required to maintain 1 ACU value of debt. - min collateralization ratio =
2_000_000_000_000_000_000
(2.0e18
): the minimum ACU value of collateral required to borrow 1 ACU value of debt. - min debt requirement =
1_000_000
(megaton) : the minimum amount of debt required to maintain a CDP. - target price =
1_000_000_000_000_000_000
(1.0e18
): the ACU value of 1 unit of debt.
- borrow interest rate =
Protocol primitives
Essential primitives of ASM are: collateral, exchange rate price data, ACU, and the CDP.
Collateral
Auton borrowing is collateralized by depositing collateral token into a CDP. The amount and value of collateral backing a CDP is determined by collateralization and liquidation ratios set in the ASM configuration. Failure by a borrower to maintain these ratios results in a CDP becoming liquidatable. In a liquidation scenario a liquidator is able to assume the debt position, repay outstanding debt, and receive the position’s remaining collateral in return.
Autonity’s native protocol asset Newton (NTN) is used as the collateral token.
Exchange rate price data
ASM sources price data via Autonity’s oracle network, retrieving the data on-chain by contract interactions with the Oracle Contract.
Oracle price data is used for two purposes:
- for the ACU currency basket symbols to compute the ACU value
- for CDP borrowing to compute the value of Collateral Token (NTN) in ATN and determine the borrow limit.
Oracle price data is computed per the Oracle protocol, updated periodically in voting rounds.
ACU
Auton price has the Autonomous Currency Unit (ACU) as the Stabilization Target to which it mean-reverts. ACU is an index value computed from a basket of free-floating currencies. Use of a currency basket minimises exposure to an individual currency’s FX exchange risk. The index value is computed from the basket, weighted pro rata to each currency’s share i.e. quantity in the basket. Basket quantities are set at network genesis and may be modified by governance.
ASM then functions to maintain Auton-to-ACU value, ‘mean reverting’ to this value by the CDP stabilization mechanism.
ACU value is kept current by protocol recomputing the value at the end of each oracle voting round when price data for all the basket currencies is available. See the Protocol Only Reference functions modifyBasket()
update()
for more detail.
CDP
The CDP functions to manage Auton borrowing and stabilize Auton price by adjusting the CDP borrowing cost. CDP’s are operated within strict parameterization constraints:
- CDP Ownership:
- A borrower (CDP Owner) can have only
1
open CDP at a time. - A borrower opens a CDP by depositing collateral
>=
the minimum debt requirement for a CDP. A borrower can then within CDP constraints: - borrow ATN against collateral
- repay ATN to partially or completely repay the CDP
- withdraw collateral
- A borrower (CDP Owner) can have only
- Minimum debt requirement:
- A CDP must be
>=
a minimum amount of debt. This ensures the position is economically viable, i.e. the transaction and interest costs of opening and servicing, or liquidating, a position is viable.
- A CDP must be
- Borrow interest rate:
- Interest on debt is charged at an annual continuously-compounded interest rate.
- Adjusting the borrow rate is the primary economic lever by which the CDP-based stabilization mechanism incentivises increase or decrease in ATN borrowing and ‘mean-revert’ ATN to ACU value.
- Repayments to a CDP are used to cover accrued interest before debt principal.
- Borrow limit:
- The amount of Auton that can be borrowed against collateral deposited to a CDP is determined by the ATN value of that deposited collateral, forming a borrow limit.
- The CDP Owner can borrow Auton to an amount
<=
the borrow limit. - The amount of Auton borrowed in a CDP is the principal of the debt position. Principal cannot exceed the borrow limit.
- Collateralization:
- A CDP must maintain adequate collateral value at all times. A minimum collateralization ratio sets the minimum ACU value of collateral required to borrow 1 ACU value of debt. This ratio must be strictly greater than
1.0
. - Collateral must be an ERC 20 token. The accepted collateral token is the protocol asset Newton.
- A CDP must maintain adequate collateral value at all times. A minimum collateralization ratio sets the minimum ACU value of collateral required to borrow 1 ACU value of debt. This ratio must be strictly greater than
- Liquidation ratio:
- A CDP must maintain adequate collateral value at all times. A liquidation ratio sets the minimum ACU value of collateral required to maintain 1 ACU value of debt.
- The liquidation ratio must be strictly less than the minimum collateralization ratio.
- Liquidation Condition:
- A CDP is liquidatable when the CDP’s collateralisation ratio falls below the liquidation ratio:
- If the liquidation condition is met, the only permitted operations on the CDP are:
- For the Borrower, the CDP Owner, to pay back Auton until and repay the CDP or bring the position back within the liquidation ratio
- For a Liquidator to liquidate the position.
CDP lifecycle
The sequence of lifecycle events for a CDP is:
CDP is opened.
- Borrower determines their borrowing and collateral requirements. To do this, the borrower can call Stabilization Contract functions, see
collateralPrice()
,minimumCollateral()
. - Borrower opts to open a CDP, becoming a CDP Owner. The CDP Owner then approves the Stabilization Contract to spend Collateral Token (NTN) on their behalf for the amount of collateral to be deposited:
- Calls the Collateral Token Contract (i.e. Autonity Protocol Contract) to
approve()
the Stabilization Contract address as a spender on their behalf and set theallowance()
of collateral token that the Stabilization Contract can spend. - Calls the Stabilization Contract to deposit Collateral Token to a CDP, calling the contract’s
deposit()
to deposit collateral.
- Calls the Collateral Token Contract (i.e. Autonity Protocol Contract) to
- Stabilization Contract creates the CDP, using the ERC20 allowance mechanism to execute the collateral deposit. A CDP object is created, and the CDP attributes are populated.
- Borrower determines their borrowing and collateral requirements. To do this, the borrower can call Stabilization Contract functions, see
CDP is maintained and serviced. The CDP Owner maintains the CDP, opting to increase or decrease borrowing and deposited collateral within CDP primitive constraints. The CDP Owner may:
- Borrow: CDP Owner borrows Auton from CDP against collateral. Constraint checks are applied:
the amount borrowed must not exceed the borrow limit for the deposited collateral value
the principal debt must meet the minimum debt requirement
the borrowing does not decrease the CDP collateralization ratio below the minimum collateralization ratio.
The Stabilization Contract calls the Supply Control Contract to mint the borrowed Auton amount to the CDP Owner.
- Repay: CDP Owner pays back some or all borrowed Auton in a CDP to (a) service the debt, or (b) maintain the CDP within constraints and prevent a CDP becoming liquidatable. Constraint checks are applied:
Payment is only accepted if outstanding debt after the payment meets the minimum debt requirement
The Stabilization Contract uses the payment to cover outstanding accrued interest before outstanding debt principal, transfering the interest proceeds to the contract’s Internal Balance Sheet. If a payment surplus remains after covering outstanding interest, then the contract reduces the CDP principal and calls the Supply Control Contract to burn the amount of Auton principal debt paid back.
- Withdraw: CDP Owner withdraws collateral token from the CDP. Constraint checks are applied:
the withdrawal must not reduce collateral below the CDP’s liquidation ratio, making the CDP meet the liquidation condition and so become liquidatable
the withdrawal must not reduce the remaining collateral below the CDP’s minimum collateralization ratio.
The Stabilization Contract transfers the withdrawn amount of collateral to the CDP Owner account address.
- Borrow: CDP Owner borrows Auton from CDP against collateral. Constraint checks are applied:
CDP is liquidated.
A Liquidator determines that a CDP has or will meet the liquidation condition and so become liquidatable. To do this, the liquidator can call Stabilization Contract CDP View functions to view CDP state.
Liquidator opts to liquidate a CDP. The liquidator calls the Stabilization Contract
liquidate()
function to repay the CDP and claim the collateral. Constraint checks are applied:The liquidate transaction payment amount will pay all the CDP debt outstanding, principal and accrued interest.
As a reward, the liquidator will receive the collateral that is held in the CDP. Any payment surplus remaining after covering the CDP’s debt is refunded to the liquidator.
ASM economics
ASM economics are multi-dimensional:
- For the protocol:
- Protocol asset price stability: the stabilization mechanism mean-reverts Auton to the ACU stabilization target over time, smoothing Auton price movement.
- Supply and demand elasticity: Auton supply increases and decreases according to demand, the CDP borrow rate providing the economic lever to adjust CDP incentives.
- Protocol revenue from borrow interest earned on CDP’s.
- For the borrower:
- CDP’s give access to collateralized borrowing for Auton with flexibility to increase and decrease borrowing and collateral amounts within constraints. Borrowers can offset flexibility against opportunity costs of borrow interest, staking reward potential if deposited Newton collateral were earning staking rewards, and liquidation risk.
- For the liquidator:
- Liquidation returns from remaining collateral after settlement of debt and interest outstanding.