2.4.1. Update Collateral Process
Last updated
Last updated
Copyright 2024 M^0 Foundation
The updateCollateral()
function (Update Collateral) needs to be called once per Update Collateral Interval.
Update Collateral Interval: In accordance with Protocol specifications, the period between which Update Collateral must be called by a Minter. If Minters do not call Update Collateral within this amount of time after their previous call, their on-chain Collateral Value is assumed to be 0 and they will incur a penalty rate on the next update. This protocol parameter is alterable with a Standard Proposal.
The Penalty Rate is defined as the percentage charged on Owed M that is in excess of the amount a Minter is permitted to have generated. It is assessed any time Impose Penalty is called, which is embedded in both Update Collateral and Burn. It is alterable with a Standard Proposal. This is a fixed percentage and not an annualized rate.
Failure to do so will result in the Collateral Balance being set to 0 and the application of a respective Penalty.
Some key financial definitions are outlined below:
Cash Equivalents are amounts, denominated in the Reference Currency, held in either Cash Accounts or in the form of so-called stablecoins (including M) in wallets.
Cash Account is the cash account held by the SPV with the Account Bank.
Account Bank is defined as any entity appointed by the SPV to act as an account bank.
The Reference Currency throughout this document is USD (United States Dollar).
An example collateral update flow is shown in the picture below:
The Minter purchases Notes from the SPV with Cash Equivalents.
The SPV Operator on behalf of the SPV will perform the collateralization process.
Minter sends a Validation Request (see below) which contains the amount it would like to update on-chain to the Validator.
Validator verifies the existence of the Collateral (e.g. via its read access to the depository account), verifies the compliance with the eligibility criteria and, potentially, verifies the implementation of Mandatory Contracts.
If all checks have been successful, the Validator sends a Signature to the Minter.
With this Signature the Minter can call the updateCollateral()
function.
Validation Request: A call from the Minter to the Validator where the Minter requests a Signature for either updating its Collateral Balance or for removing a RetrieveID from the Protocol.
Steps 3-6 have to be completed at least once per Update Collateral Interval. Step 2 has to be completed whenever new funds are transferred to the Collateral Storage or whenever collateral matures thus liquidates.