# IBC Relayer AVAX L1 Proof

The sequence diagram describes an Inter-Blockchain Communication (IBC) relayer retrieving Avalanche L1 proof.

The process involves multiple participants: the relayer, L1 Node 1 through Node N, and L1 Validator 1 through Validator N.

The relayer first queries proof by key from L1 Node 1. Node 1 attempts to get the payload by key, and if the signature is already in its internal cache, it retrieves it. If the signature is not cached, it makes a call through the Virtual Machine (VM) context to Validator 1 to sign the payload. After Validator 1 returns the signature, Node 1 forwards it back to the relayer.

A similar process occurs with L1 Node 2 and its corresponding Validator. However, in this case, it's noted that the signature is not cached and needs to be signed by the Validator through the VM context.

The process repeats for all remaining nodes (represented as Node N) and their corresponding Validators (Validator N).

After collecting all signatures from the different L1 Nodes, the relayer then composes these signatures from Node 1, up to Node N.&#x20;

{% @mermaid/diagram content="sequenceDiagram

participant Relayer
participant L1 Node 1
participant L1 Validator 1
participant L1 Node N
participant L1 Validator N

opt Get Proof from Node 1
Relayer -->> L1 Node 1: Query Proof by Key
L1 Node 1->>L1 Node 1: Get payload by Key
alt Signature is in cache
L1 Node 1->>L1 Node 1: Get signature from internal cache
else Signature is not in cache
note right of L1 Node 1: Call through VM Context
L1 Node 1->>L1 Validator 1: Sign payload
L1 Validator 1-->>L1 Node 1: Returns signature
end
L1 Node 1->>Relayer: Returns signature
end

opt Get Proof from Node N
Relayer-->>L1 Node N: Query Proof by Key
L1 Node N->>L1 Node N: Get payload by Key
note right of L1 Node N: Call through VM Context
L1 Node N->>L1 Validator N: Sign payload
L1 Validator N-->>L1 Node N: Returns signature
L1 Node N->>Relayer: Returns signature
end

Relayer->>Relayer: Compose signatures \nfrom Node1, Node2... NodeN" %}


---

# 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/ibc-light-client/ibc-relayer-avax-l1-proof.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.
