> ## 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: Einfrieren von Position-NFTs mit beschränktem Emittenten

> CLMM friert ein neues Position-NFT-Konto bedingt ein, wenn ein V2-Open-Pfad einen zugrunde liegenden Mint findet, dessen Freeze-Autorität mit der Liste der beschränkten Emittenten übereinstimmt.

<Info>
  **Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.**

  [Englische Version ansehen →](/reference/changelog/2026-08-17-clmm-restricted-position-nft-freeze)
</Info>

Dieses Release fügt einen bedingten Nicht-Transferierbarkeits-Pfad für ausgewählte KYC-beschränkte Emittenten-Pools hinzu. Es friert nicht jeden neuen Position ein, friert keine Pool-Assets ein und verhindert nicht, dass Position-Inhaber ihre Liquidität verwalten. Das CLMM-Pool-PDA wird zur Freeze-Autorität für jeden neuen Position-NFT-Mint, aber das NFT-Token-Konto bleibt standardmäßig aufgetaut. Das Programm friert es nur ein, wenn die Position `OpenPositionV2` oder `OpenPositionWithToken22Nft` verwendet und mindestens ein zugrunde liegender Vault-Mint eine Freeze-Autorität aus der hardcodierten Liste der beschränkten Emittenten trägt.

## TL;DR für Integratoren

* **Neue Position-NFT-Mints haben eine Freeze-Autorität, sind aber standardmäßig nicht eingefroren.** `OpenPosition`, `OpenPositionV2` und `OpenPositionWithToken22Nft` setzen den `pool_state` der Position als Mint-Freeze-Autorität. Die Mint-Autorität wird nach dem Prägen des einzelnen NFT immer noch entfernt.
* **Einfrieren erfordert einen V2-Pfad plus Emittenten-Übereinstimmung.** `OpenPositionV2` und `OpenPositionWithToken22Nft` prüfen `vault_0_mint.freeze_authority` und `vault_1_mint.freeze_authority`. Das neue NFT-Konto wird nur eingefroren, wenn mindestens eine mit der Programmliste übereinstimmt. Ohne Übereinstimmung bleibt es aufgetaut und transferierbar.
* **Eingefroren bedeutet an den Inhaber gebunden.** SPL Token lehnt NFT-Transfers und Änderungen des Token-Konto-Inhabers mit seinem nativen `AccountFrozen`-Fehler ab. Liquiditätserhöhung/-verringerung und Gebühren-/Reward-Erfassung funktionieren weiterhin, wenn der NFT-Inhaber signiert.
* **Schließen bleibt verfügbar.** `ClosePosition` erkennt ein eingefrorenes NFT-Konto, nutzt das Pool-PDA zum Auftauen, brennt dann das NFT und schließt die Position atomar.
* **Das Schließen eines eingefrorenen Kontos erfordert ein verbleibendes Konto.** Der Client muss `personal_position.pool_id` als erstes verbleibendes Konto anhängen. Fehlt es, wird CLMM `AccountLack` zurückgegeben; wird das falsche Pool übergeben, wird `NotApproved` zurückgegeben.
* **Bestehende Positionen sind nicht betroffen.** Das Update ändert nicht rückwirkend NFT-Mint-Autoritäten oder friert bestehende Token-Konten ein.
* **Keine CLMM-State-Layout- oder deklarierte IDL-Kontolistenänderung.** `PoolState`, `PersonalPositionState` und Anweisungsargumente bleiben byte-kompatibel. Die Close-Pfad-Anforderung wird durch `remaining_accounts` übermittelt.

## Trigger-Logik

Das Programm wertet die beiden Vault-Mints zum Öffnungszeitpunkt aus:

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

Eine fehlende Freeze-Autorität stimmt nicht überein. Eine übereinstimmende Seite ist ausreichend. Die ursprüngliche Liste enthält dieselbe Emittenten-Autorität, die von CLMMs Superstate-Asset-Erkennung verwendet wird. Die aktuellen Mainnet-Beta- und Devnet-Match-Keys befinden sich in [`reference/program-addresses`](/de/reference/program-addresses#clmm-restricted-issuer-freeze-authorities).

Die Prüfung wird im gemeinsamen Open-Position-Handler nur ausgeführt, wenn Vault-Mint-Konten bereitgestellt werden. Das bedeutet:

| Open-Pfad                    | Position-NFT-Programm | Verhalten beim Einfrieren mit beschränktem Emittenten                                                                |
| ---------------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `OpenPosition` V1            | SPL Token             | Friert nicht ein. V1 kann die Token-2022-Emittenten-Assets, auf die die ausgelieferte Liste abzielt, nicht bedienen. |
| `OpenPositionV2`             | SPL Token             | Prüft beide Vault-Mints und friert bei Übereinstimmung ein.                                                          |
| `OpenPositionWithToken22Nft` | Token-2022            | Prüft beide Vault-Mints und friert bei Übereinstimmung ein.                                                          |

## Änderungen der Position-NFT-Autorität

Vor diesem Update behielt ein neu erstellter klassischer SPL-Position-NFT-Mint keine Freeze-Autorität. Nach dem Update benennt jeder neue Position-NFT-Mint seinen Pool als Freeze-Autorität, einschließlich Positionen in gewöhnlichen Pools. Diese Autoritätseinstellung allein friert das NFT-Token-Konto nicht ein; gewöhnliche und nicht übereinstimmende Positionen bleiben aufgetaut.

Die Verwendung des Pool-PDA statt eines globalen Admin- oder Emittenten-Keys begrenzt die Autorität auf einen Pool. Eine externe Partei kann nicht als PDA signieren, und CLMM stellt keine allgemeine Anweisung zum Einfrieren oder Auftauen beliebiger Position-Konten bereit. Der neue Code verwendet die Autorität nur an zwei Stellen:

1. Sofort nach dem Prägen einfrieren, wenn die zugrunde liegende Emittenten-Prüfung übereinstimmt.
2. Während `ClosePosition` sofort vor dem Brennen auftauen.

## `ClosePosition`-Migration

Die sechs deklarierten Konten ändern sich nicht. Für ein eingefrorenes NFT fügen Sie den Pool als erstes verbleibendes Konto hinzu:

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

Der Handler prüft den Key, bevor er `PoolState` lädt, leitet die Pool-Signer-Seeds ab und führt aus:

```text theme={null}
NFT-Konto auftauen → NFT brennen → NFT-Token-Konto / Position-State schließen
```

Alle Schritte laufen in einer Solana-Anweisung und committen oder revertieren daher zusammen. Das Pool bei jedem Schließen zu übergeben ist sicher: Der Handler ignoriert verbleibende Konten, wenn das NFT-Konto nicht eingefroren ist.

<Warning>
  **Bedingter Client-Break.** Ein älterer Client kann nach dem Upgrade erfolgreich eine Position öffnen, da die V2-Open-Konten-Layouts unverändert sind. Wenn diese Position eingefroren ist, kann derselbe Client sie später möglicherweise nicht schließen, da sein `ClosePosition`-Builder das verbleibende Pool-Konto auslässt. Aktualisieren Sie den Close-Builder, bevor Sie Benutzern erlauben, Positionen in betroffenen Pools zu öffnen.
</Warning>

## Kompatibilitätsmatrix

| Szenario                                           | NFT transferieren | Liquidität verwalten | Legacy-Close-Builder           | Aktualisierter Close-Builder      |
| -------------------------------------------------- | ----------------- | -------------------- | ------------------------------ | --------------------------------- |
| Bestehende Position                                | unverändert       | ja                   | ja                             | ja                                |
| Neue Position, gewöhnlicher Pool                   | ja                | ja                   | ja                             | ja                                |
| Neue V2-Position, Pool mit beschränktem Emittenten | nein              | ja                   | schlägt mit `AccountLack` fehl | ja; atomares Auftauen und Brennen |

Es werden keine neuen CLMM-Custom-Error-Varianten oder numerischen Verschiebungen eingeführt. Der native `AccountFrozen`-Fehler von SPL Token lehnt Transfer- oder Inhaberwechsel-Versuche ab.

## Aktualisierte Seiten

* `products/clmm/overview` — Release-Zusammenfassung und Caveat zur beschränkten Transferierbarkeit.
* `products/clmm/ticks-and-positions` — Autoritätsmodell, Trigger, Inhaber-Fähigkeiten und Close-Migrations-Warnung.
* `products/clmm/accounts` — Position-NFT-Mint und Lebenszyklusverhalten.
* `products/clmm/instructions` — Open-Nachbedingungen und eingefrorener `ClosePosition`-Pfad für verbleibende Konten.
* `products/clmm/code-demos` — direktes Anchor-Close-Beispiel und gepinnte-SDK-Warnung.
* `user-flows/add-remove-liquidity` — benutzerfreundliches Verhalten bei beschränkten Positionen.
* `user-flows/burn-and-earn` — eingefrorene Positionen können nicht in Lock-Escrow übertragen werden.
* `security/oracle-and-token-risks` / `security/attack-vectors` — Emittenten- und Transfer-Risiko-Grenzen.
* `reference/token-2022-support` — Unterscheidung zwischen Pool-Allowlisting und Position-Verwahrung.
* `reference/error-codes` — erweiterte `AccountLack`- und `NotApproved`-Ursachen.
* `reference/program-addresses` — Match-Keys für beschränkte Emittenten-Autorität.
* `reference/fee-comparison` / `reference/glossary` — Transferierbarkeits-Ausnahmen.

**Verifiziert 2026-08-13 gegen**:

* Pre-Release-CLMM-Branch `feat/position-nft-freeze` bei `ecb157760776f83f97507fa78c6e32cfb30d92a9`.
* Commits `2e95310` (Einfrieren von NFTs mit beschränktem Emittenten) und `ecb1577` (Pool-scoped Freeze-Autorität), verglichen mit `master` bei `51fdba2`.
* Programm-Quellen unter `instructions/{open_position,open_position_v2,open_position_with_token22_nft,close_position}.rs` und `util/token.rs`.
* `position-nft-freeze.test.ts`, abdeckend gewöhnliche Transferierbarkeit, Ablehnung von eingefrorenen Transfers/Inhaberwechseln und V2-Plus-Token-2022-Auftau-vor-Close-Flows.

<Warning>
  Diese Verifizierung deckt den Pre-Release-Source-Branch ab, nicht eine Mainnet-Beta-Bereitstellung oder veröffentlichte SDK-Version. Bestätigen Sie das bereitgestellte Programm, die Produktions-Restricted-Authority-Liste und den SDK-Close-Builder, bevor Sie den Flow aktivieren.
</Warning>
