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.
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
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. |
- CPMM:
is_supported_mintinraydium-cp-swap/programs/cp-swap/src/utils/token.rs:178, aufgerufen vonInitialize. - CLMM:
is_supported_mintinraydium-clmm/programs/amm/src/util/token.rs:280, aufgerufen vonCreatePool. - LaunchLab:
initialize_with_token_2022inraydium-launchpad/programs/launchpad/src/instructions/initialize_with_token_2022.rs(Quellcode nicht öffentlich verfügbar).
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. |
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. |
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):
cp-swap/src/utils/token.rs:190–200
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 konstantesMINT_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 |
2. Pro-Mint-Registry – nur CLMM
CLMM konsultiert zusätzlich eineSupportMintAssociated 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) 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).
3. Superstate-Erkennung – nur CLMM
CLMM hat einen dritten Weg speziell für Superstate-Vermögenswerte, die dieScaledUiConfig-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:
raydium-clmm/programs/amm/src/util/token.rs:485
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 aufFrozengesetzt. - Sein Permanent-Delegate ist auch
superstate_allowlist::ID.
Was die Umgehungswege nicht umgehen
Die Umgehungswege überspringen die Erweiterungs-Allowlist, aber das Programm erzwingt immer noch:- Der Mint wird von
TokenoderToken-2022verwichtet. Ein benutzerdefiniertes Token-Programm wird vorgelagert abgelehnt. - Die Pool-Vaults werden mit den richtigen ATA-Erweiterungen für Token-2022-Pools erstellt (
ImmutableOwnerusw.). - Alle Transfers gehen durch
transfer_checked– gebührentragende Mints landen im Vault mit der richtigen Menge.
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
Wennis_supported_mint false zurückgibt, revertiert die Poolerstellung mit ErrorCode::NotSupportMint (CPMM) / ErrorCode::NotSupportMint (CLMM). Siehe 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 –
Transferschlä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 mitTransferFeeConfig verschiebt jeder Swap, jede Einzahlung und jede Auszahlung weniger als den nominalen Betrag. Das SDK zeigt beide Hälften der Berechnung:
amountIn + token2022FeeInals „Sie senden”amountOut - token2022FeeOutals „Sie erhalten”feeAmountals Pool-Gebühr (LP + Protokoll), die von der Token-2022-Transfergebühr getrennt ist
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:pool.token0Vault.amount als Kapital behandeln.
Definition von „Token-2022-Pool”
Ein Pool ist ein Token-2022-Pool, falls ein beliebiger MintprogramId == TokenzQdB... hat. Die API zeigt dies:
programId zum Dispatcher und hasTransferFee, um eine UI-Warnung anzuzeigen.
SDK-Helfer
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.Swapstammt vor Token-2022. Verwenden SieSwapV2, wann immer ein Mint Token-2022 ist. - Automatisches Auflisten neuer Token-2022-Mints. Wallets und Aggregatoren sollten auf
TransferHookundNonTransferableprü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.
Verweise
algorithms/token-2022-transfer-fees– Gebühren-Mathematik in Swaps.products/cpmm/instructions–SwapV2,Initialize.products/clmm/instructions–SwapV2,CreatePool,CreateSupportMintAssociated.reference/error-codes–NotSupportMintnumerische Codes pro Programm.
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.


