Skip to content

Collateral Retrieval Process

Minters can retrieve excess collateral from their backing SPV, provided the retrieval does not compromise their ability to back their outstanding $M debt. This process is managed onchain through the MinterGateway and requires Validator oversight.

  1. Propose Retrieval: The Minter initiates a request to retrieve a specific amount of collateral by calling proposeRetrieval():

    function proposeRetrieval(uint256 collateral) external returns (uint48 retrievalId_);

    This creates a pending retrieval proposal with a unique, sequential retrievalId_. The proposed retrieval amount is tracked in the _pendingCollateralRetrievals mapping and is immediately deducted from the Minter's effective collateral value for all ongoing calculations, ensuring the Minter remains adequately collateralized. The system prevents proposals that would lead to undercollateralization.

  2. Validator Inclusion & Resolution: For a pending retrieval to be finalized, it must be explicitly included and approved by Validators in a subsequent updateCollateral transaction.

    • When Validators sign off on a Minter's collateral update, their signature digest includes the list of retrievalIds they are approving for resolution.
    • During the updateCollateral call, the MinterGateway processes these approved retrievalIds. The corresponding amounts are then considered formally retrieved, and their values are no longer deducted from the Minter's available collateral.

This multi-step process ensures that collateral can only be effectively retrieved with explicit, signed approval from Validators as part of a standard, verified collateral update, maintaining the integrity of $M's backing. Multiple retrieval proposals can be resolved within a single updateCollateral transaction.