# Slippage Tolerance Distribution in Cross-Chain Swaps

Generally, a cross-chain swap consists of **three transactions** executed on the **source**, **host**, and **destination** chains.

There can be on-chain swaps within a cross-chain swap:

* **(A) Source chain** — An on-chain swap is **optional** and performed if the source token differs from the transit token used on the source chain.
* **(B) Host chain** — An on-chain swap is **always performed** to exchange synthetic tokens issued for the source and destination chains.
* **(C) Destination chain** — An on-chain swap is **optional** and performed if the destination token differs from the transit token used on the destination chain.

**Example**

Consider a swap: ETH (Ethereum) → BNB (BNB Chain)\
This cross-chain swap includes three on-chain swaps:

* **(A) Ethereum:** ETH → USDC
* **(B) Symbiosis Chain:** sUSDC (issued for Ethereum) → sUSDC (issued for BNB Chain)
* **(C) BNB Chain:** USDC → BNB

## Slippage Tolerance Value

The Symbiosis API accepts slippage tolerance values ranging from 0.2% to 10%. The specified slippage tolerance value applies to the entire cross-chain swap.

The following describes how this value is divided between chains.

Let the specified slippage tolerance be **Y**.

**Slippage Tolerance Allocation Summary**

| <p>A: ✗ B: ✓ C: ✗<br></p><p>Swap example:<br>USDC (Ethereum) -> USDC (BNB)</p> | <ul><li>B (host): 0.2%</li><li>Remaining slippage ignored</li></ul>                                                                                                                                                                |
| ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p>A: ✓ B: ✓ C: ✗<br><br>Swap example:<br>ETH (Ethereum) -> USDC (BNB)</p>     | <p>if Y/2 > 0.2%</p><ul><li>B (host): 0.2</li><li>A (source): Y − 0.2</li></ul><p>Else</p><ul><li>B (host): Y/2</li><li>A (source): Y/2</li></ul>                                                                                  |
| <p>A: ✗ B: ✓ C: ✓<br></p><p>Swap example:<br>USDC (Ethereum) -> BNB (BNB)</p>  | <p>if Y/2 > 0.2%</p><ul><li>B (host): 0.2%</li><li>C (destination): Y - 0.2</li></ul><p>Else</p><ul><li>B (host): Y/2</li><li>C (destination): Y/2</li></ul>                                                                       |
| <p>A: ✓ B: ✓ C: ✓<br></p><p>Swap example:<br>ETH (Ethereum) -> BNB (BNB)</p>   | <p>if Y/3 > 0.2%</p><ul><li>B (host): 0.2%</li><li>A (source): (Y - 0.2) / 2</li><li>C (destination): (Y - 0.2) / 2</li></ul><p>else</p><ul><li>B (host): Y / 3</li><li>A (source): Y / 3</li><li>C (destination): Y / 3</li></ul> |

**Note:**

* A maximum of 0.2 % is reserved for the host-chain on-chain swap (B).

**Example:**

ETH (Ethereum) -> BNB (BNB), Y = 1.5%

* **A (source):** 0.65%
* **B (host):** 0.2%
* **C (destination):** 0.65%

### Auto Slippage Mode

{% hint style="info" %}
This feature is currently under development. Detailed parameters and calculation logic will be documented after release.
{% endhint %}

If the slippage tolerance value is not specified for a cross-chain swap, Symbiosis will apply an auto slippage mode.

In this mode, the slippage tolerance is determined dynamically based on the current on-chain market conditions and liquidity depth for each leg of the swap.

<br>


---

# 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.symbiosis.finance/developer-tools/symbiosis-api/slippage-tolerance-distribution-in-cross-chain-swaps.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.
