Skip to main content
Cross-chain messaging via the deBridge Messaging Protocol (DMP) is not relevant to most API integrations. It deals with cross-chain authenticated messages and arbitrary data transfer — not value transfers or swaps. For swaps, onboarding, and hooks, see the deBridge Liquidity Network API.
For use cases beyond asset transfers, the deBridge Messaging Protocol (DMP) enables arbitrary cross-chain message passing and contract calls. DMP is the foundational messaging layer for the rest of the deBridge products, which are built on top of it.

When to Use DMP

DMP is the right choice when you need:
  • Arbitrary data transfer: Send any data across chains
  • Cross-chain contract calls: Trigger actions on remote contracts
  • Custom protocol building: Build cross-chain applications from scratch
  • Governance: Cross-chain voting and execution

Primary Use Case: dePort

The most prominent use case for DMP is dePort — multi-chain asset deployment. dePort uses DMP to create and manage synthetic representations of assets across chains, enabling protocols to deploy their tokens on multiple chains with canonical bridging powered by deBridge’s validator network.

DMP vs DLN

AspectDMPDLN
PurposeArbitrary messagingValue transfer & swaps
Data payloadAny arbitrary dataTrade/swap instructions
ExecutionCustom receiver contractsBuilt-in fulfillment via solvers
Integration complexityHigher (custom smart contracts required)Lower (API-based)
Authenticated messagesYes (via PROXY_WITH_SENDER)N/A
Use caseCustom protocols, dePort.Swaps, onboarding

How DMP Works

  1. Send message: Contract calls deBridgeGate.send() with your data
  2. Validation: deBridge validators wait for finality, then sign the message
  3. Storage: Signatures stored on Arweave (permanent, decentralized)
  4. Claim: Anyone can claim and execute on destination chain
  5. Execute: Your receiver contract processes the message

Key Concepts

Authenticated Messages

DMP supports authenticated messages, allowing receiver contracts to verify the origin of cross-chain calls. When you set the PROXY_WITH_SENDER flag, the CallProxy contract exposes:
  • submissionNativeSender: The address that initiated the message on the source chain
  • submissionChainIdFrom: The chain ID where the message originated
See the Building EVM dApp guide for a complete example.

Validators

deBridge validators:
  • Monitor all supported chains
  • Sign messages after finality is reached
  • Store signatures in Arweave (permanent storage)
  • Enable trustless claiming

Getting Started with DMP

  1. Understand the protocol: Protocol Overview
  2. Review security model: Security
  3. Build your dApp: Building EVM dApp
  4. Deploy and test: Development Tools

Next Steps