> For the complete documentation index, see [llms.txt](https://streamlock.gitbook.io/streamlock-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://streamlock.gitbook.io/streamlock-docs/fees-and-economics/lp-provision.md).

# LP Provision

Permanent, non-withdrawable liquidity provision. Earn a perpetual share of trading fees by deepening a pool's reserves forever.

***

## What is LP Provision?

LP Provision lets anyone permanently inject SOL into a token's pool reserves. In return, the provider receives non-transferable LP shares that entitle them to a pro-rata cut of all trading fees from that pool — forever.

It is the **fourth pillar** of Streamlock's fee distribution, sitting alongside holder rewards, creator share, and protocol treasury:

| Recipient         | Share of every trading fee | Mechanism                                       |
| ----------------- | -------------------------- | ----------------------------------------------- |
| Token holders     | **40%**                    | Merkle claim via AccumulatorVault               |
| Token creator     | **10%**                    | Direct transfer                                 |
| **LP providers**  | **30%**                    | Pro-rata via fee splitter (NEW)                 |
| Protocol treasury | **20%**                    | Was 50%, now 20% after carving out the LP share |

The 30% LP cut comes from re-allocating part of what was previously a 50% protocol share. **Holder rewards (40%) and creator share (10%) are unaffected.** Trading fees are distributed identically for tokens that don't use LP provision; the LP layer is opt-in per pool.

***

## How It Works

There are two paths into LP provision:

### Direct Inject

You send SOL directly into the pool's reserves. The full amount goes to depth — no fee, no buy event.

* Records LP shares 1:1 with lamports injected
* Always allowed, even during freeze
* 100% capital efficient

### Zap-In

You send SOL into the pool, but the standard buy fee is applied first (with the fee going to the existing distribution, not lost). The remaining SOL is injected into reserves.

* Pays the same dynamic buy fee as a regular buy (4–13%)
* Counts as buy-side activity for epoch caps and lifecycle tracking
* Useful if you want your LP commitment to also signal buy pressure
* Rejected during freeze (because zap-in is conceptually a buy)

Both paths produce the same end state: pool depth increases, your shares are recorded, and you start earning fees immediately on the next trading activity.

***

## Why Permanent?

Streamlock LP is permanent and non-withdrawable. There is no time-lock, no price-lock, no withdrawal. Once injected, the SOL is part of the pool forever.

This sounds extreme — but it's the only credible answer to memecoin liquidity fragility:

* **Time-locked LP** reintroduces the rug timeline. "LP unlocks next week" is bearish news regardless of fundamentals. Temporary depth isn't a credible promise.
* **Price-locked LP** ("withdraw only above price X") creates an unstable equilibrium where everyone races to exit at the same price, crashing it below the threshold.
* **Permanent LP** is the only commitment that genuinely cannot be reversed by anyone — including the protocol team. It's the strongest possible signal of liquidity stability.

The trade-off is that the rewards must be substantial enough to make permanent commitment rational. Streamlock's high base fees (4–13% buy, 1–50% sell) combined with the 30% LP cut produce per-swap LP yields **4–15× higher than Uniswap LP**, even though Uniswap LP can withdraw any time.

***

## Why Anyone Would Do This

Without fee sharing, permanent LP would be a charitable donation to pool depth — irrational for any individual. With the 30% cut of trading fees, it becomes a **purchase of a perpetual annuity**.

The key dynamics:

1. **Early movers get oversized share.** First LP injectors get shares at the cheapest ratio (when total LP is small). Their fee share is disproportionately large for the lifetime of the pool.
2. **Position is non-dilutable by withdrawals.** Unlike Uniswap LP, where mercenary capital constantly enters and exits, Streamlock LP shares only get diluted by *new* injectors entering — and that increases total fee generation through deeper liquidity.
3. **Per-swap yield is multiples of Uniswap.** Even at 30% of fees, Streamlock LPs earn 4–15× more per unit of volume than Uniswap LPs because the base fee is 10–20× higher.
4. **Compounding visibility.** Every claim is on-chain. Every cumulative-fee-per-share update is on-chain. There's no team gating distributions.

***

## Projections

**Assumptions** (base case):

| Parameter                | Value                                                                                    |
| ------------------------ | ---------------------------------------------------------------------------------------- |
| Daily trading volume     | $100,000 USD                                                                             |
| Volume per unlock window | $500,000 USD                                                                             |
| SOL price                | $85 USD                                                                                  |
| Cycles per month         | 2 (GRIND → FREEZE → UNLOCK)                                                              |
| Fee distribution         | 40% holders / 10% creator / 30% LP / 20% protocol (current default, `lp_fee_bps = 3000`) |

### Monthly fee generation

```
Total trading fees:        $186,000   (2,188 SOL/month)
  → Holder rewards (40%):  $74,400   (876 SOL)
  → Creator share (10%):   $18,600   (219 SOL)
  → LP providers (30%):    $55,800   (656 SOL)  ← LP earnings
  → Protocol treasury:     $37,200   (438 SOL)
```

### APY by total LP depth

| Total LP injected  | Monthly to LP | APY        |
| ------------------ | ------------- | ---------- |
| 500 SOL ($42.5K)   | $55,800       | **1,576%** |
| 1,000 SOL ($85K)   | $55,800       | **788%**   |
| 2,500 SOL ($212K)  | $55,800       | **315%**   |
| 5,000 SOL ($425K)  | $55,800       | **158%**   |
| 10,000 SOL ($850K) | $55,800       | **79%**    |
| 25,000 SOL ($2.1M) | $55,800       | **32%**    |

### Volume sensitivity (at 1,000 SOL total LP)

| Daily volume  | Monthly fees | LP share (30%) | APY        |
| ------------- | ------------ | -------------- | ---------- |
| $50K (bear)   | $93,000      | $27,900        | **394%**   |
| $100K (base)  | $186,000     | $55,800        | **788%**   |
| $250K (bull)  | $465,000+    | $139,500+      | **1,970%** |
| $500K (mania) | $930,000+    | $279,000+      | **3,940%** |

### Per-swap LP yield vs Uniswap

| Protocol                        | LP cut of fee | Avg fee | LP per swap | Multiple      |
| ------------------------------- | ------------- | ------- | ----------- | ------------- |
| Uniswap V2                      | 100%          | 0.30%   | 0.30%       | 1× (baseline) |
| Streamlock @ base buy           | 30%           | 4%      | 1.2%        | **4×**        |
| Streamlock @ avg blended        | 30%           | 8%      | 2.4%        | **8×**        |
| Streamlock @ unlock window sell | 30%           | 15%     | 4.5%        | **15×**       |

***

## Equilibrium Dynamics

LP injection is rational up until yields normalize to the broader DeFi opportunity cost (\~20–50% APY). At $100K/day volume:

| Target APY | Equilibrium LP TVL  | Pool depth vs daily volume |
| ---------- | ------------------- | -------------------------- |
| 100%       | 7,876 SOL ($670K)   | 6.7×                       |
| 50%        | 15,753 SOL ($1.34M) | 13×                        |
| 20%        | 39,388 SOL ($3.35M) | 33×                        |

The self-correcting mechanism:

1. High LP yields attract injection
2. New injection deepens the pool
3. Deeper pool lowers slippage for traders
4. More buyers → more volume → more fees → still attractive yields
5. ...until the LP TVL grows to where new yields equal the broader DeFi rate
6. Equilibrium reached, but the pool now holds millions in permanent depth

For a memecoin, **$1–3M in permanent liquidity is extraordinary**. Most pump.fun graduates have less than $100K in LP, and that LP can be removed any time.

***

## The Risks

This is the part most users skip. Read it.

* **This is permanent.** You cannot withdraw your SOL under any circumstances. There is no time-lock, no price-lock, no governance vote that can release it.
* **The token can die.** If volume disappears, trading fees disappear, and your LP earns nothing. Your only recoupment is via fees over time. If those fees never come, your contribution is gone.
* **No principal protection.** Unlike a CD or savings account, there's no guaranteed return of capital. You're betting on the pool's long-term volume, not its short-term price.
* **Yield dilutes with new providers.** Every new LP injector reduces your share of the pool. Yields decay as TVL grows toward equilibrium.
* **Protocol risk.** Smart contract bugs, oracle failures, or upstream Solana issues could affect the system.

**Provide only what you can afford to lose, and only if you genuinely believe the token will sustain volume for the long term.** LP provision is for committed believers, not yield farmers.

***

## How to Participate

### Inject Liquidity

Visit any token's `/liquidity` page (linked from the LP callout on the trading page). Connect your wallet, choose Direct Inject or Zap-In, enter your amount, accept the permanent-lock acknowledgement, and submit.

### Claim Fees

Pending fees accumulate automatically as trading happens. The same `/liquidity` page shows your pending claim and lets you claim with one button. Claims are gas-efficient (single instruction, \~50K compute units).

### View Your Position

The `/liquidity` page shows your shares, share percentage of the pool, total contributed, pending claim, and total claimed historically. Stats refresh after every action.

***

## Architecture (Technical)

For developers and auditors. Skip if you only care about using LP.

LP provision is implemented as an extension to the `tokenFactory` Anchor program. Three on-chain accounts:

1. **`LpPoolConfig`** (PDA: `["lp_pool_config", token_mint]`) — per-pool LP state: `total_shares`, `total_sol_injected`, `num_providers`, `min_injection_lamports`, kill switch
2. **`LpLockEntry`** (PDA: `["lp_lock", token_mint, provider]`) — per-user position: `shares` (u128), `total_sol_contributed`, `injection_count`, timestamps, `reward_debt` (Synthetix-style accumulator)
3. **`FeeSplitterConfig`** (PDA: `["fee_splitter", token_mint]`) — per-pool fee splitter state: `protocol_wallet`, `lp_fee_bps`, `cumulative_fee_per_share` (u128, scaled by 1e18), `last_known_vault_balance`, distribution totals
4. **`fee_vault`** (PDA: `["fee_vault", token_mint]`) — holds fees before distribution; pre-funded with rent-exempt minimum on init

The fee splitter uses the **Synthetix reward-per-share pattern**:

* Whenever new SOL arrives in the fee\_vault, `sync_fee_splitter` calculates the protocol cut, transfers it to `protocol_wallet`, and increments `cumulative_fee_per_share` by `lp_cut * 1e18 / total_shares`
* A user's pending claim is `(cumulative_fee_per_share * user_shares - reward_debt) / 1e18`
* After claiming, `reward_debt` is updated to `cumulative_fee_per_share * user_shares` so subsequent claims correctly compute only the new portion

When a user injects more LP, pending rewards are auto-settled before new shares are recorded — preventing retroactive claims on shares that didn't exist when the fees accrued.

**Fee flow (post-2026-04-26 remediation):** At pool launch, `init_fee_splitter` runs alongside `update_fee_recipient` so that `pool.fee_recipient = fee_vault` PDA. Trade fees land directly in `fee_vault` on every buy and sell. On each `sync_fee_splitter` call, **30% goes to LP claimable** and **70% goes to `protocol_wallet`** (= router authority). The post-milestone `accumulator-distribute` cron then pays out the 40% holder share and 10% creator share from `protocol_wallet`, leaving the protocol with a net 20% cut. There is no longer a separate cron-driven transfer into `fee_vault` — that path was removed in v0.3.6.

***

## Configuration

The LP fee split is configurable per pool by the pool's `update_authority` via `update_fee_splitter`. The default is **`lp_fee_bps = 3000`** — meaning **30% of every fee\_vault sync goes to LP** and **70% goes to `protocol_wallet`**. The protocol's 70% then funds the 40% holder + 10% creator payouts at unlock-window end, leaving 20% net to the protocol treasury.

The protocol's escalation roadmap (planned, not yet executed):

| Phase                      | `lp_fee_bps` | LP cut of fees | Holder cut | Creator cut | Net protocol cut | Trigger                                   |
| -------------------------- | ------------ | -------------- | ---------- | ----------- | ---------------- | ----------------------------------------- |
| **Bootstrap (live today)** | 3000         | **30%**        | 40%        | 10%         | 20%              | Default at launch                         |
| Growth *(planned)*         | 3500         | 35%            | 40%        | 10%         | 15%              | Once protocol has 12 months of runway     |
| Mature *(planned)*         | 4000         | 40%            | 40%        | 10%         | 10%              | Once protocol treasury is self-sustaining |

Each escalation is intended to be irreversible — the LP cut can only go up, never down. This serves as a credible commitment device: future-protocol cannot extract more from LPs than current-protocol promises.

***

## Related

* [Fee Structure](/streamlock-docs/fees-and-economics/fee-structure.md) — Complete fee rates and who pays what
* [Protocol Revenue](/streamlock-docs/fees-and-economics/protocol-revenue.md) — Full four-way split with scenario projections
* [Holder Rewards](/streamlock-docs/rewards/holder-rewards.md) — How the 40% holder share is distributed
