M0 just raised a $40M Series B.
Thinking about the protocol has helped me understand stable coins better. The story goes something like this.
WHY DOES CRYPTO NEED DOLLARS?
I couldn't explain it better than Arthur Hayes:
Real traders and market makers are agnostic to the success or failure of Bitcoin (and crypto in general). They have to be, as it isn’t their job to take a medium- or long-term view. Their sole focus is to turn a profit by providing liquidity 24/7.
One of the prerequisites of performing their role well is the ability to move between USD and crypto quickly and cheaply. But the Western banking system doesn’t make it easy for them, as it isn’t set up to move money quickly and affordably – regardless of whether you are trying to pass funds internally between depositors, or externally amongst banks. And given that banking is an oligopoly protected by government charters, there is zero incentive for banks to make an effort to become faster or cheaper.
Therefore, there arose a need among crypto traders to move their funds back and forth more quickly between USD and crypto. To solve this issue, traders realised that they needed to create a token on a public blockchain that could be moved around as easily as Bitcoin, but that would otherwise represent and have the exact same value as a US dollar. That way, they could easily move their money in and out of it and it would be functionally identical to moving in and out of USD – but without the need to wait on the slow-moving Western banking system. If someone created such a product, traders would be able to move their digital USD equivalent onto and off of exchanges nearly instantly and 24/7 for the cost of a few cents per transaction.
In short, stablecoins weren't originally needed for peer-to-peer payments. The original “need” of retail crypto users was to get dollars to buy things in the real world. To provide liquidity more efficiently, traders could use stablecoins.
From there, retail users also started adopting stablecoins as a way to stabilize their spending power while staying onchain:
10+% stablecoin yields (originally achieved through lending and governance token emissions in DeFi summer) made stablecoins more attractive than treasuries. BTW, this still works, just use gtUSDa which we helped build;
Large crypto holders started borrowing stablecoins against their holdings for tax efficiency;
Stablecoins became common for B2B and B2C payments for more crypto-native companies.
THE ASSET BECAME THE ACCOUNT
Crypto wallets are not a good parallel to traditional bank accounts.
If you hold dollars in a Bank of America bank account, you are really holding a stablecoin called “Bank of America dollars”. Any amount in excess of the FDIC $250k limit would be lost if the bank became insolvent.
In crypto, the asset is the account.
You don't have to KYC to create a crypto wallet, but you can be blacklisted from using a stablecoin like USDC. When you hold USD in a bank account, the underlying treasury yield is claimed by the bank. When you hold USDC, the underlying treasury yield is claimed by Circle.
So using USDC may feel crypto-native in many ways. You are transacting onchain, there is no KYC process during “onboarding”, USDC is widely accepted across assets and exchanges, it is liquid and easy to exit, and it’s an ERC20 contract.
Unfortunately it’s also less than ideal in some ways:
While there is no proactive KYC process, there is a retroactive blacklist,
Circle is getting yield from your dollars and there is no way for holders to impact where that yield goes as Circle governs USDC,
There are no guardrails on issuer diversification,
If you want to access a stablecoin secured by Circle's issuers, you have to buy USDC,
Any new fiat-backed stablecoins are not easily interoperable with USDC which may slow down the adoption of new stablecoins and hurt innovation, etc.
DECOMPOSE EVERYTHING
If stablecoins ARE the bank account, are we comfortable with that account being vertically integrated with the issuers and the yield?
Users want more choice (without the drawbacks of lack of interoperability) and portability.
In some ways, USDC is just a bank in disguise. Just because you are using it from your non-custodial Metamask wallet doesn't mean that it is credibly neutral money.
M0 decomposes the entire stablecoin ecosystem into several pieces:
Minters hold eligible off-chain assets (e.g.,, treasuries) and use them as collateral to mint $M0, the stablecoin primitive;
Validators have off-chain contracts with minters can ensure that they are representing their collateral holdings accurately;
Developers can create new stablecoins by simply wrapping M0 into a new stablecoin using one of many extensions provided by the M0 team.
Instead of claiming all the underlying yield, M0 charges a mint rate for issuers and redistributes some of the minted rate to help them earn back M0 (or further redistribute it to customers).
This is why M0 is not trying to be a stablecoin in itself, instead serving as a liquidity layer for other stablecoins.
How does it work in practice? Consider mUSD, Metamask’s stablecoin. The flow is as follows:
A user wants to buy mUSD with USDC;
The Metamask wallet calls Bridge’s API which completes the swap;
Behind the scenes Bridge can wrap M0 tokens to mint mUSD and request a USDC redemption asynchronously;
Metamask can be eligible to earn $M0 for the M0 holdings in their mUSD smart contract but is also free to redistribute that yield to users programmatically or manually;
Metamask can then encourage users to use mUSD for payments (effectively becoming more like a bank account). The more users hold a mUSD balance to make payments, the more $M0 Metamask can earn and profit from (instead of giving up all the yield to USDC).

Aggregators, games and other applications which would naturally end up facilitating user wallets and payments now have an easy pathway to create their own stablecoins without having to worry about the issuance side at all.
The most elegant thing about M0 is that they've abstracted the complexity of issuance and cross-stablecoin liquidity behind a single ERC20 token and a set of smart contracts you can deploy and use.
Rollup stacks created a proliferation of L2s launched by apps which allowed the apps to access sequencer fees as a revenue stream. Similarly, M0 will allow more apps to issue their own stablecoins to reclaim yield.
Their dual-token governance system and ability to submit guidance in the form of PDFs is also very interesting but that’s a topic for another post!
In crypto, the asset is the account.