Developer Guides

Integrating with the M0 Portals

Technical details and step-by-step workflows for developers integrating with the M0 stablecoin bridging infrastructure.

This guide provides technical details and step-by-step workflows for developers integrating with the M0 stablecoin bridging infrastructure. The system uses two distinct protocols for different chains, so it is crucial to use the correct integration path.

The Portal system is built on the Wormhole Native Token Transfer (NTT) standard. It is used for bridging tokens to and from Arbitrum One and Optimism.

Key Concepts

  • Protocol: Wormhole NTT
  • Chains: EthereumArbitrum One, EthereumOptimism
  • Chain IDs: Uses Wormhole Chain IDs (uint16), e.g., Ethereum = 2, Arbitrum = 23, Optimism = 24.
  • Addresses: Recipient and token addresses are passed as bytes32.

Contract Addresses

ContractNetwork(s)Address
Hub PortalEthereum0xD925C84b55E4e44a53749fF5F2a5A13F63D128fd
Spoke PortalArbitrum, Optimism0xD925C84b55E4e44a53749fF5F2a5A13F63D128fd
Wormhole TransceiverAll0x0763196A091575adF99e2306E5e90E0Be5154841

M0 Portal - Hub to Spoke (e.g., Ethereum -> Arbitrum)

This workflow details how to lock a token (M or wM) on Ethereum and mint its equivalent on a spoke chain like Arbitrum.

M0 Portal - Spoke to Hub (e.g., Arbitrum -> Ethereum)

This workflow is the mirror image of the first. You will interact with the Spoke Portal contract on the source chain (e.g., Arbitrum).

  1. Approve: Call approve on the token contract on the spoke chain, granting an allowance to the Spoke Portal (0xD92...28fd).
  2. Quote Fee: Obtain the delivery fee for sending a message from the spoke chain to Ethereum.
  3. Bridge: Call transferMLikeToken on the Spoke Portal.
    • destinationChainId: 2 (Wormhole ID for Ethereum).
    • destinationToken: The bytes32 address of the target token on Ethereum.

The Portal Lite system is built on the Hyperlane protocol. It is used for bridging tokens to and from Plume and HyperEVM.

Key Concepts

  • Protocol: Hyperlane
  • Chains: EthereumPlume, EthereumHyperEVM
  • Chain IDs: Uses standard EVM Chain IDs (uint256), e.g., Ethereum = 1, Plume = 98866.
  • Addresses: All addresses are standard address types.

Contract Addresses

ContractNetwork(s)Address
Portal LiteEthereum, Plume, HyperEVM0x36f586A30502AE3afb555b8aA4dCc05d233c2ecE

M0 Portal Lite - Hub to Spoke (e.g., Ethereum -> Plume)

This workflow details locking a token on Ethereum and minting its equivalent on Plume.

M0 Portal Lite - Spoke to Hub (e.g., Plume -> Ethereum)

The process is identical to Workflow 1 but performed on the spoke chain's contracts.

  1. Quote Fee: Call quoteTransfer on the Portal Lite contract on Plume to get the fee for delivering a message to Ethereum (destinationChainId = 1).
  2. Approve: Call approve on the token contract on Plume, granting an allowance to the Portal Lite (0x36f...2ecE).
  3. Bridge: Call transferMLikeToken on the Portal Lite on Plume, with destinationChainId set to 1.
Copyright © M0 Foundation 2026