Minter Lifecycle & Management
Minters are permissioned entities that interact with the MinterGateway
to issue and manage $M. Their lifecycle within the protocol is characterized by several distinct statuses:
- Approved: Minters are initially whitelisted by the M0 Two-Token Governance (TTG) system. At this stage, they are recognized by the protocol but cannot yet perform minting operations.
- Active: An approved Minter must explicitly activate their status by calling
activateMinter()
on theMinterGateway
.This function can only be called by the Minter themselves and transitions them to an operational state, allowing them to propose collateral updates and mint $M. The active status is stored locally withinfunction activateMinter(address minter_) external;
MinterGateway
for gas efficiency. - Frozen: An active Minter can be temporarily restricted from minting $M by Validators (via
freezeMinter()
). During this state, the Minter can still burn $M to reduce their debt and update their collateral but cannot propose new mints. The freeze duration is determined by governance. - Deactivated: A Minter can be deactivated if they are removed from the governance-approved list. Deactivation is a permanent state, initiated by a call to
deactivateMinter()
.This function can be called if the Minter is no longer approved by TTG. Upon deactivation:function deactivateMinter(address minter_) external returns (uint240 inactiveOwedM_);
- The Minter's outstanding debt, including accrued interest, is converted into a fixed
inactiveOwedM
amount which no longer accrues interest. - The Minter can no longer mint $M or propose collateral retrievals.
- Their collateral remains to back their
inactiveOwedM
. - A deactivated Minter cannot be reactivated. This permanence optimizes gas by eliminating further status checks against the
TTGRegistrar
.
- The Minter's outstanding debt, including accrued interest, is converted into a fixed