> ## 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.

# Token-2022-Unterstützungsmatrix

> Welche Raydium-Programme Token-2022 unterstützen, die explizite Erweiterungs-Allowlist, die jedes Programm bei der Poolerstellung durchsetzt, und die Umgehungswege (statische Mint-Whitelist, Pro-Mint-Registry, Superstate-Erkennung), die ansonsten abgelehnte Mints zulassen.

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

  [Englische Version ansehen →](/reference/token-2022-support)
</Info>

Raydium akzeptiert **keine** beliebigen Token-2022-Mints. CPMM und CLMM verwenden beide einen strikten **Allowlist-Modus**: Nur eine kleine Gruppe von Erweiterungen wird standardmäßig zugelassen; alles andere wird bei der Poolerstellung abgelehnt. Eine Handvoll vertrauenswürdiger Mints werden über hardcodierte Adressen zugelassen; CLMM unterstützt zusätzlich eine von Administratoren verwaltete Pro-Mint-Registry und eine Superstate-Token-Erkennung zur Laufzeit. Diese Seite ist das Nachschlagewerk für das, was durchgesetzt wird und wo, mit Quellcode-Zitaten.

## Unterstützung auf Programmebene

| Programm        | Token-2022 Base/Quote Mints? | Modus                                                                                                                                                                                                                                                                                                                                  |
| --------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **CPMM**        | Ja – kontrolliert            | Strikte Erweiterungs-Allowlist + 4-Mint-Whitelist.                                                                                                                                                                                                                                                                                     |
| **CLMM**        | Ja – kontrolliert            | Strikte Erweiterungs-Allowlist + 6-Mint-Whitelist + Admin-Registry + Superstate-Erkennung.                                                                                                                                                                                                                                             |
| **AMM v4**      | Nein                         | Programm existiert vor Token-2022; beide Mints müssen klassisches SPL Token sein.                                                                                                                                                                                                                                                      |
| **Stable AMM**  | Nein                         | Gleiche Einschränkungen wie AMM v4.                                                                                                                                                                                                                                                                                                    |
| **Farm v6**     | Ja, teilweise                | Der Reward-Mint kann Token-2022 sein (unterliegt der gleichen Allowlist, wenn eine Farm ein CPMM/CLMM LP umschließt); Benutzer-Stake-LP-Mints erben vom umschlossenen Pool.                                                                                                                                                            |
| **LaunchLab**   | Ja, programmverwaltet        | Der Base-Mint kann Token-2022 sein, aber nur über die dedizierte `initialize_with_token_2022`-Instruktion; das Programm erstellt den Mint selbst mit `MetadataPointer` (immer) und optional `TransferFeeConfig` (Rate ≤ 5 %). Bereits bestehende Token-2022-Mints mit beliebigen Erweiterungen können nicht als Base verwendet werden. |
| **Burn & Earn** | Spiegelt Pool-Programm       | Erbt CPMM/CLMM-Kontrolle.                                                                                                                                                                                                                                                                                                              |

Die Allowlist-Prüfungen befinden sich in:

* **CPMM**: `is_supported_mint` in [`raydium-cp-swap/programs/cp-swap/src/utils/token.rs:178`](https://github.com/raydium-io/raydium-cp-swap), aufgerufen von `Initialize`.
* **CLMM**: `is_supported_mint` in [`raydium-clmm/programs/amm/src/util/token.rs:280`](https://github.com/raydium-io/raydium-clmm), aufgerufen von `CreatePool`.
* **LaunchLab**: `initialize_with_token_2022` in `raydium-launchpad/programs/launchpad/src/instructions/initialize_with_token_2022.rs` (Quellcode nicht öffentlich verfügbar).

Es gibt **keine** Swap-Zeit-Mint-Prüfung auf CPMM oder CLMM – die Kontrolle greift nur bei der Poolerstellung. Sobald ein Pool existiert, vertrauen Swaps darauf, dass sich die Mints nicht geändert haben, was für die unveränderlichen Teile des Token-2022-Mint-Status korrekt ist.

## CPMM- und CLMM-Erweiterungs-Allowlist

Nach den Kurz-Umgehungen der statischen Whitelist (siehe unten) durchläuft das Programm die Erweiterungen des Mints und lehnt den Mint ab, falls er **eine beliebige** Erweiterung trägt, die nicht in diesen fünf ist:

| Erweiterung             | Grund für die Zulassung                                                                                                                                                                                |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `TransferFeeConfig`     | Die Pool-Mathematik subtrahiert die eingehende Gebühr; das Token-2022-Programm handhabt die ausgehende Gebühr. Siehe [`algorithms/token-2022-transfer-fees`](/de/algorithms/token-2022-transfer-fees). |
| `MetadataPointer`       | Dekorativ – verweist auf On-Chain-Metadaten.                                                                                                                                                           |
| `TokenMetadata`         | Dekorativ – Inline-Metadaten.                                                                                                                                                                          |
| `InterestBearingConfig` | Der Pool sieht den Kapitalbetrag; der UI-Multiplikator ist nur ein Dekorator und der zugrunde liegende Saldo bleibt erhalten.                                                                          |
| `ScaledUiAmount`        | Gleiche Form wie Zinssteigerung – der Skalierungsfaktor gilt nur für die UI-Anzeige.                                                                                                                   |

Alles, das nicht in dieser Liste ist – `TransferHook`, `NonTransferable`, `ConfidentialTransferMint`, `PermanentDelegate`, `MintCloseAuthority`, `DefaultAccountState`, `GroupPointer`, `GroupMemberPointer`, `MemberPointer`, `Pausable` usw. – führt dazu, dass `is_supported_mint` `false` zurückgibt und die Poolerstellung revertiert.

Die relevanten Zeilen (CPMM, identische Form in CLMM):

```rust theme={null}
for e in extensions {
    if e != ExtensionType::TransferFeeConfig
        && e != ExtensionType::MetadataPointer
        && e != ExtensionType::TokenMetadata
        && e != ExtensionType::InterestBearingConfig
        && e != ExtensionType::ScaledUiAmount
    {
        return Ok(false);
    }
}
Ok(true)
```

— [`cp-swap/src/utils/token.rs:190–200`](https://github.com/raydium-io/raydium-cp-swap)

## Umgehungswege

Ein Token-2022-Mint, der nicht in die Allowlist passt, kann immer noch über einen von drei expliziten Umgehungswegen zugelassen werden. Sie werden der Reihe nach versucht, bevor die Erweiterungsiteration ausgeführt wird.

### 1. Statische Mint-Whitelist

Ein konstantes `MINT_WHITELIST`-Array von Base58-Strings ist in jedem Programm hardcodiert. Wenn die Adresse des Mints übereinstimmt, gibt die Funktion sofort `true` zurück und es wird keine Erweiterungsprüfung durchgeführt.

| Programm | Whitelist-Mints                                                                                                                                                                                |
| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CPMM     | `HVbpJAQGNpkgBaYBZQBR1t7yFdvaYVp2vCQQfKKEN4tM`, `Crn4x1Y2HUKko7ox2EZMT6N2t2ZyH7eKtwkBGVnhEq1g`, `FrBfWJ4qE5sCzKm3k3JaAtqZcXUh4LvJygDeketsrsH4`, `2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo` |
| CLMM     | Die gleichen vier, plus `DAUcJBg4jSpVoEzASxYzdqHMUN8vuTpQyG2TvDcCHfZg`, `AUSD1jCcCyPLybk1YnvPWsHQSrZ46dxwoMniN4N2UEB9`                                                                         |

Diese Adressen sind in das Programm eingebacken; das Aktualisieren der Liste erfordert ein Programm-Upgrade über das 3/4-Upgrade-Multisig.

### 2. Pro-Mint-Registry – nur CLMM

CLMM konsultiert zusätzlich eine `SupportMintAssociated` PDA mit Seed `[b"support_mint", mint]`. Falls diese PDA für den Mint existiert, wird er unabhängig vom Erweiterungs-Set zugelassen.

Die PDA wird von `CreateSupportMintAssociated` ([`admin/create_support_mint_associated.rs`](https://github.com/raydium-io/raydium-clmm)) erstellt. Die Instruktion ist auf zwei Unterzeichner beschränkt:

* `crate::admin::ID` – die Standard-Raydium-Admin-Autorität.
* `crate::create_support_mint_associated_owner::ID` – eine dedizierte Autorität für diesen Zweck: `RayVyjyJQz9vAi126A4sGexKnSU1XeZaHTRcM1mZMPY` (Mainnet), `rayf3nEbb3bnfN6RDGFpqPbjc5uUa3tRUzu6UVYrRx5` (Devnet).

Effekt: Das CLMM-Team kann einen bestimmten Token-2022-Mint zur Poolerstellung opt-in, ohne ein Programm-Upgrade durchzuführen. CPMM hat kein Äquivalent – seine Allowlist ist streng im Quellcode festgelegt.

### 3. Superstate-Erkennung – nur CLMM

CLMM hat einen dritten Weg speziell für Superstate-Vermögenswerte, die die `ScaledUiConfig`-Erweiterung verwenden, die die Version von `spl-token-2022`, die in das CLMM-Programm verlinkt ist, nicht entpacken kann. Anstatt die Abhängigkeit zu aktualisieren, erkennt CLMM Superstate-Token anhand ihrer Autorität-Form:

```rust theme={null}
superstate_allowlist::ID == freeze_authority
    && *mint_account_info.owner == spl_token_2022::ID
    && default_account_state_freeze
    && maybe_permanent_delegate
```

— [`raydium-clmm/programs/amm/src/util/token.rs:485`](https://github.com/raydium-io/raydium-clmm)

Ein Mint besteht diesen Prüfungszweig, wenn **alle vier** erfüllt sind:

* Das verwaltende Programm ist das Token-2022-Programm.
* Seine Freeze-Autorität entspricht `superstate_allowlist::ID`. Mainnet: `2Yq4T3mPNfjtEyTxSbRjRKqLf1pwbTasuCQrWe6QpM7x`. Devnet: `3TRuL3MFvzHaUfQAb6EsSAbQhWdhmYrKxEiViVkdQfXu`.
* Seine `DefaultAccountState`-Erweiterung ist auf `Frozen` gesetzt.
* Sein Permanent-Delegate ist auch `superstate_allowlist::ID`.

Dies ist eine Heuristik, keine Registry – jeder zukünftige Mint, den Superstate mit der gleichen Autorität-Form ausstellt, wird automatisch zugelassen.

## Was die Umgehungswege nicht umgehen

Die Umgehungswege überspringen die Erweiterungs-Allowlist, aber das Programm erzwingt immer noch:

* Der Mint wird von `Token` oder `Token-2022` verwichtet. Ein benutzerdefiniertes Token-Programm wird vorgelagert abgelehnt.
* Die Pool-Vaults werden mit den richtigen ATA-Erweiterungen für Token-2022-Pools erstellt (`ImmutableOwner` usw.).
* Alle Transfers gehen durch `transfer_checked` – gebührentragende Mints landen im Vault mit der richtigen Menge.

Ein whitelist-oder PDA-registrierter Mint, der später beispielsweise einen `TransferHook` hinzufügt, erhält keine Swap-Zeit-Prüfung; der Hook würde einfach bei jedem Transfer ausgeführt und könnte Swaps unterbrechen. Die Whitelist-Erstellung ist daher eine Aktion mit hohem Vertrauensfaktor.

## „Blocked"-Semantik

Wenn `is_supported_mint` `false` zurückgibt, revertiert die Poolerstellung mit `ErrorCode::NotSupportMint` (CPMM) / `ErrorCode::NotSupportMint` (CLMM). Siehe [`reference/error-codes`](/de/reference/error-codes) für die numerischen Codes.

Bestehende Pools können diese Prüfung nicht rückwirkend fehlschlagen – die Kontrolle läuft nur bei der Erstellung. Mint-Erweiterungen sind unveränderlich für die Kategorien, die Raydium ablehnt (Transfer-Hook, Nicht-Übertragbar, Vertrauliche Übertragung können nicht nach der Erstellung hinzugefügt werden), daher ist die statische Prüfung ausreichend.

## Warum jede ausgeschlossene Erweiterung ausgeschlossen ist

* **TransferHook** – ruft ein benutzerdefiniertes Programm bei jedem Transfer auf, mit beliebiger CU-Verbrauch, beliebigen Fehlerbedingungen und der Fähigkeit, das aufrufende Programm erneut einzutreten. Es existiert keine sichere Sandbox. Einige DEXes führen Hook-Allowlisten; Raydium nicht.
* **NonTransferable** – `Transfer` schlägt immer fehl. Ein Pool kann keine Verwahrung übernehmen.
* **ConfidentialTransfer** – Übertragsbeträge sind verschlüsselt; die Kurve kann den Swap nicht preisen.
* **PermanentDelegate** – ein Inhaber des Delegates kann ein beliebiges Token-Konto, einschließlich des Pool-Vaults, leeren. Nur über die statische Whitelist für vertrauenswürdige Emittenten zulässig (z. B. regulierte Stablecoins).
* **MintCloseAuthority** – der Mint kann geschlossen werden; bestehende Pools werden unbrauchbar. Standardmäßig nicht zulässig.
* **DefaultAccountState (Frozen)** – Pool-ATAs würden in `Frozen`-Status landen und erforderten Entsperrung pro Konto. Nur über Superstate-Erkennung zulässig, die davon ausgeht, dass der Emittent institutionelle Konten bei der Registrierung entsperrt.
* **Group/Member-Pointer** – nicht aktiv schädlich, aber nicht überprüft. Standardmäßig nicht zulässig, um die Oberfläche eng zu halten.

## Transfergebühren-Buchhaltung

Für Mints mit `TransferFeeConfig` verschiebt jeder Swap, jede Einzahlung und jede Auszahlung weniger als den nominalen Betrag. Das SDK zeigt beide Hälften der Berechnung:

```ts theme={null}
const { amountIn, amountOut, feeAmount, token2022FeeIn, token2022FeeOut } =
  await raydium.cpmm.computeSwapAmount({ ... });
```

Eine korrekte UI zeigt:

* `amountIn + token2022FeeIn` als „Sie senden"
* `amountOut - token2022FeeOut` als „Sie erhalten"
* `feeAmount` als Pool-Gebühr (LP + Protokoll), die von der Token-2022-Transfergebühr getrennt ist

Eine naive UI, die nur `amountIn → amountOut` zeigt, unterschätzt die Kosten.

### `maximumFee`-Obergrenze

Token-2022-Transfergebühren sind pro Transfer begrenzt. Für einen 1-%-Mint mit einer 10.000-Token-Obergrenze zahlt eine 100.000.000-Token-Übertragung nur 10.000 an Gebühr. Das `computeSwapAmount` des SDK wendet die Obergrenze an; direkte Programmaufrufer müssen sie replizieren.

### Epoch-Übergang

Eine Mint-Autorität kann eine Gebührensatzänderung planen, die in der nächsten Epoch aktiviert wird. Während des Übergangsfensters leben zwei Konfigurationen (`older`, `newer`) gleichzeitig auf dem Mint und `TransferChecked` wählt nach aktueller Epoch. CPMM `SwapV2` und CLMM `SwapV2` übergeben beide das vollständige Mint-Konto in `accounts`, daher liest das Programm die richtige Konfiguration ohne ein zusätzliches Lookup.

Wenn Sie mehr als eine Epoch im Voraus über die Trade API oder das SDK notieren, kann die ausgeführte Gebühr von der zitierten Gebühr abweichen – begrenzt durch den `maximum_fee_basis_points` der älteren Konfiguration.

## Zinsberechnung und ScaledUiAmount

Der Pool hält den Kapitalbetrag; der „UI-Betrag" ist der Kapitalbetrag multipliziert mit einem zeitabhängigen oder von Admin gesetzten Skalierungsfaktor. Die Swap-Mathematik operiert auf dem Kapital:

```
principal_in = ui_amount_in / ui_multiplier(now)
```

Das SDK konvertiert automatisch. Direkte RPC-Leser sollten `pool.token0Vault.amount` als Kapital behandeln.

## Definition von „Token-2022-Pool"

Ein Pool ist ein Token-2022-Pool, falls **ein beliebiger** Mint `programId == TokenzQdB...` hat. Die API zeigt dies:

```
GET /pools/info/ids?ids=<POOL_ID>
```

```json theme={null}
{
  "data": [{
    "mintA": { "programId": "TokenzQdB...", "hasTransferFee": true, ... },
    "mintB": { "programId": "Tokenkeg...", ... }
  }]
}
```

Verwenden Sie `programId` zum Dispatcher und `hasTransferFee`, um eine UI-Warnung anzuzeigen.

## SDK-Helfer

```ts theme={null}
import { Raydium, TOKEN_2022_PROGRAM_ID } from "@raydium-io/raydium-sdk-v2";
import { ExtensionType, getExtensionTypes, unpackMint } from "@solana/spl-token";

const raydium = await Raydium.load({ owner, connection });

const acct = await connection.getAccountInfo(mintPubkey);
if (!acct) throw new Error("mint not found");
const mint = unpackMint(mintPubkey, acct, acct.owner);

if (acct.owner.equals(TOKEN_2022_PROGRAM_ID)) {
  const extensions = getExtensionTypes(mint.tlvData);
  const accepted = new Set([
    ExtensionType.TransferFeeConfig,
    ExtensionType.MetadataPointer,
    ExtensionType.TokenMetadata,
    ExtensionType.InterestBearingConfig,
    ExtensionType.ScaledUiAmount,
  ]);
  const rejecting = extensions.filter(e => !accepted.has(e));
  if (rejecting.length) {
    console.warn("Pool creation will revert unless this mint is whitelisted:", rejecting);
  }
}
```

## Häufige Integrationsfehler

* **Nur die Programm-ID vorüberprüfen.** Ein Mint kann Token-2022 sein *und* nicht unterstützt werden. Gehen Sie die Erweiterungsliste gegen die Allowlist (und die statische Whitelist) durch, bevor Sie die Poolerstellung zulassen.
* **Das SDK-Angebot vertrauen, wenn der Mint überhaupt nicht akzeptiert wird.** Die Angebots-API weigert sich nicht anzubieten – die Poolerstellung ist das, was revertiert. Bestätigen Sie die `is_supported_mint`-Semantik offline, bevor Sie die Poolerstellung in Ihrer UI verfügbar machen.
* **Angebot ohne Transfergebühren-Haarschnitt.** Ein 1-%-Transfergebühren-Mint auf beiden Seiten eines 0,25-%-CPMM-Pools hat eine effektive Gebühr von etwa 2,25 %, nicht 0,25 %. Verwenden Sie das SDK-Angebot oder Trade API-Angebot – berechnen Sie die Gebühr niemals manuell allein aus der Pool-Gebührenebene.
* **Die Legacy-`Swap`-Instruktion auf einem Token-2022-Pool aufrufen.** `Swap` stammt vor Token-2022. Verwenden Sie `SwapV2`, wann immer ein Mint Token-2022 ist.
* **Automatisches Auflisten neuer Token-2022-Mints.** Wallets und Aggregatoren sollten auf `TransferHook` und `NonTransferable` prüfen, bevor sie einen Mint Benutzern zeigen; beide sind Raydium-feindselig.

## Zukünftige Arbeiten

Solana-Ökosystem- und Protokoll-Roadmap-Punkte, die diese Matrix ändern würden:

* Allow-listete Transfer-Hook-Programme auf Solana-Ebene (Ökosystem-Konvention entwickelt sich).
* Vertrauliche-Transfer-kompatible AMMs (Forschungsphase).
* Breitere CPMM-Pro-Mint-Registry (Parität mit CLMM).
* Abhängigkeits-Upgrade, damit die `ScaledUiConfig`-Dekodierung von CLMM ohne die Superstate-Heuristik funktioniert.

Diese Seite wird aktualisiert, wenn einer davon implementiert wird.

## Verweise

* [`algorithms/token-2022-transfer-fees`](/de/algorithms/token-2022-transfer-fees) – Gebühren-Mathematik in Swaps.
* [`products/cpmm/instructions`](/de/products/cpmm/instructions) – `SwapV2`, `Initialize`.
* [`products/clmm/instructions`](/de/products/clmm/instructions) – `SwapV2`, `CreatePool`, `CreateSupportMintAssociated`.
* [`reference/error-codes`](/de/reference/error-codes) – `NotSupportMint` numerische Codes pro Programm.

Quellen:

* `raydium-cp-swap/programs/cp-swap/src/utils/token.rs` – `MINT_WHITELIST`, `is_supported_mint`.
* `raydium-clmm/programs/amm/src/util/token.rs` – `MINT_WHITELIST`, `superstate_allowlist`, `is_superstate_token`, `is_supported_mint`.
* `raydium-clmm/programs/amm/src/instructions/admin/create_support_mint_associated.rs` – Pro-Mint-Registry-Instruktion.
* `raydium-launchpad/programs/launchpad/src/instructions/initialize_with_token_2022.rs` – LaunchLab Token-2022-Base-Mint-Erstellung.
