Skip to content

Key Components

  • User: The EOA or contract initiating or receiving cross-chain transfers.

  • $M Token: The native ERC-20 compliant token contract deployed on Ethereum.

  • Wrapped $M / Extensions: ERC-20 compliant token contracts (on Hub or Spokes) that wrap the native $M. They must implement the following wrap and unwrap for Portal interaction.

    wrap(address recipient, uint256 amount) external returns (uint240 wrapped)
    unwrap(address recipient, uint256 amount) external returns (uint240 unwrapped)
  • HubPortal (Ethereum):
    • Manages locking/releasing of native $M.
    • Handles unwrap/wrap logic for extensions on the Hub.
    • Initiates/receives Wormhole messages for transfers.
    • Propagates metadata (Index, Registrar values) to Spokes.
    • Inherits from Wormhole's NttManager.
  • SpokePortal (Spoke Chains):
    • Manages minting/burning of the Spoke chain's $M representation.
    • Handles unwrap/wrap logic for extensions on the Spoke.
    • Initiates/receives Wormhole messages for transfers.
    • Receives and applies metadata from the Hub.
    • Inherits from Wormhole's NttManager.
  • Wormhole NTT Framework: The underlying technology used for cross-chain communication. M Portals utilize its NttManager contract as a base, extending its functionality for $M-specific logic and metadata propagation.

  • Wormhole Transceiver: A Wormhole contract deployed on each chain, part of the NTT framework, responsible for the low-level sending and receiving of Wormhole messages used by the NttManager.

  • Wormhole Core / Guardians / Relayers: The fundamental Wormhole infrastructure that observes, validates (Guardians creating VAAs), and delivers messages across chains. These are largely abstracted away by the NTT framework implementation used by the Portals.