# Avalanche Warp Messaging

## Overview

`Landslide Core` comes with built-in support for Avalanche Warp Messaging (AWM). AWM allows any Avalanche Subnet to quickly send arbitrary messages to another Subnet, without relying on a trusted relayer or bridge. This is made possible by utilizing the validators of the sending Subnet. The messages are delivered in just a few seconds, or even less. You can find more information about AWM and how it functions on this [page](https://docs.google.com/presentation/d/1eV4IGMB7qNV7Fc4hp7NplWxK_1cFycwCMhjrcnsE9mU/edit).

<figure><img src="/files/7UjfrmLLgomMR9t0Dcru" alt=""><figcaption></figcaption></figure>

{% @mermaid/diagram content="sequenceDiagram
Actor Sender
Note right of Sender: Create ExportTX message:<br>\*Source chain<br>\*Destination chain<br>\*Recipient address<br>\*amount
Sender->>Subnet A: sign message
Activate Subnet A\
Note right of Subnet A: Create Payload:<br>\*Source chain<br>\*Destination chain<br>\*Recipient address<br>\*amount
Subnet A->>Subnet A:\
Note right of Subnet A: Create UnsignedMessage:<br>\*Source chain<br>\*Destination chain<br>\*Payload<br>
Subnet A->>Avalanche: Calls NewUnsignedMessage <br>using WARP (Go module call)
Avalanche->>Subnet A: Returns WARP unsigned
Subnet A->>Subnet A: Save message into state
Subnet A->>Sender: Returns Tx ID
deactivate Subnet A
participant Subnet A
participant Subnet B
actor Receiver
Sender->>Receiver: Shares Tx ID
Note left of Receiver: Provides list of URIs<br>of subnet A Validators<br>and Tx ID<br>
Receiver->>Subnet B:
Activate Subnet B
Subnet B->>Subnet A: Query Unsigned Message and Signature by Tx ID
Activate Subnet A
Subnet A->>Subnet A: Get Unsigned message from state
Subnet A->>Avalanche: Query Signature of Message
activate Avalanche
Note left of Avalanche: Validator keeps BLS private key<br>it uses this key to sign the Message<br>and Tx ID<br>
Avalanche->>Subnet A: Returns Signature
deactivate Avalanche
Subnet A->>Subnet B: Returns Unsigned Message and Signature
deactivate Subnet A
Avalanche->>Subnet B: Get Validator Node Public Key
Subnet B->>Subnet B: verifies Signature against Public Key
Note left of Subnet B: \*Combines all Signatures together<br>Verifies that this signature was signed<br>by at least \[quorumNum/quorumDen]<br>of the validators of<br>\[msg.SourceChainID] at \[pChainHeight].
Subnet B->>Subnet B: Build and accept block
deactivate Subnet B

" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.landslide.network/product-guides/avalanche-warp-messaging.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
