# LP fee distributionの設定方法

LaunchLabトークンがその bonding curve を完了した後、流動性は CPMM プールへ移行できます。CPMM migration は platform config で有効化されている必要があります。

移行時に、CPMM プールは LPトークン を返します。platform config は、それらの LPトークン がどのように配分されるかを制御します。

### LPトークン

LPトークン は、CPMM プールに保持されている流動性に対する比例的な請求権を表します。流動性がプールに預け入れられると、LPトークン が mint されます。LPトークン が償還されると、保有者はプール内の両方のトークンにおける自身の持分を受け取ります。これには、預け入れ以降に蓄積されたあらゆる手数料も含まれます。

スワップ手数料は直接プール vault に蓄積されるため、LPトークン の価値は、基礎資産に対して時間とともに増加します。LPトークン を保有することは、実質的にすべてのスワップの持分を獲得することを意味します。

LaunchLab migration の文脈では、Burn & Earn により LPトークン を恒久的にロックしつつ、引き続き手数料収益を生み出すことができます。LPトークン は償還できなくなるため、流動性は恒久的になりますが、そのポジションが生み出す手数料を請求するための Fee Key NFT が保有者に発行されます。

### LP 配分

`migrateCpLockNftScale` は LP の配分比率を定義します。3 つのフィールドの合計は次の値でなければなりません `1,000,000` (100%):

| フィールド           | 説明                                                                 |
| --------------- | ------------------------------------------------------------------ |
| `platformScale` | Burn & Earn を通じてロックされます。プラットフォームは、手数料を請求するための Fee Key NFT を受け取ります。 |
| `creatorScale`  | Burn & Earn を通じてロックされます。トークン作成者は、手数料を請求するための Fee Key NFT を受け取ります。  |
| `burnScale`     | 恒久的に burn されます。手数料は生成されません。                                        |

これはプラットフォームレベルの設定です。あるプラットフォームを通じてローンチされたすべてのトークンは、同じ配分を共有します。

スワップ手数料（protocol 手数料および fund 手数料控除後）はプール vault に残ります。Fee Key NFT の保有者は、ロックされたポジションから蓄積された手数料の持分を請求します。

LPトークン が次を通じて burn されると `burnScale`、基礎となる流動性は恒久的にプール内に残ります — しかし、誰もそれに対する請求権を保有しません。スワップ手数料はそれらのポジションに対して引き続き蓄積され、total value locked を増加させます。

### 例

```typescript
// 40% platform、50% creator、10% burned
{
  platformScale: new BN(400000),
  creatorScale: new BN(500000),
  burnScale: new BN(100000),
}

// 100% を creator へ
{
  platformScale: new BN(0),
  creatorScale: new BN(1000000),
  burnScale: new BN(0),
}

// 100% burned
{
  platformScale: new BN(0),
  creatorScale: new BN(0),
  burnScale: new BN(1000000),
}
```

### CPMM 手数料との関係

`migrateCpLockNftScale` は次を制御します **誰が** LP 手数料を獲得するかを。CPMM の `AmmConfig` は次を制御します **どれだけの** 手数料が各スワップで生成されるかを。

0.25% の trade fee config（12% protocol、4% fund）の場合:

```
trade_fee:   スワップ入力の 0.25%
  protocol:  取引手数料の 12% → Raydium
  fund:       取引手数料の 4% → Raydium
  LPs:       取引手数料の 84% → pool vaults
```

次の場合 `creatorScale: 500000` および `platformScale: 400000`、creator の Fee Key NFT は LP 手数料の 50% を獲得し、platform のものは 40% を獲得します。残りの 10%（burned）は他の LP 保有者に利益をもたらします。

`cpConfigId` は platform config 上で、移行されたプールが使用する CPMM fee tier を設定します。「How to Set CPMM Fees」を参照してください。

### 設定

LP の配分比率を次で設定します `createPlatformConfig`:

```typescript
migrateCpLockNftScale: {
  platformScale: new BN(400000), // 40%
  creatorScale: new BN(500000),  // 50%
  burnScale: new BN(100000),     // 10%
},
```

ウォレットごとに 1 つの platform config。

完全な例: [createPlatform.ts](https://github.com/raydium-io/raydium-sdk-V2-demo/blob/master/src/launchpad/createPlatform.ts)

### 更新

LP の配分比率は on-chain epoch ごとに 1 回更新できます:

```typescript
updateInfo: {
  type: 'migrateCpLockNftScale',
  value: {
    platformScale: new BN(300000),
    creatorScale: new BN(600000),
    burnScale: new BN(100000),
  },
},
```

完全な例: [updatePlatform.ts](https://github.com/raydium-io/raydium-sdk-V2-demo/blob/master/src/launchpad/updatePlatform.ts)

その他の更新可能なフィールド:

| 更新タイプ                     | 値           | 説明                           |
| ------------------------- | ----------- | ---------------------------- |
| `updateFeeRate`           | `BN`        | bonding curve の buy/sell 手数料 |
| `updateCpConfigId`        | `PublicKey` | 移行されたプール用の CPMM fee config   |
| `updateClaimFeeWallet`    | `PublicKey` | プラットフォーム手数料請求ウォレット           |
| `updatePlatformCpCreator` | `PublicKey` | CPMM プール上の creator アドレス      |
| `updateVestingWallet`     | `PublicKey` | Vesting 配布ウォレット              |
