# 🔐 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).
