Bridging M And wM Tokens
This guide explains how to manually bridge $M and wrapped $M (w$M) tokens between Ethereum (the "Hub") and connected networks (the "Spokes") using a block explorer.
Important: The bridging system uses two different portal contracts depending on the destination chain. Always use the correct Portal address for your transaction.
Prerequisites:
- A Web3 wallet (e.g., MetaMask).
- Your wallet must be funded with the token you wish to bridge.
- Your wallet must have the native currency of the source chain for gas fees (e.g., ETH on Ethereum).
Addresses & Chain IDs
Portal Contract Addresses
Which portal to use based on your destination chain
| Portal Type | Supported Chains | Contract Address |
|---|---|---|
| Portal (NTT/Wormhole) | Arbitrum, Optimism | 0xD925C84b55E4e44a53749fF5F2a5A13F63D128fd |
| Portal Lite (Hyperlane) | Plume, HyperEVM, Linea, Mantra | 0x36f586A30502AE3afb555b8aA4dCc05d233c2ecE |
Token Addresses
Same addresses across all supported chains
| Token | Address |
|---|---|
$M Token | 0x866A2BF4E572CbcF37D5071A7a58503Bfb36be1b |
w$M Token | 0x437cc33344a0B27A429f795ff6B469C72698B291 |
$M and w$M tokens use 6 decimal places. When entering an amount in a contract, add 6 zeros. To transfer 10 tokens, enter 10000000.Chain IDs
| Chain | EVM Chain ID | Wormhole Chain ID | Hyperlane |
|---|---|---|---|
| Ethereum | 1 | 2 | - |
| Arbitrum One | 42161 | 23 | - |
| Optimism | 10 | 24 | - |
| Plume | 98866 | -- | Yes |
| HyperEVM | 999 | -- | Yes |
| Mantra | 5888 | -- | Yes |
| Linea | 59144 | -- | Yes |
Part 1: Hub to Spoke (Bridging from Ethereum)
The process always involves two transactions: approve and transferMLikeToken.
A. Bridging to Arbitrum or Optimism (via M0 Portal)
This uses the Portal (NTT/Wormhole). The steps are the same for bridging either w$M or $M.
B. Bridging to Plume or HyperEVM (via M0 Portal Lite)
This uses the Portal Lite (Hyperlane). The steps are the same for bridging either w$M or $M.
Part 2: Spoke to Hub (Bridging to Ethereum)
This is the reverse process. You will perform the transactions on the source chain's block explorer (e.g., Arbiscan, Plume Explorer).
- From
ArbitrumorOptimism:- Approve: On Arbiscan/Optimistic Etherscan, go to the
$Morw$Mtoken andapprovethe Portal (NTT) address:0xD925C84b55E4e44a53749fF5F2a5A13F63D128fd. - Transfer: Go to the Portal contract (
0xD92...28fd) and calltransferMLikeToken. Use adestinationChainIdof2(Wormhole ID for Ethereum).
- Approve: On Arbiscan/Optimistic Etherscan, go to the
- From
PlumeorHyperEVM:- Approve: On the source explorer, go to the
$Morw$Mtoken andapprovethe Portal Lite address:0x36f586A30502AE3afb555b8aA4dCc05d233c2ecE. - Transfer: Go to the Portal Lite contract (
0x36f...2ecE) and calltransferMLikeToken. Use adestinationChainIdof1(EVM ID for Ethereum).
- Approve: On the source explorer, go to the
Integrating with the M0 Portals
Technical details and step-by-step workflows for developers integrating with the M0 stablecoin bridging infrastructure.
Stablecoin Extension Templates
Compare M0's stablecoin extension models to find the right monetization strategy and deployment chain for your use case.