# Unipilot Vaults

Vaults are used to manage the liquidity positions of users. A new vault has to be deployed for each pair e.g. (ETH/USDT). \
\
The total supply of the vault’s LP tokens represents the share of liquidity in that pool \[on the underlying DEX] that is managed by Unipilot. A user’s LP tokens represent their share of the Unipilot vault.<br>

### **Recap of architectural improvements with v2:**

Unipilot v1 was built with an NFT-based architecture, with one contract managing all users' liquidity share across all pairs. This approach was applied due to the ease of liquidity management inside a single contract, which reduced the overall quantity of transactions required to manage all vaults on Unipilot.&#x20;

This approach worked as expected from the perspective of deployment costs and state management. However, due to the frequent management of the contract state it led to high transaction costs for users, affecting the overall efficiency of the protocol.&#x20;

With Unipilot v2, we addressed the shortcomings of v1 by switching to an LP-based factory architecture. In this architecture, the protocol deploys separate vaults for each pool. The protocol mints LP tokens for each vault, and these are used to represent each user's share of the vault. This approach does increase the vault deployment cost, but as v2 offers active liquidity management (which we'll discuss later), the protocol bears the cost for the deployment of vaults for these pools.

Our tests have shown that switching to LP-token based architecture reduces transaction costs for users by \~60% on average compared to v1. Since we position Unipilot as a universal automated liquidity optimization protocol, we wanted to not only allow users to deploy vaults for any pair but also make using the protocol as affordable as possible. &#x20;


---

# 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://unipilot.gitbook.io/unipilot-v2/the-pilot-protocol/unipilot-vaults.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.
