> For the complete documentation index, see [llms.txt](https://docs.turbine.exchange/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.turbine.exchange/liquidity/manage-liquidity-via-web-ui.md).

# Manage Liquidity via Web UI

This guide describes how to provide and withdraw liquidity via the web UI at [app.turbine.exchange/liquidity](https://app.turbine.exchange/liquidity) ("Pools" tab at the top of the page).

Go to:

* :arrow\_right: [#what-to-expect-from-your-position](#what-to-expect-from-your-position "mention")
* :arrow\_right: [#exploring-pools-and-your-positions](#exploring-pools-and-your-positions "mention")
* :arrow\_right: [#adding-liquidity](#adding-liquidity "mention")
* :arrow\_right: [#withdrawing-liquidity](#withdrawing-liquidity "mention")

## :bar\_chart: What to expect from your position <a href="#what-to-expect-from-your-position" id="what-to-expect-from-your-position"></a>

Turbine pools are not like Uniswap v2 or v3 pools. They are **fully concentrated**: all your deposited capital sits at exactly the current market mid-price, plus the spread you chose (your "fee tier"). That is what makes them more capital-efficient than concentrated-liquidity AMMs. See [Market Tracking LP](/features/market-tracking-lp.md).

Day-to-day, this means:

* **Your token mix shifts over time.** As Turbine routes trades through your pool, you accumulate the token traders are selling and give up the token they are buying. After a one-sided trading session you can hold entirely one of the two tokens, valued at the current market price.
* **This is intentional.** Concentrating all capital at the market price means every batch that uses the pool trades against your full liquidity, not a thin band. The trade-off is that the composition swings.
* **You earn the spread on every trade routed through your pool.** This is your fee income.
* **When ETH rises, you end up holding USDC; when ETH falls, you hold ETH.** Your pool is the counterparty to every trade routed through it. When ETH is in demand, traders take ETH from your pool and leave USDC. When traders sell ETH, they push it into your pool and take USDC. **Fees compensate for this drift. They cover it fully when the market oscillates, and only partly when it trends in one direction.**

#### For example

You own 1% of a pool with 5 WETH + 10,000 USDC at ETH = $2,000. Your share is 0.05 WETH + 100 USDC, worth $200. The pool fee tier is 0.1%.

If the price moves and the pool flips fully to one side:

|                          | ETH rises to $2,200  | ETH falls to $1,800  |
| ------------------------ | -------------------- | -------------------- |
| **Pool now holds**       | 0 WETH + 21,011 USDC | 10.561 WETH + 0 USDC |
| **Your 1% is worth**     | $210.11              | $190.10              |
| **If you had just held** | $210                 | $190                 |
| **You vs. holding**      | +$0.11 (+0.05%)      | +$0.10 (+0.05%)      |

In both cases, your share overperforms a passive hold by 0.05%.

A pool flips fully one-sided when a single swap matches the dollar value of its smaller side. In the example, the WETH side was worth $10,000, so a single $10,000 swap drains it. Check a pool's reserves before adding liquidity.

#### **But there are also scenarios where you can lose**

You own 1% of a pool with 5 WETH + 10,000 USDC at ETH = $2,000. Your share is 0.05 WETH + 100 USDC, worth $200. The pool fee tier is 0.1%.

**First, ETH falls to $1,800**

| **Pool now holds**       | 10.561 WETH + 0 USDC |
| ------------------------ | -------------------- |
| **Your 1% is worth**     | $190.10              |
| **If you had just held** | $190                 |
| **You vs. holding**      | +$0.10 (+0.05%)      |

**Then ETH falls further to $1,600 with no trades on the pool**

| **Pool still holds**     | 10.561 WETH + 0 USDC                              |
| ------------------------ | ------------------------------------------------- |
| **Your 1% is worth**     | $168.98                                           |
| **If you had just held** | $180                                              |
| **You vs. holding**      | <mark style="color:$danger;">-$11.02 (-6%)</mark> |

**Then ETH rises back to $2,000. Takers buy all ETH.**

| **Pool holds**           | 0 WETH + 21,143.12 USDC |
| ------------------------ | ----------------------- |
| **Your 1% is worth**     | $211.43                 |
| **If you had just held** | $200                    |
| **You vs. holding**      | +$11.43 (+5.72%)        |

#### In practice:

* **Stablecoin pairs** (USDC/USDT and similar) have small composition shifts; your USD-marked position tracks fees earned closely.
* **Volatile pairs** (e.g. ETH/USDC) shift noticeably with the market. Provide liquidity only in pairs you would be comfortable holding either side of.
* **The Speedbump protects you from LVR.** No one can race the oracle and trade against a stale price. See [The Speedbump](/features/the-speedbump.md).

## :eyes: Exploring pools and your positions

The main Pools page lists all pools.

The "My positions" tab filters it to just the pools you have liquidity in.

{% hint style="info" %}
WORK IN PROGRESS: Columns "APY", "Volume 24 H" and "Fees 24 H" don't show anything yet. We're working on a tool that computes these values.
{% endhint %}

Clicking a row takes you to the pool details page.

<figure><img src="/files/mcID2cdRtM4A7kgsGxK8" alt="" width="563"><figcaption></figcaption></figure>

On the pool details page, you can:

### Add or remove liquidity

<figure><img src="/files/iDG0XaSKrMu7ZoNK4E6J" alt=""><figcaption></figcaption></figure>

### See your position in the pool

The amount of both tokens you own is a fraction of current pool reserves, so it changes when someone swaps on the pool.

The values shown here include the fees you earned.

<figure><img src="/files/KkjJWXD6IWpdmRmOchvI" alt=""><figcaption></figcaption></figure>

### Links

* Etherscan page of the smart contract representing the LP token for this pool (the token that represents your share in the pool)
* Etherscan pages of the smart contracts of both pool tokens

<figure><img src="/files/d7NOSJzWVyb9nb1STkiW" alt=""><figcaption></figcaption></figure>

## :potable\_water: Adding liquidity

You can add liquidity using the dedicated interface or directly from the pool details page.

This guide describes adding liquidity using the dedicated interface.

{% stepper %}
{% step %}

#### Click on New Position

<figure><img src="/files/chT0XBGUgPtVFH0UXQMu" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Select token pair

<figure><img src="/files/4Swz2nGoRomdtL4wHACJ" alt="" width="423"><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Select fee tier

Fee tier is **how much above the market mid-price the pool trades**. Read more in [Fees](/trading/fees.md).

You can select one of the suggested tiers or pick a custom one.

{% tabs %}
{% tab title="Suggested fee tier" %}

<figure><img src="/files/vdPKa7OEEoHNstrjswNe" alt="" width="423"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Custom fee tier" %}

<div><figure><img src="/files/cgL6Ey0oRda60yUt48ng" alt=""><figcaption><p>Click the text below suggested fee tiers</p></figcaption></figure> <figure><img src="/files/B4g70q04POx2z6cSRqo2" alt=""><figcaption><p>Search for existing tiers and click "Select this fee tier", or click "Create new fee tier"</p></figcaption></figure> <figure><img src="/files/g4hXY8KK9vjYoDsiNcyT" alt=""><figcaption><p>Specify new fee tier and confirm</p></figcaption></figure></div>
{% endtab %}
{% endtabs %}

If the pool with the selected fee tier doesn't exist yet, you will see the following:

<figure><img src="/files/rZDZZutx2gAo7CwN4ImS" alt=""><figcaption></figcaption></figure>

This means you are creating a new pool, which costs some gas.
{% endstep %}

{% step %}

#### Specify provided token amounts

The amounts are independent and do not affect the pool's price. You can provide both tokens or just one.

<figure><img src="/files/9s3MAHr4SZcNhlhB8GPo" alt="" width="392"><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Create position

If you selected an existing fee tier, you will see an "Add liquidity" button. If the selected fee tier doesn't exist yet, you will see a "Create" button. Click it.

Here's what happens after you click the button:

1. **Log in:** Sign the authentication message to log in to Turbine.
2. **\[Optional] Approve Permit2 contract:** If you haven't done this before, you will be prompted to sign a transaction allowing the Permit2 contract to spend your token. This happens for both pool tokens, regardless of the provided amount, and costs some gas.
3. **Sign Permit2 approval:** Sign an offchain approval message allowing Turbine to take the token amounts you are providing to the pool.
4. **\[Optional] Sign pool creation transaction:** If you selected a fee tier that doesn't exist yet, you will be prompted to sign a transaction that creates a new pool. It costs some gas.
5. **Wait for execution:** Turbine receives your liquidity intent. After it passes the Speedbump, it executes in the nearest batch.
   {% endstep %}
   {% endstepper %}

## :pouring\_liquid: Withdrawing liquidity

{% stepper %}
{% step %}

#### Open pool details

Select the pool you want to withdraw from. Click "My positions" to view just the pools you have a position in.

<figure><img src="/files/rKRUbmFKQNe5NEWr9v9O" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Click "Remove liquidity"

<figure><img src="/files/tHEm0pmEuArE8gXgDGOR" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Specify the amount

Specify how much of your liquidity you want to withdraw. 100% withdraws all your liquidity.

The app shows estimated amounts that will be withdrawn.

Withdrawals always use the ratio of pool reserves. You cannot withdraw funds in a different ratio.

The withdrawn token amounts can differ from the estimate when Turbine swaps the pool in the meantime; the total *value* stays close to the estimate.

<figure><img src="/files/KaD06ujy5uOTcXKuYmAd" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### \[Optional] Approve Permit2 contract

If this is your first withdrawal from this pool, allow the Permit2 contract to spend your LP token. This costs some gas.

<figure><img src="/files/OAA7wrOFzvks0WpuqG74" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Confirm

Click "Remove Liquidity" and sign the Permit2 allowance for Turbine to spend your LP token.

Turbine executes your intent after it passes the speedbump. After about 30 seconds you will see updated details of your position in the pool.

<figure><img src="/files/avZxZtfoaeL6SQmh8Yul" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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.turbine.exchange/liquidity/manage-liquidity-via-web-ui.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.
