# 🔐 CabalV3LiquidityLocker

## 🔒 CabalV3LiquidityLocker

The `CabalV3LiquidityLocker` is responsible for **securely locking Uniswap V3 LP positions** deployed through The Cabal platform. It enforces long-term lock periods and supports **automated fee claiming**, ensuring transparency, security, and optionality for token creators.

> ✅ New: The Cabal V3 system supports **three locker types**, giving users flexibility depending on cost, visibility, and preference.

***

### 🔧 Locker Options

| Locker Type             | Lock Visible on DexTools | Fee Claiming | Cost     | Notes                                                                      |
| ----------------------- | ------------------------ | ------------ | -------- | -------------------------------------------------------------------------- |
| **Native Cabal Locker** | ❌ (not auto-detected)    | ✅ Yes        | Free     | 5-year default lock. Allows later **migration to GoPlus or UNCX**.         |
| **GoPlus V3 Locker**    | ✅ Yes                    | ✅ Yes        | Free     | Fully integrated. Lock visible on most DEX aggregators.                    |
| **UNCX V3 Locker**      | ✅ Yes                    | ✅ Yes        | 0.04 ETH | Reputable third-party option. Slight cost, but offers strong trust signal. |

***

### ⚙️ Responsibilities

* Locks Uniswap V3 LP NFTs on launch
* Prevents early withdrawal via enforced unlock dates
* Enables automated **fee collection and claiming**
* Tracks **multiple positions per user**
* Supports **migration from Cabal Locker** to GoPlus or UNCX
* Provides emergency recovery tools for ETH and ERC-20 tokens

***

### 💸 Fee Collection

* Fees accrue automatically on the locked V3 position
* Anyone (user or protocol) can call:\
  `collectFees(tokenId)`
* Earnings are split between:
  * The position **owner**
  * The **protocol fee collector**
* Default split: **50/50** (500 basis points)
* Batch claiming supported via:\
  `collectAllUserFees()`

***

### 🛡️ Security Features

* Only approved helper (e.g., `CabalV3Helpers`) can initialize a lock
* Contract **validates NFT ownership** before locking
* Only the **contract owner** can unlock positions
* Emits full indexing events:
  * `PositionLocked`
  * `FeesCollected`
  * `PositionUnlocked`

***

### 🗓️ Default Lock Period

* **365 days** (1 year) for all three lockers.

***

### 🤝 Why Multiple Lockers?

Each project has different needs:

* **Visibility?** Use **GoPlus** or **UNCX** so liquidity is shown on DEX tools.
* **No fees?** Use **GoPlus**
* **Reputation & perceived trust?** Choose **UNCX**
* Want full control with **migration options later**? Use **Cabal native locker**

***

For technical integration or ABI access, visit <https://thecabal.app> or join our [Telegram](https://t.me/thecabalapp).


---

# 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.thecabal.app/cabal-protocol-contract-overview/cabalv3liquiditylocker.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.
