# Bancor 3 Mechanics - #1 Swap

What happens during “Swap”? - an overview of the protocol and a comparison with the traditional AMM model.

## Swap <a href="#id-3901" id="id-3901"></a>

Let’s start with an example of a swap and measure its impact on withdrawals from the system. In Bancor 3, all tokens are paired with the BNT Omnipool. If you are swapping TKN A to TKN B, the following set of swaps will occur:

1. TKN A → BNT
2. BNT → TKN B

Take the diagram below which shows a BNT to TKN swap

<figure><img src="https://miro.medium.com/max/1400/0*u4s9aSXX5GIBU0Lh" alt="" height="512" width="700"><figcaption></figcaption></figure>

Here, we have a pool that consists of Token A and BNT, with each Token A having value of $1.33 and each BNT having a value of $1. in Bancor 3 all pools are weighted 50–50, meaning the total liquidity in the pool is therefore $8, with each side contributing $4.

An outside trader performs a swap on this liquidity pool by swapping 2 BNT for 1 Token A. The final state of the pool after the swap is 2 Token A and 6 BNT. On the Token A side, there is a deficit of 33% (1 out of the original 3 tokens was removed) and on the BNT side there is now a surplus of 50% (relative to the initial quantity 4 vs 6). When looking at the picture as a whole, the liquidity in the pool is now $12 with the cumulative value of each respective token in the pool being $6 (i.e. each side has an even dollar value).

In Bancor 3, all deposits are single sided, meaning users only have to contribute one side of a pool. In our example above, assume that the entirety of the Token A pool was contributed by a single liquidity provider and the Bancor Protocol matched his Token A side deposit with BNT (it contributed the BNT side of the pool). The LP in the Token A pool is currently in a state of deficit, while the BNT pool is currently in a state of surplus. What happens if the Token A LP decides to withdraw?

Read the [Withdrawal article here](/bancor-amm/bancor-3-mechanics/bancor-3-mechanics-2-withdrawal.md).<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://support.bancor.network/bancor-amm/bancor-3-mechanics/bancor-3-mechanics-1-swap.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.
