II.I.VII Example Interactions and Flows

The following is an example of how Permissioned Actors are intended to interact with the protocol, and how M is intended to flow through the protocol.

Step 1: Minters, Validators, and Earners propose their addresses to the M^0 TTG.

Step 2: The TTG accepts or rejects the proposals.

Step 3: Minters that were approved by the TTG are now on the Minter List. These Minters call for their first on-chain Collateral Value update.

Step 4: This Minter has contracted with at least one Validator off-chain. The Validator(s) have full access to the records and statements of the Eligible Custody Solution. The Validator(s) will check to ensure that the proposed on-chain Collateral Value is less than the dollar value of the Eligible Collateral in the Eligible Custody Solution. Once they have confirmed this to be true, they will provide the Minter with their signature and a timestamp from when they performed the balance check.

Step 5: Once the Minter has obtained a valid signature and timestamp from the Validator(s) they will call Update Collateral to push the balance on-chain.

Step 6: Now that the Minter has a positive on-chain Collateral Value, they are able to generate M. They will call the Propose Mint method and specify the amount they wish to generate. As long as this amount is within the bounds of the current on-chain Collateral Value (excluding any open Retrieval IDs) multiplied by the Mint Ratio, the method will output a Mint ID. This Mint ID will be inactionable for some Mint Delay, and then actionable for Propose Mint Time To Live.

Step 7: The Mint ID must be outstanding for Mint Delay. This is to ensure the superset of Validators have the opportunity to scrutinize the Propose Mint and call the Cancel and/or Freeze methods if something is amiss. Once Mint Delay has passed, the Minter can call Mint M and generate the M.

Step 8: Now that the M is generated, the Minter begins to pay Minter Rate on their Owed M. They will be subject to Penalty Rate charges on this balance if they do not keep their on-chain Collateral Value up to date or allow their on-chain Collateral Value to decrease below the permitted level. If the latter circumstance occurs, it is likely because the assets comprising the off-chain collateral have matured and are sitting in bank deposits.

Step 9: Assume that this Minter now wishes to repay some of the M they have generated and to retrieve a portion of the collateral from the Eligible Custody Solution. The Minter will first call Burn and specify the amount of M they’d like to repay. This will reduce their Owed M by this amount. Assuming that now there is a positive spread between the permitted amount of M that the Minter can generate and their Owed M, they can call the Retrieve method. The Retrieve method will first check if their on-chain Collateral Value, after the retrieval, is in compliance with the protocol’s rules. If it is, the method will output a Retrieval ID and reduce the Minter’s on-chain Collateral Value by the amount specified.

Step 10: The Minter can now go to the operator of the Eligible Custody Solution and show them the Retrieval ID and request that they allow them to redeem the corresponding value.

Step 11: Once the transaction has completed and cleared the Minter will call Update Collateral and input the new Collateral Value and the Retrieval ID in order to remove the subtraction to on-chain Collateral Value associated with the Retrieval ID. The Minter once again requires the Validator signature data and timestamp for the transaction to succeed.

Last updated

Copyright 2024 M^0 Foundation