> ## 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 có điều kiện đóng băng tài khoản position NFT mới chỉ khi đường dẫn V2 mở tìm thấy một mint cơ bản có freeze authority khớp với danh sách restricted-issuer.

<Info>
  **Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.**

  [Xem bản tiếng Anh →](/reference/changelog/2026-08-17-clmm-restricted-position-nft-freeze)
</Info>

Bản phát hành này thêm một đường dẫn không chuyển nhượng có điều kiện cho các pool nhà phát hành bị hạn chế KYC được chọn. Nó không đóng băng mọi position mới, không đóng băng tài sản pool, hoặc ngăn chặn chủ sở hữu position quản lý thanh khoản. CLMM pool PDA trở thành freeze authority cho mọi mint position NFT mới, nhưng tài khoản token NFT vẫn không bị đóng băng theo mặc định. Chương trình chỉ đóng băng nó khi position sử dụng `OpenPositionV2` hoặc `OpenPositionWithToken22Nft` và ít nhất một mint vault cơ bản có freeze authority từ danh sách restricted-issuer được mã hóa cứng.

## TL;DR cho các nhà tích hợp

* **Các mint position NFT mới có freeze authority, nhưng không bị đóng băng theo mặc định.** `OpenPosition`, `OpenPositionV2`, và `OpenPositionWithToken22Nft` đặt `pool_state` của position làm mint freeze authority. Mint authority vẫn bị xóa sau khi NFT duy nhất được mint.
* **Đóng băng yêu cầu đường dẫn V2 cộng với khớp nhà phát hành.** `OpenPositionV2` và `OpenPositionWithToken22Nft` kiểm tra `vault_0_mint.freeze_authority` và `vault_1_mint.freeze_authority`. Tài khoản NFT mới chỉ bị đóng băng nếu ít nhất một khớp với danh sách chương trình. Nếu không khớp, nó vẫn không bị đóng băng và có thể chuyển nhượng.
* **Đóng băng có nghĩa là bị ràng buộc với chủ sở hữu.** SPL Token từ chối chuyển NFT và thay đổi chủ sở hữu tài khoản token bằng lỗi `AccountFrozen` gốc của nó. Tăng/giảm thanh khoản và thu thập phí/phần thưởng tiếp tục hoạt động khi chủ sở hữu NFT ký.
* **Đóng vẫn khả dụng.** `ClosePosition` phát hiện tài khoản NFT bị đóng băng, sử dụng pool PDA để thaw nó, sau đó đốt NFT và đóng position một cách nguyên tử.
* **Đóng bị đóng băng yêu cầu một tài khoản còn lại.** Client phải thêm `personal_position.pool_id` làm tài khoản còn lại đầu tiên. Thiếu nó trả về CLMM `AccountLack`; truyền pool sai trả về `NotApproved`.
* **Các position hiện có không bị ảnh hưởng.** Bản cập nhật không thay đổi retroactively mint authorities của NFT hoặc đóng băng các tài khoản token hiện có.
* **Không có thay đổi bố cục trạng thái CLMM hoặc danh sách tài khoản IDL được khai báo.** `PoolState`, `PersonalPositionState`, và các đối số hướng dẫn vẫn tương thích byte. Yêu cầu đường dẫn đóng được thực hiện thông qua `remaining_accounts`.

## Logic kích hoạt

Chương trình đánh giá hai mint vault tại thời điểm mở:

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

Freeze authority bị thiếu không khớp. Một bên khớp là đủ. Danh sách ban đầu chứa cùng issuer authority được sử dụng bởi phát hiện tài sản Superstate của CLMM. Các khóa khớp mainnet-beta và devnet hiện tại nằm trong [`reference/program-addresses`](/vi/reference/program-addresses#clmm-restricted-issuer-freeze-authorities).

Kiểm tra chạy trong trình xử lý open-position được chia sẻ chỉ khi các tài khoản mint vault được cung cấp. Điều này có nghĩa là:

| Đường dẫn mở                 | Chương trình position NFT | Hành vi đóng băng restricted-issuer                                                                        |
| ---------------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `OpenPosition` V1            | SPL Token                 | Không đóng băng. V1 không thể phục vụ tài sản issuer Token-2022 được nhắm mục tiêu bởi danh sách được gửi. |
| `OpenPositionV2`             | SPL Token                 | Kiểm tra cả hai mint vault và đóng băng khi khớp.                                                          |
| `OpenPositionWithToken22Nft` | Token-2022                | Kiểm tra cả hai mint vault và đóng băng khi khớp.                                                          |

## Thay đổi authority position NFT

Trước bản cập nhật này, một mint position NFT SPL cổ điển mới tạo không giữ lại freeze authority. Sau bản cập nhật, mọi mint position NFT mới đặt tên pool của nó làm freeze authority, bao gồm các position trong các pool thông thường. Cài đặt authority này một mình không đóng băng tài khoản token NFT; các position thông thường và không khớp vẫn không bị đóng băng.

Sử dụng pool PDA thay vì khóa admin hoặc issuer toàn cầu sẽ thu hẹp authority thành một pool. Một bên ngoài không thể ký như PDA, và CLMM không tiếp xúc hướng dẫn mục đích chung để đóng băng hoặc thaw các tài khoản position tùy ý. Mã mới sử dụng authority ở hai nơi chỉ:

1. Đóng băng ngay sau khi mint khi kiểm tra issuer cơ bản khớp.
2. Thaw trong `ClosePosition` ngay trước khi đốt.

## Quá trình di chuyển `ClosePosition`

Sáu tài khoản được khai báo không thay đổi. Đối với NFT bị đóng băng, thêm pool làm tài khoản còn lại đầu tiên:

```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
```

Trình xử lý xác minh khóa trước khi tải `PoolState`, lấy các seed signer pool, và thực hiện:

```text theme={null}
thaw NFT account → burn NFT → close NFT token account / position state
```

Tất cả các bước chạy trong một hướng dẫn Solana và do đó commit hoặc revert cùng nhau. Truyền pool trên mọi lần đóng là an toàn: trình xử lý bỏ qua remaining accounts khi tài khoản NFT không bị đóng băng.

<Warning>
  **Ngắt client có điều kiện.** Một client cũ hơn có thể mở position thành công sau khi nâng cấp vì bố cục tài khoản V2 mở không thay đổi. Nếu position đó bị đóng băng, cùng một client có thể sau đó không thể đóng nó vì trình tạo `ClosePosition` của nó bỏ qua tài khoản pool còn lại. Cập nhật trình tạo đóng trước khi cho phép người dùng mở position trong các pool bị ảnh hưởng.
</Warning>

## Ma trận tương thích

| Kịch bản                                | Chuyển NFT     | Quản lý thanh khoản | Trình tạo đóng cũ          | Trình tạo đóng được cập nhật |
| --------------------------------------- | -------------- | ------------------- | -------------------------- | ---------------------------- |
| Position hiện có                        | không thay đổi | có                  | có                         | có                           |
| Position mới, pool thông thường         | có             | có                  | có                         | có                           |
| Position V2 mới, pool restricted-issuer | không          | có                  | thất bại với `AccountLack` | có; thaw và đốt nguyên tử    |

Không có biến thể lỗi tùy chỉnh CLMM mới hoặc dịch chuyển số được giới thiệu. Lỗi `AccountFrozen` gốc của SPL Token từ chối các nỗ lực chuyển hoặc thay đổi chủ sở hữu.

## Trang được cập nhật

* `products/clmm/overview` — tóm tắt bản phát hành và cảnh báo không chuyển nhượng bị hạn chế.
* `products/clmm/ticks-and-positions` — mô hình authority, kích hoạt, khả năng chủ sở hữu, và cảnh báo di chuyển đóng.
* `products/clmm/accounts` — mint position NFT và hành vi vòng đời.
* `products/clmm/instructions` — postconditions mở và đường dẫn remaining-account `ClosePosition` bị đóng băng.
* `products/clmm/code-demos` — ví dụ đóng Anchor trực tiếp và cảnh báo SDK được ghim.
* `user-flows/add-remove-liquidity` — hành vi position bị hạn chế đối mặt với người dùng.
* `user-flows/burn-and-earn` — các position bị đóng băng không thể chuyển vào lock escrow.
* `security/oracle-and-token-risks` / `security/attack-vectors` — ranh giới issuer và transfer-risk.
* `reference/token-2022-support` — sự phân biệt giữa allow-listing pool và custody position.
* `reference/error-codes` — nguyên nhân `AccountLack` và `NotApproved` được mở rộng.
* `reference/program-addresses` — khóa khớp restricted-issuer authority.
* `reference/fee-comparison` / `reference/glossary` — ngoại lệ chuyển nhượng.

**Xác minh 2026-08-13 so với**:

* Nhánh CLMM trước phát hành `feat/position-nft-freeze` tại `ecb157760776f83f97507fa78c6e32cfb30d92a9`.
* Commits `2e95310` (restricted-issuer NFT freezing) và `ecb1577` (pool-scoped freeze authority), so sánh với `master` tại `51fdba2`.
* Nguồn chương trình dưới `instructions/{open_position,open_position_v2,open_position_with_token22_nft,close_position}.rs` và `util/token.rs`.
* `position-nft-freeze.test.ts`, bao gồm chuyển nhượng thông thường, từ chối chuyển/thay đổi chủ sở hữu bị đóng băng, và luồng thaw-before-close V2 cộng với Token-2022.

<Warning>
  Xác minh này bao gồm nhánh nguồn trước phát hành, không phải triển khai mainnet-beta hoặc bản phát hành SDK được xuất bản. Xác nhận chương trình được triển khai, danh sách restricted-authority sản xuất, và trình tạo đóng SDK trước khi bật luồng.
</Warning>
