# Data transfer flow

A scheme describing the data transfer workflow is shown below:

<figure><img src="/files/DTNFpHu6e2yG1Bx1CZzR" alt=""><figcaption><p>Cross-chain Data Protocol scheme</p></figcaption></figure>

**Step 1. A cross-chain transaction is composed.** A cross-chain transaction must be composed according to a certain structure.

**Step 2. A cross-chain transaction is sent to a Bridge smart contract.** Once a cross-chain transaction is created, it is sent to the **Bridge** smart contract located in the source network.

**Step 3. The Bridge smart contract emits an event containing cross-chain call data.** The event with the cross-chain call data is written to a source network block.

**Step 4. Creation of an event block by the Eywa Oracle Network.** Members of the current **Eywa Oracle Network** epoch pull from the source block of the network the events emitted by the Bridge smart contact. The events are then packed into the block in the same order as in the source network block. This block contains, among others, the event we are considering.

**Step 5. BLS signature generation for a block**. After each node-validator creates a block, the process of collecting the threshold BLS signature is initiated. In this way a consensus of all participants of the network regarding the block content is achieved.

**Step 6. Writing a block to the Eywa blockchain.** If consensus is obtained (>⅔ from epoch participants), the block is added to the corresponding **Eywa** blockchain relaychain. A relaychain is a blockchain whose blocks contain cross-chain calls from only one source network.&#x20;

**Step 7. Sending cross-chain call to destination network by Pusher service.** The cross-chain call is sent to **Blockchain B** by the **Pusher** service. The **Pusher** service performs several sequential steps:

1. Parses EYWA blockchain blocks into individual cross-chain calls.
2. Prepares the cross-chain calls for sending by attaching a cryptographic proof that will be verified on the **Bridge** smart contract in **Blockchain B**.
3. Sends the transaction to the **Bridge** smart contract in **Blockchain B** network.

**Step 8. Validation of a cross-chain call in a Bridge smart contract on the destination network.** The **Bridge** smart contract verifies the validity of the cryptographic signature of the epoch participants.

**Step 9. Sending a cross-chain call to the target smart contract.** If the cross-chain call verification in the **Bridge** smart contract is successful, the cross-chain call is redirected to the target smart contract.


---

# 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.eywa.fi/eywa-ecosystem/products/eywa-v1/cross-chain-data-protocol/data-transfer-flow.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.
