Under the current V2 code, a conversion starts at SwapFacility. For M to wM, the facility takes M, calls the wrapper and mints the same token amount to the recipient. For wM to M, it takes wM, the wrapper burns it and sends M back through the facility. wM is currently an approved, non-permissioned Extension, but the facility still requires its M_SWAPPER_ROLE for M-to-extension and extension-to-M paths. The wrapper's own wrap and unwrap functions accept calls only from that facility, so possession alone does not make a wallet an authorized direct converter.
New wM accounts do not earn by default. At the September 5 snapshot the Registrar’s earners_list_ignored key was zero, so an account had to appear on the approved-earners list before anyone could start earning for it. Registrar governance can set that key nonzero and bypass the individual list. The balance stays static while principal follows the M index; claimFor realizes accumulated yield and sends it to the account’s chosen recipient, a Registrar governance override or the account itself. Current V2 source contains no EarnerManager or per-account fee path, despite those features appearing in the rendered M0 guide.
The July 31 upgrade points the Ethereum proxy to implementation 0x6D9DB63aFCCF515f393D5e65Be69d38Bb3B29D13. On September 5, 2026 the token was unpaused, earning was enabled globally and total supply was 83,596,034.308359 wM. The one-of-two MXON Safe was both immutable migrationAdmin and DEFAULT_ADMIN_ROLE holder, so it could run migrate(address) and grant or revoke the freeze, pause, forced-transfer and excess-manager roles. A second no-argument migrate() is callable by anyone but only executes the migrator selected through the Registrar; that key was zero at the snapshot, so the route then reverted. Separate live roles could pause transfers, freeze accounts, force balances out of frozen accounts and change the excess destination. These are current V2 controls, whereas the audit list for Wrapped M covers reviews from July and August 2024. The migration admin was Safe 0xf7298F047F92d0Eb21231478Ef6ba9FE1eCD4c73 with two owners and threshold one; EOA 0x4F1cf2449B4D07bD86Fd57709B1695C11D8314F2 held freeze, pause and forced-transfer roles. A successful August 3 transaction emitted Frozen events for exactly 100 addresses, so account control was used rather than merely available in source.