> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026-08-17 — CLMM: restricted-issuer position NFT freezing

> CLMM は、V2 オープンパスが制限発行者リストと一致するフリーズ権限を持つ基礎となるミントを見つけた場合にのみ、新しいポジション NFT アカウントを条件付きでフリーズします。

<Info>
  **このページは AI による自動翻訳です。すべての内容は英語版を正とします。**

  [英語版を表示 →](/reference/changelog/2026-08-17-clmm-restricted-position-nft-freeze)
</Info>

このリリースは、選定された KYC 制限発行者プールに対する条件付き非転送可能パスを追加します。すべての新しいポジションをフリーズしたり、プール資産をフリーズしたり、ポジション所有者がリクイディティを管理することを防いだりするものではありません。CLMM プール PDA はすべての新しいポジション NFT ミントのフリーズ権限になりますが、NFT トークンアカウントはデフォルトではフリーズされません。プログラムは、ポジションが `OpenPositionV2` または `OpenPositionWithToken22Nft` を使用し、かつ基礎となるボルトミントのいずれかがハードコードされた制限発行者リストからのフリーズ権限を持つ場合にのみ、それをフリーズします。

## インテグレーター向け TL;DR

* **新しいポジション NFT ミントはフリーズ権限を持ちますが、デフォルトではフリーズされません。** `OpenPosition`、`OpenPositionV2`、`OpenPositionWithToken22Nft` はポジションの `pool_state` をミントフリーズ権限として設定します。ミント権限は単一の NFT がミントされた後も削除されます。
* **フリーズには V2 パスと発行者マッチが必要です。** `OpenPositionV2` と `OpenPositionWithToken22Nft` は `vault_0_mint.freeze_authority` と `vault_1_mint.freeze_authority` を検査します。新しい NFT アカウントは、少なくとも 1 つがプログラムリストと一致する場合にのみフリーズされます。マッチがない場合、それはフリーズされたままで転送可能です。
* **フリーズは所有者にバインドされることを意味します。** SPL Token は、ネイティブ `AccountFrozen` エラーで NFT 転送とトークンアカウント所有者の変更を拒否します。NFT 所有者が署名する場合、リクイディティの増加・減少とフィー・報酬の収集は引き続き機能します。
* **クローズは利用可能なままです。** `ClosePosition` はフリーズされた NFT アカウントを検出し、プール PDA を使用してそれをシャーすると、NFT をバーンしてポジションをアトミックに閉じます。
* **フリーズされたクローズには 1 つの残りアカウントが必要です。** クライアントは `personal_position.pool_id` を最初の残りアカウントとして追加する必要があります。それがない場合は CLMM `AccountLack` を返します。間違ったプールを渡すと `NotApproved` を返します。
* **既存のポジションは影響を受けません。** このアップデートは、NFT ミント権限を遡及的に変更したり、既存のトークンアカウントをフリーズしたりしません。
* **CLMM 状態レイアウトまたは宣言された IDL アカウントリストの変更はありません。** `PoolState`、`PersonalPositionState`、命令引数はバイト互換のままです。クローズパス要件は `remaining_accounts` を通じて実行されます。

## トリガーロジック

プログラムはオープン時に 2 つのボルトミントを評価します：

```rust theme={null}
must_freeze = restricted_ids.contains(vault_0_mint.freeze_authority)
           || restricted_ids.contains(vault_1_mint.freeze_authority)
```

フリーズ権限がない場合はマッチしません。一方の側がマッチすれば十分です。初期リストには、CLMM の Superstate アセット検出で使用される同じ発行者権限が含まれています。現在の mainnet-beta と devnet マッチキーは [`reference/program-addresses`](/ja/reference/program-addresses#clmm-restricted-issuer-freeze-authorities) にあります。

チェックは、ボルトミントアカウントが提供される場合にのみ、共有オープンポジションハンドラーで実行されます。これは以下を意味します：

| オープンパス                       | ポジション NFT プログラム | 制限発行者フリーズ動作                                                 |
| ---------------------------- | --------------- | ----------------------------------------------------------- |
| `OpenPosition` V1            | SPL Token       | フリーズしません。V1 は出荷されたリストでターゲットにされた Token-2022 発行者アセットを提供できません。 |
| `OpenPositionV2`             | SPL Token       | 両方のボルトミントを検査し、マッチ時にフリーズします。                                 |
| `OpenPositionWithToken22Nft` | Token-2022      | 両方のボルトミントを検査し、マッチ時にフリーズします。                                 |

## ポジション NFT 権限の変更

このアップデート前は、新しく作成されたクラシック SPL ポジション NFT ミントはフリーズ権限を保持していませんでした。アップデート後、すべての新しいポジション NFT ミントは、通常のプール内のポジションを含め、そのプールをフリーズ権限として指定します。この権限設定だけでは NFT トークンアカウントをフリーズしません。通常のポジションとマッチしないポジションはフリーズされたままです。

グローバル管理者または発行者キーの代わりにプール PDA を使用すると、権限を 1 つのプールに限定します。外部パーティは PDA として署名できず、CLMM は任意のポジションアカウントをフリーズまたはシャーするための汎用命令を公開していません。新しいコードは権限を 2 つの場所でのみ使用します：

1. 基礎となる発行者チェックがマッチする場合、ミント直後にフリーズします。
2. バーン直前の `ClosePosition` 中にシャーします。

## `ClosePosition` マイグレーション

6 つの宣言されたアカウントは変わりません。フリーズされた NFT の場合、プールを最初の残りアカウントとして追加します：

```text theme={null}
declared: nft_owner, position_nft_mint, position_nft_account,
          personal_position, system_program, token_program
remaining[0]: personal_position.pool_id   // read-only, non-signer
```

ハンドラーは `PoolState` をロードする前にキーを検証し、プール署名者シードを導出し、以下を実行します：

```text theme={null}
NFT アカウントをシャー → NFT をバーン → NFT トークンアカウント / ポジション状態をクローズ
```

すべてのステップは 1 つの Solana 命令で実行されるため、一緒にコミットまたはロールバックされます。すべてのクローズでプールを渡すことは安全です。ハンドラーは NFT アカウントがフリーズされていない場合、残りアカウントを無視します。

<Warning>
  **条件付きクライアント破損。** 古いクライアントはアップグレード後にポジションを正常にオープンできます。これは V2 オープンアカウントレイアウトが変わらないためです。そのポジションがフリーズされている場合、同じクライアントは後でそれをクローズできない可能性があります。これは `ClosePosition` ビルダーがプール残りアカウントを省略するためです。影響を受けるプール内でポジションをオープンすることをユーザーに許可する前に、クローズビルダーを更新してください。
</Warning>

## 互換性マトリックス

| シナリオ                  | NFT 転送 | リクイディティ管理 | レガシークローズビルダー      | 更新されたクローズビルダー   |
| --------------------- | ------ | --------- | ----------------- | --------------- |
| 既存ポジション               | 変わらず   | はい        | はい                | はい              |
| 新しいポジション、通常プール        | はい     | はい        | はい                | はい              |
| 新しい V2 ポジション、制限発行者プール | いいえ    | はい        | `AccountLack` で失敗 | はい；アトミックシャーとバーン |

新しい CLMM カスタムエラーバリアントまたは数値シフトは導入されません。SPL Token のネイティブ `AccountFrozen` エラーは転送または所有者変更の試みを拒否します。

## 更新されたページ

* `products/clmm/overview` — リリース概要と制限転送可能性の注意事項。
* `products/clmm/ticks-and-positions` — 権限モデル、トリガー、所有者機能、クローズマイグレーション警告。
* `products/clmm/accounts` — ポジション NFT ミントとライフサイクル動作。
* `products/clmm/instructions` — オープンポストコンディションとフリーズされた `ClosePosition` 残りアカウントパス。
* `products/clmm/code-demos` — ダイレクト Anchor クローズ例とピン留めされた SDK 警告。
* `user-flows/add-remove-liquidity` — ユーザー向けの制限ポジション動作。
* `user-flows/burn-and-earn` — フリーズされたポジションはロックエスクローに転送できません。
* `security/oracle-and-token-risks` / `security/attack-vectors` — 発行者と転送リスク境界。
* `reference/token-2022-support` — プール許可リストとポジション保管の区別。
* `reference/error-codes` — 拡張された `AccountLack` と `NotApproved` の原因。
* `reference/program-addresses` — 制限発行者権限マッチキー。
* `reference/fee-comparison` / `reference/glossary` — 転送可能性の例外。

**2026-08-13 に検証済み**：

* プリリリース CLMM ブランチ `feat/position-nft-freeze` at `ecb157760776f83f97507fa78c6e32cfb30d92a9`。
* コミット `2e95310`（制限発行者 NFT フリーズ）と `ecb1577`（プール範囲フリーズ権限）、`master` at `51fdba2` と比較。
* `instructions/{open_position,open_position_v2,open_position_with_token22_nft,close_position}.rs` と `util/token.rs` 下のプログラムソース。
* `position-nft-freeze.test.ts`、通常の転送可能性、フリーズされた転送・所有者変更拒否、V2 および Token-2022 シャー前クローズフローをカバー。

<Warning>
  この検証はプリリリースソースブランチをカバーしており、mainnet-beta デプロイメントまたは公開 SDK リリースではありません。デプロイされたプログラム、本番制限権限リスト、SDK クローズビルダーを確認してからフローを有効にしてください。
</Warning>
