[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"navigation":3,"\u002Fprotocol\u002Froles":260,"\u002Fprotocol\u002Froles-surround":1386},[4,22,105,148,177,186,243],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Agents","\u002Fagents","agents",[9,13,17],{"title":10,"path":11,"stem":12},"LLMs.txt","\u002Fagents\u002Fllms-txt","agents\u002Fllms-txt",{"title":14,"path":15,"stem":16},"MCP Server","\u002Fagents\u002Fmcp-server","agents\u002Fmcp-server",{"title":18,"path":19,"stem":20},"Skills","\u002Fagents\u002Fskills","agents\u002Fskills",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"Api Reference","\u002Fapi-reference","api-reference",[27,31,35,68],{"title":28,"path":29,"stem":30},"Authentication","\u002Fapi-reference\u002Fauthentication","api-reference\u002Fauthentication",{"title":32,"path":33,"stem":34},"API Reference","\u002Fapi-reference\u002Fintroduction","api-reference\u002Fintroduction",{"title":36,"path":37,"stem":38,"children":39,"page":21},"Orchestration","\u002Fapi-reference\u002Forchestration","api-reference\u002Forchestration",[40,44,48,52,56,60,64],{"title":41,"path":42,"stem":43},"POST \u002Fcancel-order","\u002Fapi-reference\u002Forchestration\u002Fcancel-order","api-reference\u002Forchestration\u002Fcancel-order",{"title":45,"path":46,"stem":47},"GET \u002Forder-status\u002F{orderId}","\u002Fapi-reference\u002Forchestration\u002Forder-status","api-reference\u002Forchestration\u002Forder-status",{"title":49,"path":50,"stem":51},"GET \u002Forders","\u002Fapi-reference\u002Forchestration\u002Forders","api-reference\u002Forchestration\u002Forders",{"title":53,"path":54,"stem":55},"Orchestration API","\u002Fapi-reference\u002Forchestration\u002Foverview","api-reference\u002Forchestration\u002Foverview",{"title":57,"path":58,"stem":59},"POST \u002Fquote","\u002Fapi-reference\u002Forchestration\u002Fquote","api-reference\u002Forchestration\u002Fquote",{"title":61,"path":62,"stem":63},"GET \u002Fsupported-assets","\u002Fapi-reference\u002Forchestration\u002Fsupported-assets","api-reference\u002Forchestration\u002Fsupported-assets",{"title":65,"path":66,"stem":67},"TypeScript Type Generation","\u002Fapi-reference\u002Forchestration\u002Ftype-generation","api-reference\u002Forchestration\u002Ftype-generation",{"title":69,"path":70,"stem":71,"children":72,"page":21},"Recipes","\u002Fapi-reference\u002Frecipes","api-reference\u002Frecipes",[73,77,81,85,89,93,97,101],{"title":74,"path":75,"stem":76},"Collateral Composition","\u002Fapi-reference\u002Frecipes\u002Fcollateral-composition","api-reference\u002Frecipes\u002Fcollateral-composition",{"title":78,"path":79,"stem":80},"Daily Yields","\u002Fapi-reference\u002Frecipes\u002Fdaily-yields","api-reference\u002Frecipes\u002Fdaily-yields",{"title":82,"path":83,"stem":84},"Earner Rate History","\u002Fapi-reference\u002Frecipes\u002Fearner-rate-history","api-reference\u002Frecipes\u002Fearner-rate-history",{"title":86,"path":87,"stem":88},"Minter Daily Expenses","\u002Fapi-reference\u002Frecipes\u002Fminter-daily-expenses","api-reference\u002Frecipes\u002Fminter-daily-expenses",{"title":90,"path":91,"stem":92},"Network Supply","\u002Fapi-reference\u002Frecipes\u002Fnetwork-supply","api-reference\u002Frecipes\u002Fnetwork-supply",{"title":94,"path":95,"stem":96},"Protocol Configuration","\u002Fapi-reference\u002Frecipes\u002Fprotocol-config","api-reference\u002Frecipes\u002Fprotocol-config",{"title":98,"path":99,"stem":100},"Token Holders","\u002Fapi-reference\u002Frecipes\u002Ftoken-holders","api-reference\u002Frecipes\u002Ftoken-holders",{"title":102,"path":103,"stem":104},"Token Overview","\u002Fapi-reference\u002Frecipes\u002Ftoken-overview","api-reference\u002Frecipes\u002Ftoken-overview",{"title":106,"path":107,"stem":108,"children":109,"page":21},"Build","\u002Fbuild","build",[110,114,118,122,126,130,134,138,142,145],{"title":111,"path":112,"stem":113},"Integrating with the M0 Portals","\u002Fbuild\u002Fbridging-developer","build\u002Fbridging-developer",{"title":115,"path":116,"stem":117},"Bridging M And wM Tokens","\u002Fbuild\u002Fbridging-user","build\u002Fbridging-user",{"title":119,"path":120,"stem":121},"Stablecoin Extension Templates","\u002Fbuild\u002Fchoosing-your-model","build\u002Fchoosing-your-model",{"title":123,"path":124,"stem":125},"How to Design Your Stablecoin","\u002Fbuild\u002Foverview","build\u002Foverview",{"title":127,"path":128,"stem":129},"Implementation Guide: NoYield","\u002Fbuild\u002Fsvm-noyield-guide","build\u002Fsvm-noyield-guide",{"title":131,"path":132,"stem":133},"Getting started","\u002Fbuild\u002Fsvm-noyield-guide-overview","build\u002Fsvm-noyield-guide-overview",{"title":135,"path":136,"stem":137},"Implementation Guide: MYieldToOne (Onshore)","\u002Fbuild\u002Ftreasury-guide","build\u002Ftreasury-guide",{"title":139,"path":140,"stem":141},"Implementation Guide: JMI (Offshore)","\u002Fbuild\u002Ftreasury-jmi-guide","build\u002Ftreasury-jmi-guide",{"title":131,"path":143,"stem":144},"\u002Fbuild\u002Ftreasury-jmi-overview","build\u002Ftreasury-jmi-overview",{"title":131,"path":146,"stem":147},"\u002Fbuild\u002Ftreasury-model","build\u002Ftreasury-model",{"title":149,"path":150,"stem":151,"children":152,"page":21},"Get Started","\u002Fget-started","get-started",[153,157,161,165,169,173],{"title":154,"path":155,"stem":156},"Accessing Liquidity","\u002Fget-started\u002Faccessing-liquidity","get-started\u002Faccessing-liquidity",{"title":158,"path":159,"stem":160},"Cross Chain Interoperability","\u002Fget-started\u002Fcross-chain","get-started\u002Fcross-chain",{"title":162,"path":163,"stem":164},"Architecture Overview","\u002Fget-started\u002Fhow-it-works","get-started\u002Fhow-it-works",{"title":166,"path":167,"stem":168},"Overview","\u002Fget-started\u002Foverview","get-started\u002Foverview",{"title":170,"path":171,"stem":172},"Platform Mechanics & Reward Programmability","\u002Fget-started\u002Fprotocol-mechanics","get-started\u002Fprotocol-mechanics",{"title":174,"path":175,"stem":176},"Stablecoin Features","\u002Fget-started\u002Fstablecoin-features","get-started\u002Fstablecoin-features",{"title":178,"path":179,"stem":180,"children":181,"page":21},"Issuers","\u002Fissuers","issuers",[182],{"title":183,"path":184,"stem":185},"Issue Your Stablecoin","\u002Fissuers\u002Foverview","issuers\u002Foverview",{"title":187,"path":188,"stem":189,"children":190,"page":21},"Protocol","\u002Fprotocol","protocol",[191,195,199,203,207,211,215,219,223,227,231,235,239],{"title":192,"path":193,"stem":194},"Distribution Vault","\u002Fprotocol\u002Fdistribution-vault","protocol\u002Fdistribution-vault",{"title":196,"path":197,"stem":198},"M0 Extensions","\u002Fprotocol\u002Fextensions","protocol\u002Fextensions",{"title":200,"path":201,"stem":202},"Limit Order Protocol","\u002Fprotocol\u002Flimit-order-protocol","protocol\u002Flimit-order-protocol",{"title":204,"path":205,"stem":206},"M0 Portals","\u002Fprotocol\u002Fm-portals","protocol\u002Fm-portals",{"title":208,"path":209,"stem":210},"M Token","\u002Fprotocol\u002Fm-token","protocol\u002Fm-token",{"title":212,"path":213,"stem":214},"M Token Specification","\u002Fprotocol\u002Fm-token-spec","protocol\u002Fm-token-spec",{"title":216,"path":217,"stem":218},"Minting & Burning (MinterGateway)","\u002Fprotocol\u002Fminting-burning","protocol\u002Fminting-burning",{"title":220,"path":221,"stem":222},"Portal V2","\u002Fprotocol\u002Fportal-v2","protocol\u002Fportal-v2",{"title":224,"path":225,"stem":226},"Rate Models & Yield","\u002Fprotocol\u002Frate-models","protocol\u002Frate-models",{"title":228,"path":229,"stem":230},"Roles","\u002Fprotocol\u002Froles","protocol\u002Froles",{"title":232,"path":233,"stem":234},"M0 On Solana","\u002Fprotocol\u002Fsolana","protocol\u002Fsolana",{"title":236,"path":237,"stem":238},"Wrapped M (wM)","\u002Fprotocol\u002Fwrapped-m","protocol\u002Fwrapped-m",{"title":240,"path":241,"stem":242},"Wrapped M Specification","\u002Fprotocol\u002Fwrapped-m-spec","protocol\u002Fwrapped-m-spec",{"title":244,"path":245,"stem":246,"children":247,"page":21},"Resources","\u002Fresources","resources",[248,252,256],{"title":249,"path":250,"stem":251},"Deployments","\u002Fresources\u002Faddresses","resources\u002Faddresses",{"title":253,"path":254,"stem":255},"Audits","\u002Fresources\u002Faudits","resources\u002Faudits",{"title":257,"path":258,"stem":259},"Glossary","\u002Fresources\u002Fglossary","resources\u002Fglossary",{"id":261,"title":228,"body":262,"description":1379,"extension":1380,"links":1381,"meta":1382,"navigation":1383,"path":229,"seo":1384,"stem":230,"__hash__":1385},"docs\u002Fprotocol\u002Froles.md",{"type":263,"value":264,"toc":1316},"minimark",[265,270,279,282,314,317,321,324,332,374,382,385,403,408,465,471,474,479,485,489,495,499,516,520,540,544,558,562,565,596,599,620,624,627,665,668,671,674,677,680,684,699,703,717,721,732,736,739,759,762,765,774,777,782,786,806,810,813,824,828,831,845,852,855,860,863,868,872,907,911,914,928,949,953,956,962,965,968,972,988,992,1003,1007,1027,1031,1045,1049,1052,1055,1058,1061,1065,1082,1086,1100,1103,1123,1127,1130,1134,1145,1149,1160,1164,1180,1184,1198,1202,1224,1228,1245,1249,1252,1293,1296,1313],[266,267,269],"h2",{"id":268},"introduction","Introduction",[271,272,273,274,278],"p",{},"The M0 Protocol operates through a carefully designed system of actors, each with distinct roles and responsibilities\ncrucial for the protocol's operation, security, and decentralized governance. Understanding these roles is key to\nunderstanding how ",[275,276,277],"code",{},"$M"," is created, secured, utilized, and how the protocol evolves.",[271,280,281],{},"The protocol's core functionality is implemented in several key smart contracts that these roles interact with:",[283,284,285,298,306],"ul",{},[286,287,288,294,295,297],"li",{},[289,290,291],"strong",{},[275,292,293],{},"MToken",": The ERC20-compliant token contract for ",[275,296,277],{},", which includes the unique earning capabilities.",[286,299,300,305],{},[289,301,302],{},[275,303,304],{},"MinterGateway",": The interface for minting and burning, managing Minter collateral, and tracking debt obligations.",[286,307,308,313],{},[289,309,310],{},[275,311,312],{},"TTGRegistrar",": The central configuration store managed by Two-Token Governance (TTG), holding approved addresses\nfor roles and key protocol parameters.",[271,315,316],{},"Below is a high-level overview of the primary roles within the M0 ecosystem, categorized by their main area of\ninteraction.",[266,318,320],{"id":319},"overview-of-key-protocol-roles","Overview of Key Protocol Roles",[271,322,323],{},"The M0 ecosystem comprises several key actors, each playing a vital part:",[271,325,326],{},[289,327,328,329,331],{},"1. ",[275,330,277],{}," Supply & Security:",[283,333,334,357],{},[286,335,336,339,340],{},[289,337,338],{},"Minters",":\n",[283,341,342,351],{},[286,343,344,347,348,350],{},[289,345,346],{},"Description",": Minters are permissioned institutions responsible for creating (minting) new ",[275,349,277],{},". They are the\nprimary on\u002Foff-ramp to and from fiat.",[286,352,353,356],{},[289,354,355],{},"Function",": They provide eligible offchain collateral (such as U.S. backed reserves held in Special Purpose\nVehicles) and register its value onchain via the MinterGateway. Based on this collateral and governance-set ratios,\nthey can mint. They also pay interest on their minted supply, which forms the basis for the yield distributed to\nEarners and the protocol.",[286,358,359,339,362],{},[289,360,361],{},"Validators",[283,363,364,369],{},[286,365,366,368],{},[289,367,346],{},": Validators are independent, trusted entities acting as a crucial security and verification layer\nfor the protocol.",[286,370,371,373],{},[289,372,355],{},": Their primary role is to verify the offchain collateral reported by Minters, ensuring that all supply\nremains fully and transparently backed. They provide cryptographic attestations (signatures) for Minters' collateral\nupdates to the MinterGateway. Validators also possess emergency powers, such as freezing a Minter or canceling a\nsuspicious mint proposal, to safeguard protocol integrity.",[271,375,376],{},[289,377,378,379,381],{},"2. ",[275,380,277],{}," Usage & Yield:",[271,383,384],{},"To earn yield, a user has to get the earner status. Below is an overview of the Earner status:",[283,386,387,395],{},[286,388,389,391,392,394],{},[289,390,346],{},": Earners are addresses (users, smart contracts, or M0 Extensions) that have been approved by M0\nGovernance (or delegated admins for certain extensions like wM) to accrue yield on their ",[275,393,277],{}," balances.",[286,396,397,399,400,402],{},[289,398,355],{},": Once approved and activated via MToken.startEarning(), their balance (or the balance of an M0-powered\nextension they hold) automatically increases over time due to continuous compounding, based on the prevailing earner\nrate. This mechanism allows ",[275,401,277],{}," to function as a yield-bearing component for authorized participants.",[271,404,405],{},[289,406,407],{},"3. Protocol Governance:",[283,409,410,448],{},[286,411,412,339,415],{},[289,413,414],{},"Power Token (POWER) Holders",[283,416,417,422],{},[286,418,419,421],{},[289,420,346],{},": POWER Holders are the primary participants in the operational governance of the M0 Protocol.",[286,423,424,426,427,430,431,433,434,436,437,440,441,444,445,447],{},[289,425,355],{},": POWER tokens are used to vote on proposals in the ",[275,428,429],{},"StandardGovernor"," (e.g., approving ",[275,432,338],{},",\n",[275,435,361],{},", ",[275,438,439],{},"Earners","; setting operational parameters like interest rates or collateral ratios) and\nthe ",[275,442,443],{},"EmergencyGovernor"," (for urgent protocol adjustments). Active and complete participation\nin ",[275,446,429],{}," voting is incentivized through POWER token inflation and ZERO token rewards.",[286,449,450,339,453],{},[289,451,452],{},"Zero Token (ZERO) Holders",[283,454,455,460],{},[286,456,457,459],{},[289,458,346],{},": ZERO Holders possess meta-governance authority, effectively acting as the highest level of\ngovernance oversight for the protocol.",[286,461,462,464],{},[289,463,355],{},": ZERO holders are entitled to claim a pro-rata share of protocol revenues (e.g., excess Minter yield,\nPower token auction proceeds) accumulated in the DistributionVault. Additionally, ZERO tokens are used to vote in\nthe ZeroGovernor on fundamental changes, such as upgrading the core governance contracts themselves, altering\ncritical system parameters (like governance thresholds), or changing the accepted CashTokens for proposal fees.",[271,466,467],{},[468,469],"img",{"alt":228,"src":470},"\u002Fimages\u002Ftechnical-documentations\u002Froles\u002Froles.png",[266,472,338],{"id":473},"minters",[475,476,478],"h3",{"id":477},"role-definition","Role Definition",[271,480,481,482,484],{},"Minters are entities authorized to generate ",[275,483,277],{}," by securing Eligible Collateral in offchain Special Purpose Vehicles\n(SPVs) and maintaining an onchain Collateral Value that represents these offchain assets.",[475,486,488],{"id":487},"key-functions","Key Functions",[271,490,491,492,494],{},"Minters interact with the protocol primarily through the ",[275,493,304],{}," contract:",[475,496,498],{"id":497},"_1-activation-and-status-management","1. Activation and Status Management",[283,500,501,510],{},[286,502,503,506,507,509],{},[275,504,505],{},"activateMinter(address minter_)",": A newly approved (by governance) minter must be activated before they can mint.\nThis explicit step stores the active status locally within ",[275,508,304],{}," for gas efficiency, avoiding repeated\nexternal checks.",[286,511,512,513,515],{},"Once deactivated, a minter cannot be reactivated. This permanence also optimizes gas by eliminating the need for\nfurther status checks against the external ",[275,514,312],{},".",[475,517,519],{"id":518},"_2-collateral-management","2. Collateral Management",[283,521,522,528,534],{},[286,523,524,527],{},[275,525,526],{},"updateCollateral(collateral, retrievalIds, metadataHash, validators, timestamps, signatures)",": Updates collateral\nvalue with validator signatures",[286,529,530,533],{},[275,531,532],{},"proposeRetrieval(collateral)",": Proposes to retrieve excess collateral",[286,535,536,537,539],{},"Must maintain sufficient collateral to support minted ",[275,538,277],{}," tokens according to the governance-set mint ratio",[475,541,543],{"id":542},"_3-minting-process","3. Minting Process",[283,545,546,552],{},[286,547,548,551],{},[275,549,550],{},"proposeMint(amount, destination)",": Proposes to mint a specific amount of tokens",[286,553,554,557],{},[275,555,556],{},"mintM(mintId)",": Executes a previously proposed mint after the mint delay period and before mint time-to-live period",[475,559,561],{"id":560},"lifecycle-and-constraints","Lifecycle and Constraints",[271,563,564],{},"Minters go through several states:",[566,567,568,574,584,590],"ol",{},[286,569,570,573],{},[289,571,572],{},"Inactive",": Approved by governance but not activated",[286,575,576,579,580,583],{},[289,577,578],{},"Active",": Called ",[275,581,582],{},"activateMinter()"," and can mint tokens",[286,585,586,589],{},[289,587,588],{},"Frozen",": Temporarily restricted from minting (but can still burn)",[286,591,592,595],{},[289,593,594],{},"Deactivated",": Permanently removed from the system",[271,597,598],{},"Minters face several key constraints:",[283,600,601,611,614,617],{},[286,602,603,604,515],{},"Must update collateral within the required interval (typically daily). As of today, the update collateral interval is\nset to 30 hours as per\n",[605,606,610],"a",{"href":607,"rel":608},"https:\u002F\u002Fgovernance.m0.org\u002Fproposal\u002F17943707564765307947230727208177770356513863441428702266086965014917482113266",[609],"nofollow","this proposal",[286,612,613],{},"Must maintain collateralization above the mint ratio",[286,615,616],{},"Pay interest on minted tokens at the minter rate",[286,618,619],{},"Face penalties for missed updates or undercollateralization",[475,621,623],{"id":622},"penalties","Penalties",[271,625,626],{},"Minters can receive penalties in two cases:",[566,628,629,646],{},[286,630,631,634,635],{},[289,632,633],{},"Missed Updates Penalty",": Applied when minters fail to update collateral within required intervals\n",[283,636,637,643],{},[286,638,639,640],{},"Calculated as ",[275,641,642],{},"penaltyRate * principalOfActiveOwedM * missedIntervals",[286,644,645],{},"Charged only once per missed interval",[286,647,648,651,652,654,655],{},[289,649,650],{},"Undercollateralization Penalty",": Applied when active owed ",[275,653,277],{}," exceeds allowed maximum\n",[283,656,657,662],{},[286,658,639,659],{},[275,660,661],{},"penaltyRate * principalOfExcessOwedM * timeSpan \u002F updateCollateralInterval",[286,663,664],{},"Proportional to the duration of undercollateralization",[266,666,361],{"id":667},"validators",[475,669,478],{"id":670},"role-definition-1",[271,672,673],{},"Validators serve as a critical security layer, verifying the accuracy of Minters' collateral updates and having\nemergency powers to protect the protocol. They are trusted entities responsible for bridging the gap between offchain\nassets and onchain accounting.",[475,675,488],{"id":676},"key-functions-1",[271,678,679],{},"Validators interact with the protocol primarily through signature generation and special authority functions:",[475,681,683],{"id":682},"_1-collateral-verification","1. Collateral Verification",[283,685,686,693,696],{},[286,687,688,689,692],{},"Sign offchain messages (",[275,690,691],{},"updateCollateral"," digest) verifying collateral updates, which includes the list of retrieval\nproposals being resolved.",[286,694,695],{},"Signatures include timestamps to prevent replay attacks",[286,697,698],{},"Multiple validators must sign collateral updates to meet the threshold",[475,700,702],{"id":701},"_2-security-controls","2. Security Controls",[283,704,705,711],{},[286,706,707,710],{},[275,708,709],{},"cancelMint(address minter, uint256 mintId)",": Cancel suspicious mint proposals",[286,712,713,716],{},[275,714,715],{},"freezeMinter(address minter)",": Temporarily freeze a minter's ability to mint new tokens",[475,718,720],{"id":719},"_3-signature-requirements","3. Signature Requirements",[283,722,723,726,729],{},[286,724,725],{},"Signatures must be provided in ascending order by validator address",[286,727,728],{},"Each signature must have a timestamp newer than the last signature from that validator",[286,730,731],{},"The protocol enforces a threshold of validator signatures for valid collateral updates",[475,733,735],{"id":734},"security-mechanisms","Security Mechanisms",[271,737,738],{},"Validators implement several security protections:",[283,740,741,747,753],{},[286,742,743,746],{},[289,744,745],{},"Timestamp Verification",": Ensures signatures aren't reused or used out of order",[286,748,749,752],{},[289,750,751],{},"Signature Uniqueness",": Each validator can only provide one valid signature per collateral update",[286,754,755,758],{},[289,756,757],{},"Emergency Powers",": Ability to cancel mints and freeze Minters to mitigate potential harm",[266,760,439],{"id":761},"earners",[475,763,478],{"id":764},"role-definition-2",[271,766,767,768,770,771,773],{},"Earners are approved addresses that can enable earning on their ",[275,769,277],{}," token balance, allowing them to receive yield based\non the protocol's earning rate. This is a key feature that separates ",[275,772,277],{}," from traditional stablecoins.",[475,775,488],{"id":776},"key-functions-2",[271,778,779,780,494],{},"Earners interact with the protocol primarily through the ",[275,781,293],{},[475,783,785],{"id":784},"_1-earning-status-management","1. Earning Status Management",[283,787,788,794,800],{},[286,789,790,793],{},[275,791,792],{},"startEarning()",": Converts a regular balance to an earning balance (requires TTG approval)",[286,795,796,799],{},[275,797,798],{},"stopEarning()",": Converts an earning balance back to a regular balance (keeps all accrued interest)",[286,801,802,805],{},[275,803,804],{},"stopEarning(address)",": Safety function allowing anyone to stop earning for an account that's been removed from the\napproved list",[475,807,809],{"id":808},"_2-balance-mechanism","2. Balance Mechanism",[271,811,812],{},"When an account is in earning status:",[283,814,815,818,821],{},[286,816,817],{},"Their balance automatically increases over time through continuous compounding",[286,819,820],{},"Balances are stored internally as \"principal amounts\" that grow with the earning index",[286,822,823],{},"No transactions are needed to accrue interest",[475,825,827],{"id":826},"rate-mechanics","Rate Mechanics",[271,829,830],{},"Earners receive yield based on the Earner Rate, which is determined by a sophisticated rate model:",[283,832,833,836,839,842],{},[286,834,835],{},"The rate model ensures yield to earners never exceeds interest paid by minters",[286,837,838],{},"Uses a mathematical formula with both instantaneous and time-integrated approaches",[286,840,841],{},"Applied with a safety factor (98% of the theoretical safe rate)",[286,843,844],{},"Continuously updated when key functions are called",[266,846,848,849,851],{"id":847},"regular-m-holders","Regular ",[275,850,277],{}," Holders",[475,853,478],{"id":854},"role-definition-3",[271,856,848,857,859],{},[275,858,277],{}," holders use it as a stablecoin without the earning feature. Their balances remain static and only change\nthrough explicit transactions.",[475,861,488],{"id":862},"key-functions-3",[271,864,848,865,867],{},[275,866,277],{}," holders have standard ERC20 capabilities with additional features:",[475,869,871],{"id":870},"token-operations","Token Operations",[283,873,874,892,898],{},[286,875,876,877,436,880,883,884,887,888,891],{},"Standard transfers (",[275,878,879],{},"transfer",[275,881,882],{},"transferFrom","), approvals (",[275,885,886],{},"approve","), and balance inquiries (",[275,889,890],{},"balanceOf",").",[286,893,894,895,891],{},"Support for gasless approvals through EIP-2612 permits (",[275,896,897],{},"permit",[286,899,900,901,436,904,891],{},"Support for transfers with authorization through EIP-3009 (",[275,902,903],{},"transferWithAuthorization",[275,905,906],{},"receiveWithAuthorization",[475,908,910],{"id":909},"transfer-mechanics","Transfer Mechanics",[271,912,913],{},"Transfers between different types of accounts follow specific rules:",[283,915,916,919,922],{},[286,917,918],{},"Between two non-earning accounts: Standard token transfer.",[286,920,921],{},"Between non-earning and earning accounts: Balance conversion occurs, using protocol-favoring rounding (principal\nrounded down on receive, principal rounded up on send).",[286,923,924,925,927],{},"All transfers are subject to consistency checks and appropriate balance updates in the ",[275,926,293],{}," contract.",[271,929,930,933,934,936,937,939,940,943,944,948],{},[289,931,932],{},"Note on Minter Debt Repayment",": Regular ",[275,935,277],{}," holders can choose to interact with the ",[275,938,304],{},"'s ",[275,941,942],{},"burnM","\nfunction. This allows them to burn their ",[945,946,947],"em",{},"own"," tokens to help repay the outstanding debt of a specific Minter (either\nactive or deactivated), acting as an indirect way to support protocol stability or participate in the informal\nliquidation of a deactivated minter's position. This is distinct from standard token operations.",[266,950,952],{"id":951},"power-token-holders","Power Token Holders",[475,954,478],{"id":955},"role-definition-4",[271,957,958,959,961],{},"Power token holders act as the primary governance participants, responsible for day-to-day protocol governance through\nthe ",[275,960,429],{}," and emergency actions through the EmergencyGovernor.",[475,963,488],{"id":964},"key-functions-4",[271,966,967],{},"Power token holders can influence the protocol through several mechanisms:",[475,969,971],{"id":970},"_1-standard-governance","1. Standard Governance",[283,973,974,977,980,983],{},[286,975,976],{},"Vote on adding\u002Fremoving addresses from minter\u002Fvalidator\u002Fearner lists",[286,978,979],{},"Vote on key protocol parameters like mint ratio, collateral update interval, etc.",[286,981,982],{},"Propose and vote on protocol parameter changes",[286,984,985,987],{},[275,986,429],{}," proposals require a simple majority to pass (yes votes > no votes)",[475,989,991],{"id":990},"_2-emergency-governance","2. Emergency Governance",[283,993,994,997,1000],{},[286,995,996],{},"Vote on emergency actions through the EmergencyGovernor",[286,998,999],{},"Can take immediate action to protect the protocol in emergency situations",[286,1001,1002],{},"EmergencyGovernor uses a threshold ratio mechanism requiring a minimum percentage of yes votes",[475,1004,1006],{"id":1005},"_3-token-mechanics","3. Token Mechanics",[283,1008,1009,1012,1015,1018,1021,1024],{},[286,1010,1011],{},"Power token is inflationary (10% per active voting epoch)",[286,1013,1014],{},"Token holders can directly vote or delegate their voting power",[286,1016,1017],{},"Snapshots of balances, voting powers, and delegations occur at epoch boundaries",[286,1019,1020],{},"Inflation rewards are only given to those who vote on ALL proposals in a voting epoch",[286,1022,1023],{},"Cannot transfer\u002Fdelegate\u002Fmint during odd epochs (voting epochs)",[286,1025,1026],{},"Voting power is calculated from the previous epoch's balance",[475,1028,1030],{"id":1029},"_4-dutch-auction","4. Dutch Auction",[283,1032,1033,1036,1039,1042],{},[286,1034,1035],{},"Can buy Power tokens during Dutch auctions during non-voting epochs",[286,1037,1038],{},"Price decreases exponentially over time, with the slope halving every period",[286,1040,1041],{},"Purchase price is relative to the previous epoch's total supply",[286,1043,1044],{},"Payments go to the Distribution Vault",[266,1046,1048],{"id":1047},"zero-token-holders","Zero Token Holders",[475,1050,478],{"id":1051},"role-definition-5",[271,1053,1054],{},"Zero token holders possess meta-governance rights, essentially serving as the highest level of governance in the\nprotocol. They have the unique ability to completely redeploy the governance system and receive rewards from excess\nyield and other protocol fees.",[475,1056,488],{"id":1057},"key-functions-5",[271,1059,1060],{},"Zero token holders have special privileges in the protocol:",[475,1062,1064],{"id":1063},"_1-meta-governance","1. Meta-Governance",[283,1066,1067,1070,1073,1076,1079],{},[286,1068,1069],{},"Can vote to completely redeploy the standard and emergency governance systems through the ZeroGovernor",[286,1071,1072],{},"Can reset governance to either the current Power token or Zero token holders (complete governance reset)",[286,1074,1075],{},"Can update the threshold ratio for proposals in ZeroGovernor or EmergencyGovernor",[286,1077,1078],{},"Can set new cashTokens for the entire system",[286,1080,1081],{},"ZeroGovernor proposals require a minimum threshold of votes to pass",[475,1083,1085],{"id":1084},"_2-reward-mechanism","2. Reward Mechanism",[283,1087,1088,1094,1097],{},[286,1089,1090,1091,1093],{},"Receive Zero token rewards for participation in ",[275,1092,429],{}," voting",[286,1095,1096],{},"Claim excess yield and fees from the Distribution Vault",[286,1098,1099],{},"Buy Power token with a discount during Dutch auctions",[475,1101,1006],{"id":1102},"_3-token-mechanics-1",[283,1104,1105,1108,1111,1117,1120],{},[286,1106,1107],{},"ERC20 token with 6 decimals",[286,1109,1110],{},"Supports EIP-3009, EIP-712 with EIP-1271 support, and EIP-5805",[286,1112,1113,1114,1116],{},"Can only be minted by ",[275,1115,429],{}," as reward for voting participation",[286,1118,1119],{},"Used for voting in ZeroGovernor",[286,1121,1122],{},"Epochs are 15 days long with snapshots taken at the end of each epoch",[266,1124,1126],{"id":1125},"role-interactions-and-system-balance","Role Interactions and System Balance",[271,1128,1129],{},"The M0 Protocol maintains balance through carefully designed interactions between roles:",[475,1131,1133],{"id":1132},"minter-validator-relationship","Minter-Validator Relationship",[283,1135,1136,1139,1142],{},[286,1137,1138],{},"Minters propose collateral updates and mint requests",[286,1140,1141],{},"Validators verify collateral and can intervene when necessary",[286,1143,1144],{},"This creates a checks-and-balances system for minting activity",[475,1146,1148],{"id":1147},"minter-earner-balance","Minter-Earner Balance",[283,1150,1151,1154,1157],{},[286,1152,1153],{},"Minters pay interest on borrowed tokens (minter rate)",[286,1155,1156],{},"Earners receive interest on their holdings (earner rate)",[286,1158,1159],{},"Rate models ensure earner yield never exceeds minter interest obligations",[475,1161,1163],{"id":1162},"governance-hierarchy","Governance Hierarchy",[283,1165,1166,1171,1174,1177],{},[286,1167,1168,1169],{},"Power token holders control standard parameter changes through ",[275,1170,429],{},[286,1172,1173],{},"Zero token holders have meta-governance capabilities through ZeroGovernor",[286,1175,1176],{},"EmergencyGovernor provides quick response capability for urgent issues",[286,1178,1179],{},"This creates a tiered governance structure for different types of decisions",[475,1181,1183],{"id":1182},"distribution-vault-mechanism","Distribution Vault Mechanism",[283,1185,1186,1189,1192,1195],{},[286,1187,1188],{},"The DistributionVault receives excess yield generated by Minters not distributed to Earners",[286,1190,1191],{},"It also receives cash tokens from Power token auctions and unrefunded proposal fees",[286,1193,1194],{},"Zero token holders can claim their pro-rata share of these accumulated assets",[286,1196,1197],{},"This provides an incentive mechanism for Zero token holders to participate in governance",[475,1199,1201],{"id":1200},"cash-token-system","Cash Token System",[283,1203,1204,1209,1212,1218,1221],{},[286,1205,1206,1207],{},"Cash tokens are used to pay proposal fees in ",[275,1208,429],{},[286,1210,1211],{},"They're also used to purchase Power tokens in Dutch auctions",[286,1213,1214,1215,1217],{},"Expected to be WETH and ",[275,1216,277],{}," according to the Whitepaper",[286,1219,1220],{},"Must be in an allowed set defined at ZeroGovernor deployment",[286,1222,1223],{},"Can be changed via ZeroGovernor proposals",[475,1225,1227],{"id":1226},"economic-incentives","Economic Incentives",[283,1229,1230,1233,1236,1239,1242],{},[286,1231,1232],{},"Minters are incentivized to maintain proper collateralization",[286,1234,1235],{},"Validators are trusted to verify offchain collateral accurately",[286,1237,1238],{},"Earners benefit from yield generated by the system",[286,1240,1241],{},"Power token holders are rewarded with inflation for active participation in all proposals",[286,1243,1244],{},"Zero token holders can claim excess yield and fees while maintaining meta-governance rights",[266,1246,1248],{"id":1247},"trust-model","Trust Model",[271,1250,1251],{},"The protocol operates with the following trust assumptions:",[283,1253,1254,1259,1264,1272,1278,1284],{},[286,1255,1256,1258],{},[289,1257,361],{},": Fully trusted to verify offchain collateral accurately and monitor onchain activities. They must be\nreachable and able to issue valid signatures for minters in a timely manner.",[286,1260,1261,1263],{},[289,1262,338],{},": Trusted to maintain their offchain collateral and meet protocol obligations. Minters are expected to\nupdate their collateral at required intervals and pay any imposed penalties.",[286,1265,1266,1271],{},[289,1267,1268,1270],{},[275,1269,277],{}," holders",": Not trusted, but can freely use the token as a stablecoin without special permissions.",[286,1273,1274,1277],{},[289,1275,1276],{},"Power token holders",": Trusted to act in the best interest of the protocol for day-to-day governance. They are\nexpected to vote on proposals and participate actively in governance.",[286,1279,1280,1283],{},[289,1281,1282],{},"Zero token holders",": Trusted with meta-governance authority to reset the entire governance system if necessary.\nThey have the highest level of governance power and are assumed to act as responsible stewards of the protocol.",[286,1285,1286,1289,1290,1292],{},[289,1287,1288],{},"CashTokens",": Expected to be WETH and ",[275,1291,277],{}," as stated in the Whitepaper, but nothing prevents deployment with other\ncashTokens. These must be ERC20-compliant without special behavior (such as transfer hooks, rebasing mechanisms, or\ntransfer fees).",[271,1294,1295],{},"The protocol incorporates several safeguards against potential trust violations:",[566,1297,1298,1304,1307,1310],{},[286,1299,1300,1301,1303],{},"Multi-level governance (",[275,1302,429],{},", EmergencyGovernor, ZeroGovernor)",[286,1305,1306],{},"Collateral verification through multiple validators",[286,1308,1309],{},"Penalty systems for minters who don't follow protocol rules",[286,1311,1312],{},"Economic incentives aligning with protocol health for all participants",[271,1314,1315],{},"This trust model creates a balanced system where each role has appropriate permissions and incentives to maintain\nprotocol stability and security.",{"title":1317,"searchDepth":1318,"depth":1319,"links":1320},"",1,2,[1321,1322,1323,1333,1341,1348,1355,1363,1370,1378],{"id":268,"depth":1319,"text":269},{"id":319,"depth":1319,"text":320},{"id":473,"depth":1319,"text":338,"children":1324},[1325,1327,1328,1329,1330,1331,1332],{"id":477,"depth":1326,"text":478},3,{"id":487,"depth":1326,"text":488},{"id":497,"depth":1326,"text":498},{"id":518,"depth":1326,"text":519},{"id":542,"depth":1326,"text":543},{"id":560,"depth":1326,"text":561},{"id":622,"depth":1326,"text":623},{"id":667,"depth":1319,"text":361,"children":1334},[1335,1336,1337,1338,1339,1340],{"id":670,"depth":1326,"text":478},{"id":676,"depth":1326,"text":488},{"id":682,"depth":1326,"text":683},{"id":701,"depth":1326,"text":702},{"id":719,"depth":1326,"text":720},{"id":734,"depth":1326,"text":735},{"id":761,"depth":1319,"text":439,"children":1342},[1343,1344,1345,1346,1347],{"id":764,"depth":1326,"text":478},{"id":776,"depth":1326,"text":488},{"id":784,"depth":1326,"text":785},{"id":808,"depth":1326,"text":809},{"id":826,"depth":1326,"text":827},{"id":847,"depth":1319,"text":1349,"children":1350},"Regular $M Holders",[1351,1352,1353,1354],{"id":854,"depth":1326,"text":478},{"id":862,"depth":1326,"text":488},{"id":870,"depth":1326,"text":871},{"id":909,"depth":1326,"text":910},{"id":951,"depth":1319,"text":952,"children":1356},[1357,1358,1359,1360,1361,1362],{"id":955,"depth":1326,"text":478},{"id":964,"depth":1326,"text":488},{"id":970,"depth":1326,"text":971},{"id":990,"depth":1326,"text":991},{"id":1005,"depth":1326,"text":1006},{"id":1029,"depth":1326,"text":1030},{"id":1047,"depth":1319,"text":1048,"children":1364},[1365,1366,1367,1368,1369],{"id":1051,"depth":1326,"text":478},{"id":1057,"depth":1326,"text":488},{"id":1063,"depth":1326,"text":1064},{"id":1084,"depth":1326,"text":1085},{"id":1102,"depth":1326,"text":1006},{"id":1125,"depth":1319,"text":1126,"children":1371},[1372,1373,1374,1375,1376,1377],{"id":1132,"depth":1326,"text":1133},{"id":1147,"depth":1326,"text":1148},{"id":1162,"depth":1326,"text":1163},{"id":1182,"depth":1326,"text":1183},{"id":1200,"depth":1326,"text":1201},{"id":1226,"depth":1326,"text":1227},{"id":1247,"depth":1319,"text":1248},"Overview of the primary roles within the M0 ecosystem, their responsibilities, and how they interact with the protocol's core smart contracts.","md",null,{},true,{"title":228,"description":1379},"SCgoPpXdI0Zyfze6Jir8CoWOILmF_vGbhiZdGAySIRk",[1387,1389],{"title":224,"path":225,"stem":226,"description":1388,"children":-1},"Detailed documentation of the interest rate models that govern minter obligations and earner yield within the M0 Protocol.",{"title":232,"path":233,"stem":234,"description":1390,"children":-1},"Technical deep dive into the M0 Protocol's implementation on the Solana blockchain, including program specifications, V2 upgrades, and developer integration guides."]