> For the complete documentation index, see [llms.txt](https://help.railway.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.railway.xyz/integrated-dapps/private-liquidity-provisioning.md).

# Private Liquidity Provisioning

{% hint style="info" %}
[Uniswap v2 style pools](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/pools) require equal value amounts of the underlying assets. Users deposit assets and receive Liquidity Pool (LP) tokens redeemable for the assets.
{% endhint %}

### Prerequisites

* You have a [created](/setup/create-wallet.md) or [imported](/setup/import-wallet.md) a wallet into Railway
* [Shielded](/transactions/shield-unshield.md) some assets into your 0zk balance

### Add Liquidity Instructions

#### 1. Click 'dApps' and select 'Liquidity'

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

{% hint style="success" %}
**Tip**: You can also farm LP tokens in the [Railway Farm](/integrated-dapps/private-yield-farming.md). Click 'Farm' and then a vault provider to see a list of farmable assets. Once you've selected a compatible vault you can then return to the 'Liquidity' tab to enter an LP.&#x20;
{% endhint %}

#### 2. Select the Liquidity Pool you want to provide liquidity to

{% hint style="info" %}
You will need to [shield](/transactions/shield-unshield.md) equal proportions of the 2 underlying tokens to enter into LPs.&#x20;
{% endhint %}

If you want to see a full list of liquidity sources, these buttons will take you to the exchange's full list of available liquidity pools

#### 3. Enter your desired token amount. Pools can only be entered from the token on the left. For example, on the 'WETH-DAI' pool, you would have to set the amount using WETH and not DAI.

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

#### 4. Click 'Confirm Amount' to proceed. You can also change slippage by clicking the Settings.

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

<figure><img src="/files/6mntJOG4qyda2AEn4H18" alt=""><figcaption></figcaption></figure>

#### 5. Add the resulting LP token to your wallet to view it in your asset list. You will also see the outcome of the liquidity provisioning.

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

#### 6. Check the LP amounts again closely and click 'Next' to proceed

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

#### 7. Review the transaction details closely including the RAILGUN protocol fee and click 'Generate Proof' to continue

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

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

#### 8. Once the transaction is complete, you will see the resulting LP tokens in your balance and transaction details are visible in the 'Activity' tab

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

### Remove Liquidity

#### 1. On the 'Liquidity' tab, select 'Remove Liquidity' from the dropdown menu

#### 2. Select the LP token you would like to remove liquidity from

#### 3. Enter in the amount of LP tokens you would like to remove and click 'Confirm amount'. You can also change slippage by clicking the cog.

#### 4. Click 'Next'

#### 5. Review transaction details closely including RAILGUN protocol fee and click 'Generate proof' to continue

#### 7. The remove liquidity transaction details will be visible in the 'Activity' tab
