Skip to content

Collateral System

$M is backed by offchain collateral, typically real-world assets like U.S. Treasury Bills held in Special Purpose Vehicles (SPVs). The MinterGateway manages the onchain representation and verification of this collateral.

Offchain Backing & Onchain Representation

Minters are responsible for maintaining sufficient eligible collateral offchain. The value of this collateral is reported onchain through the MinterGateway.

Validator Verification

Trusted, independent Validators play a crucial role in verifying the Minters' offchain collateral. They periodically assess the collateral and provide cryptographic signatures attesting to its value.

Update Process

Minters must regularly update their onchain collateral value to reflect the current state of their offchain reserves. This is done by calling the updateCollateral function:

function updateCollateral(
    uint256 collateral,
    uint256[] calldata retrievalIds,
    bytes32 metadataHash,
    address[] calldata validators,
    uint256[] calldata timestamps,
    bytes[] calldata signatures
) external returns (uint40 minTimestamp_);

Key aspects of the collateral update process:

  • Frequency: Minters must update their collateral within a governance-defined interval (e.g., UPDATE_COLLATERAL_INTERVAL, typically daily). Failure to do so results in their onchain collateral value being considered zero until a new valid update is provided.
  • Validator Signatures: A collateral update requires signatures from multiple approved Validators, meeting a minimum threshold set by governance (e.g., UPDATE_COLLATERAL_THRESHOLD).
    • Signatures must be provided with validator addresses in ascending order to prevent duplicates.
    • Each signature includes a timestamp which must be newer than the last signature from that specific validator for that Minter and must not be in the future. This prevents replay attacks.
    • Signatures use EIP-712 typed data specific to each validator.
  • Collateral Expiration: If a Minter fails to update their collateral within the UPDATE_COLLATERAL_INTERVAL, their effective onchain collateral value is treated as zero for all protocol calculations, potentially leading to penalties or an inability to mint.
  • Collateralization Caps: Minters must maintain a collateralization ratio above the governance-set MINT_RATIO. This ratio dictates the maximum amount of $M a Minter can have outstanding relative to their verified collateral.
  • Earliest Update Timing: A new collateral update's effective timestamp must be greater than:
    • The Minter's last update timestamp.
    • The timestamp of the Minter's latest proposed collateral retrieval.
    • block.timestamp - UPDATE_COLLATERAL_INTERVAL to ensure updates are reasonably current.