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 →
Dies ist das Changelog der Dokumentation — der Überblick über Aktualisierungen dieser Seiten seit der Live-Schaltung des Projekts. Für die geschichtliche Zeitleiste des Protokolls selbst siehe
introduction/history-and-milestones. Jeder Eintrag hier enthält ein Datum, eine Liste betroffener Kapitel, den Grund für die Änderung und ein Überprüfungsdatum, das anzeigt, wann On-Chain-Status und Programmquellencode zuletzt gegen die schriftliche Dokumentation abgeglichen wurden.2026-05-18 — CLMM: Limit Orders, Single-Sided Fee, Dynamic Fee
Die nächste CLMM-Version fügt drei Funktionen auf Pool-Ebene hinzu. Diese sind bei der Pool-Erstellung optional aktivierbar und rückwärtskompatibel mit bestehenden Pools und Positionen.TL;DR für Integratoren
- Limit Orders sind nun erstklassige CLMM-Primitive. LPs können eine Limit Order auf einem Tick in einem Pool eröffnen, der sie unterstützt. Die Order wird FIFO gefüllt, wenn ein Swap den Tick kreuzt, und ein Off-Chain-Keeper (
limit_order_admin) kann die gefüllte Ausgabe abrechnen, ohne dass der Inhaber online sein muss. Sieben neue SDK-Methoden (openLimitOrder,increaseLimitOrder,decreaseLimitOrder,settleLimitOrder,closeLimitOrder,closeAllLimitOrder,settleAllLimitOrder) und drei neue Temp-API-Endpoints unter/limit-order/(aktive Orders, Benutzerhistorie, PDA-Ereignislog) decken den gesamten Ablauf ab. - Single-Sided Fee (
CollectFeeOn) ermöglicht einem Pool, Swap-Gebühren von der Eingabenseite (Legacy, Modus0) oder immer vontoken_0(Modus1) oder immer vontoken_1(Modus2) zu erheben. Nützlich, wenn eine Seite des Paares das kanonische Abrechnungs-Token ist. - Dynamic Fee ermöglicht einem Pool, eine volatilitätsabhängige Gebührenaufschlag zu aktivieren, die sich mit schnellen Tick-Bewegungen erhöht und mit der Zeit abnimmt, kalibriert durch eine Pro-Tier-
DynamicFeeConfigund eine Pool-spezifischeDynamicFeeInfo. Der neue/main/clmm-dynamic-configEndpoint zeigt die Tier-Liste. - Eine neue Instruktion,
CreateCustomizablePool, macht alle drei Optionen bei der Pool-Erstellung verfügbar. Das klassischeCreatePoolfunktioniert weiterhin für Standard-Fee- und No-Limit-Order-Pools. - Indexer Breaking Change: Die pro-Richtungs-Volumenzähler (
swap_in_amount_token_{0,1},swap_out_amount_token_{0,1}) und Lebenszeit-Gebührenzähler (total_fees_token_{0,1},total_fees_claimed_token_{0,1}) aufPoolStatewurden in Padding ausgelagert, um Platz fürfee_onunddynamic_fee_infozu schaffen. Indexer, die diese Felder direkt lesen, müssen auf den On-Chain-Observation-Ring oder die API migrieren.
Warum dies wichtig ist (für Trader, LPs und Integratoren)
- Trader erhalten engere Quotes auf Long-Tail- und ereignisgesteuerten Paaren: Dynamic Fee ermöglicht dem Pool, Volatilitätszuschläge vom Taker zu absorbieren, ohne dass LPs aktiv Ranges erweitern müssen, und Limit-Order-Leitern vertiefen die On-Chain-Liquidität an spezifischen Preisen ohne breite Kapitalverpflichtung.
- LPs erhalten eine dritte Strategie neben konzentrierten Ranges und Full-Range-Positionen: genaue Preisorders parken, gefüllt werden, wenn der Preis diese besucht, in das Quote-Token abrechnen. Kein aktives Rebalancing erforderlich für den gefüllten Anteil.
- Integratoren können Dynamic-Fee-Pools deterministisch modellieren — Algorithmus und Parameter sind vollständig On-Chain, die Kalibrierungs-Tiers sind abfragbar, und der Swap-Pfad bleibt unverändert in der Form (nur die Gebühr pro Schritt variiert).
Was sich im Programm geändert hat
Neue Konten
DynamicFeeConfig— Pro-Tier-Kalibrierungsdatensatz (Filterperiode, Zerfallperiode, Reduktionsfaktor, Dynamic-Fee-Kontrolle, maximaler Volatilitäts-Akkumulator). Erstellt vonCreateDynamicFeeConfig(Admin), referenziert vonCreateCustomizablePool, wenn Dynamic Fee aktiviert ist.LimitOrderState— Pro-Order-Konto (PDA-Seeds:[owner, limit_order_nonce, order_nonce]) mit Pool, Tick, Seite, Eingabemenge, ungefülltem Verhältnis, FIFO-Kohorten-Phase und Verwaltungs-Snapshots. Der Lebenszyklus ist implizit (filled_amountvstotal_amount, plus Kontoexistenz):Open → Filled → Settled → Closed.LimitOrderNonce— Pro-(owner, nonce_index) monoton inkrementierender Zähler, der die Limit-Order-PDA-Seeds erhält. Dernonce_index: u8ermöglicht dem gleichen Owner, Orders in bis zu 256 unabhängige Nonce-Ströme zu unterteilen.
PoolState Umstrukturierung
| Feldgruppe | Altes Layout | Neues Layout |
|---|---|---|
| Pro-Richtungs-Volumenzähler | swap_in_amount_token_0, swap_out_amount_token_0, swap_in_amount_token_1, swap_out_amount_token_1 | In padding5: [u128; 4] integriert |
| Lebenszeit-Gebührenzähler | total_fees_token_0, total_fees_claimed_token_0, total_fees_token_1, total_fees_claimed_token_1 | In padding6: [u64; 4] integriert |
| Single-Sided Fee | — | fee_on: u8 (0 = FromInput, 1 = Token0Only, 2 = Token1Only) |
| Dynamic Fee | — | dynamic_fee_info: DynamicFeeInfo (eingebettet) |
PoolState auf den Observation-Ring oder die API um. Die eingestellten Zähler werden auf bestehenden Pools nicht auf Null gesetzt (sie enthalten, was sie zuletzt trugen), sodass das erneute Lesen nach dem Upgrade veraltete Daten zurückgibt.
TickState Ergänzungen (keine Breaking Change)
Am Ende von TickState werden vier neue Felder hinzugefügt und ersetzen etwas seines hinteren Paddings:
order_phase: u64— Zähler, der Limit-Order-Kohorten an diesem Tick disambiguiert.orders_amount: u64— Gesamteingabe, die von allen offenen Orders an diesem Tick verpflichtet ist (nicht alle sind vollständig ungefüllt).part_filled_orders_remaining: u64— Eingabe, die in der Kohorte noch ungefüllt ist und derzeit von Swaps verbraucht wird.unfilled_ratio_x64: u128— Q64.64 Verhältnis zur Berechnung des Füllungsanteils jeder Order.
Neue Instruktionen
CreateDynamicFeeConfig(Admin) — erstelle eine kalibrierteDynamicFeeConfigTier. Autorität: gleiches Treasury-Multisig wieCreateAmmConfig.UpdateDynamicFeeConfig(Admin) — aktualisiere Parameter einer bestehenden Tier.CreateCustomizablePool— Pool-Erstellungs-Entry-Point, dercollect_fee_on,enable_dynamic_feeunddynamic_fee_configverfügbar macht. Existiert nebenCreatePool; wir empfehlenCreateCustomizablePoolfür jeden neuen Pool, der die neuen Optionen benötigt.OpenLimitOrder— eröffne eine Single-Tick-Limit-Order. ErhöhtLimitOrderNonce, belegtLimitOrderState, ordnet die Order in die FIFO-Kohorte am Tick ein.IncreaseLimitOrder/DecreaseLimitOrder— passe den ungefüllten Anteil einer Order an. Setzt mitInvalidOrderPhasezurück, wenn die Order vollständig gefüllt ist.SettleLimitOrder— räume gefüllte Ausgabe auf das ATA des Inhabers ein. Aufrufer kann der Owner oder derlimit_order_admin-Keeper des Pools sein.CloseLimitOrder— schließe eine vollständig abgerechnete Order, um Miete zurückzufordern.
SwapV2 Verhaltensänderungen
Der Swap-Pfad bleibt unverändert in der Form, aber drei Dinge passieren jetzt entlang des Weges:
- Dynamic Fee (wenn aktiviert): Das Pool-
DynamicFeeInfowird bei jedem Schritt aktualisiert (Zerfall → Akkumulation → Obergrenze), und der resultierende Zuschlag wird auf die Basis-Gebühr für diesen Schritt addiert. - Limit-Order-Matching (wenn der Schritt einen initialisierten Tick kreuzt, der offene Orders hat): Teil der Swap-Eingabe wird FIFO verbraucht, um die Kohorte an diesem Tick zu füllen, mit
unfilled_ratio_x64, das atomar aktualisiert wird. - Single-Sided-Fee-Routing (wenn
fee_on != 0): die Gebühr wird vontoken_0odertoken_1unabhängig von der Swap-Richtung entnommen, anstatt immer von der Eingabenseite.
Neue Fehlercodes
DasErrorCode-Enum wurde in dieser Version umbenannt: fünf Legacy-Varianten (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) wurden entfernt, und elf neue Varianten wurden angehängt. Da Anchor Fehler nach Enum-Reihenfolge ab 6000 nummeriert, hat sich jeder Fehlercode an oder nach den entfernten Positionen verschoben — Clients, die numerische Codes hart codiert haben, müssen neu zuordnen.
Die neuen Codes sind:
6040OrderAlreadyFilled6041InvalidOrderPhase6042InvalidLimitOrderAmount6043OrderPhaseSaturated6044InvalidDynamicFeeConfigParams6045InvalidFeeOn6046ZeroSqrtPrice6047ZeroLiquidity6048MissingBaseFlag6049MissingMintAccount6050MissingTokenProgram2022
Was sich im SDK (@raydium-io/raydium-sdk-v2) geändert hat
- Neue Methoden auf
raydium.clmm:createCustomizablePool,openLimitOrder,increaseLimitOrder,decreaseLimitOrder,settleLimitOrder,settleAllLimitOrder,closeLimitOrder,closeAllLimitOrder. - Neue REST-Helfer auf
raydium.api:getClmmDynamicConfigs,getClmmLimitOrderConfigs. - Neue Typen:
CollectFeeOnenum,DynamicFeeConfig,DynamicFeeInfo,LimitOrderState,LimitOrderConfig. - Interne Reorganisation:
utils/wurde zulibraries/verschoben. Das Package-Barrel bleibt unverändert; nur tiefe Importe unter@raydium-io/raydium-sdk-v2/utils/...müssen auf…/libraries/...aktualisiert werden.
products/clmm/code-demos.
Was sich in den APIs geändert hat
api-v3— zwei neue Endpoints unter/main/:GET /main/clmm-dynamic-config— Liste vonDynamicFeeConfig-Tiers.GET /main/clmm-limit-order-config— Pro-Pool-Limit-Order-Konfiguration.
temp-api-v1— drei neue Endpoints unter/limit-order/:GET /limit-order/order/list?wallet=…— aktuell geparkte Orders einer Wallet (offen und teilweise gefüllt, aus dem Redis-Cache des Indexers bedient; das gleiche Payload deckt beide Phasen übertotalAmount/filledAmount/pendingSettleab).GET /limit-order/history/order/list-by-user?wallet=…— historische Limit Orders einer Wallet. Optionale Filter:poolId,mint1,mint2,hideCancel. Cursor-paginiert vianextPageId/size(max 100).GET /limit-order/history/event/list-by-pda?pda=…— Pro-PDA-Ereignislog (open/increase/decrease/settle/close) für eine oder mehrere komma-getrennte Limit-Order-PDAs. Cursor-paginiert vianextPageId/size(max 100).
Authority-Oberfläche
Derlimit_order_admin ist ein Off-Chain-Betriebskeeper, kein Multisig. Er kann nur SettleLimitOrder und CloseLimitOrder auf bestehenden Orders aufrufen, und die Ausgabe eines Settlements landet immer im ATA des Inhabers. Er kann Pool-Felder nicht mutieren, Orders nicht eröffnen oder ändern oder für etwas anderes signieren. Siehe Admin keys and multisig → CLMM.
Aktualisierte Seiten
products/clmm/overview— neuer „What’s new”-Bereich und aktualisierte Nächste-Schritte-Zeiger.products/clmm/accounts— drei neue Konten,PoolState-Umstrukturierung mit Migrationsbefund,TickState-Ergänzungen, neue PDA-Helfer.products/clmm/instructions— sieben neue Instruktionen,SwapV2-Verhaltensergänzung, aktualisierte Zustandsänderungsmatrix.products/clmm/fees— Single-Sided-Fee-Bereich, Dynamic-Fee-Bereich mit Parametertabelle.products/clmm/math— Limit-Order-Matching-Pseudocode, Dynamic-Fee-Ableitung.products/clmm/code-demos—createCustomizablePool-Demo, vollständiger Limit-Order-Walkthrough, neue Fallstricke.algorithms/clmm-math— Kreuzverweis auf Limit-Order-Matching und Dynamic Fee in der Multi-Tick-Swap-Schleife.sdk-api/typescript-sdk— CLMM-Modul-Ergänzungen-Bereich,utils/→libraries/-Migrationsbefund.api-reference/openapi/api-v3.yaml— zwei neue Endpoints mit Response-Schemas.api-reference/openapi/temp-api-v1.yaml— drei neue Limit-Order-Endpoints (/limit-order/order/list,/limit-order/history/order/list-by-user,/limit-order/history/event/list-by-pda) mit ihren Request- und Response-Schemas.api-reference/api-v3/overview— Hinweis auf die neuen CLMM-Config-Endpoints.api-reference/temp-api-v1/overview— Hinweis auf die neuen Active-Orders-, History-by-User- und Event-by-PDA-Endpoints.reference/error-codes— elf neue CLMM-Fehlercodes (6040–6050) plus fünf entfernte Legacy-Codes; numerische Codes nach den Entfernungspunkten haben sich verschoben.security/admin-and-multisig— neueDynamicFeeConfig-Admin-Zeile undlimit_order_admin-Keeper-Zeile mit Erklärung begrenzte Autorität.
raydium-clmm-Quelle.@raydium-io/raydium-sdk-v2-Quelle.api-v3undtemp-api-v1-Quelle.
2026-04-26 — Erste Veröffentlichung
Erste öffentliche Veröffentlichung des Raydium-Dokumentationssatzes. Überprüft gegen:- Live-Programm-Deployments auf Solana mainnet-beta.
@raydium-io/raydium-sdk-v2@0.2.42-alpha.- Öffentliche Raydium-Dokumentation und On-Chain-Referenzen bis April 2026.
Dokumentationskonventionen
- Versionierung: Diese Dokumentation verwendet kalenderbasierte Versionierung (YYYY-MM-DD). Jede Aktualisierung erstellt einen neuen Eintrag oben in der Datei.
- Überprüfungsdatum: Jeder Eintrag erfasst, wann die Inhalte zuletzt gegen On-Chain-/API-Status und die Programmquelle abgeglichen wurden. Falls nicht angegeben, gehen Sie vom Hauptdatum des Eintrags aus.
- Breaking Changes: Hervorgehoben in einem eingerahmten Befund auf betroffenen Seiten und mit Tags in dem Eintrag unten gekennzeichnet.
- Abdeckung: Dieses Changelog deckt die Dokumentationsmenge selbst ab. Die geschichtliche Zeitleiste des Protokolls selbst lebt in
introduction/history-and-milestonesund ist die Wahrheitsquelle für „wann ist X auf Raydium passiert”.
Korrektionen
Falls Sie einen Fehler in dieser Dokumentation entdecken, öffnen Sie bitte ein Issue oder Pull Request im Dokumentations-Repository. Korrektionen werden in diesem Changelog protokolliert.Zeiger
introduction/history-and-milestones— die Zeitleiste des Protokolls selbst.security/audits— Audit-Verlauf.ray/protocol-fees— Protokoll-Fee-Splits.reference/program-addresses— Program-ID-Quelle-der-Wahrheit.


