> ## Documentation Index
> Fetch the complete documentation index at: https://docs.debridge.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cross-Chain Messaging

> Send arbitrary messages and execute calls across chains

<Note>
  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](/dln-details/overview/introduction).
</Note>

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](/home/products/dln-overview), 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](/dmp-details/dePort/getting-started)** — 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

| Aspect                     | DMP                                      | DLN                              |
| -------------------------- | ---------------------------------------- | -------------------------------- |
| **Purpose**                | Arbitrary messaging                      | Value transfer & swaps           |
| **Data payload**           | Any arbitrary data                       | Trade/swap instructions          |
| **Execution**              | Custom receiver contracts                | Built-in fulfillment via solvers |
| **Integration complexity** | Higher (custom smart contracts required) | Lower (API-based)                |
| **Authenticated messages** | Yes (via `PROXY_WITH_SENDER`)            | N/A                              |
| **Use case**               | Custom 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

```mermaid theme={null}
flowchart TD
    subgraph src["Source Chain"]
        direction LR
        A["Source Contract"] -->|send| B["deBridge Gate"]
    end

    subgraph off["Off-Chain"]
        direction LR
        C["deBridge Validators"] -->|sign| D["Arweave"]
    end

    subgraph dst["Destination Chain"]
        direction LR
        E["deBridge Gate"] -->|execute| F["Receiver Contract"]
    end

    src -->|validate| off
    off -->|claim| dst
```

## 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](/dmp-details/dev-guides/evm/periphery/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](/dmp-details/dev-guides/evm/building-evm-dapp) 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](/dmp-details/dmp/protocol-overview)
2. **Review security model**: [Security](/dmp-details/dmp/security)
3. **Build your dApp**: [Building EVM dApp](/dmp-details/dev-guides/evm/building-evm-dapp)
4. **Deploy and test**: [Development Tools](/dmp-details/dev-guides/development-tools)

## Next Steps

* [DMP Protocol Overview](/dmp-details/dmp/protocol-overview)
* [Cross-Chain Call Lifecycle](/dmp-details/dev-guides/cross-chain-call-lifecycle)
* [EVM Integration Guide](/dmp-details/dev-guides/evm/introduction)
* [Solana Integration Guide](/dmp-details/dev-guides/solana/sending-cross-chain-messages)
* [dePort — Multi-Chain Asset Deployment](/dmp-details/dePort/getting-started)
