Zum Hauptinhalt springen

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 →

Zusammenfassung in einem Absatz

CLMM — Concentrated Liquidity Market Maker — ist Raydiums Uniswap-v3-ähnlicher AMM. Anstatt die Einzahlung eines Liquiditätsproviders über die gesamte Preiskurve zu verteilen, ermöglicht CLMM es LPs, in einen bestimmten Preisbereich einzuzahlen. Innerhalb dieses Bereichs ist jeder Dollar der Einzahlung um ein Vielfaches produktiver als in einem CPMM-Pool; außerhalb des Bereichs bringt die Einzahlung keine Einnahmen und sitzt als einseitige Balance. Das Programm verfolgt die Liquidität pro Tick (ein diskretisierter Preis-Bucket), bepreist den Pool-Status anhand der Quadratwurzel des Preises, codiert als Q64.64-Festkommazahl (sqrt_price_x64), und prägt für jede LP-Position ein NFT statt eines fungiblen LP-Tokens.

Neuerungen

Die neueste CLMM-Version bringt drei Erweiterungen zusätzlich zum Uniswap-v3-ähnlichen Kern. Sie sind optional bei der Pool-Erstellung und rückwärts kompatibel mit bestehenden Pools und Positionen:
  • Limit Orders. LPs können jetzt eine Single-Tick-Order zu einem bestimmten Preis platzieren und den Swap-Pfad FIFO ausfüllen lassen, wenn der Swap diesen Tick kreuzt. Orders werden zum Limit-Preis in die ATA des Besitzers abgerechnet; ein Off-Chain-Keeper (limit_order_admin) kann gefüllte Orders ohne den Online-Status des Besitzers ausfegen. Siehe Instructions → OpenLimitOrder / SettleLimitOrder und Math → Limit-Order-Matching während Swap.
  • Single-Sided Fee (CollectFeeOn). Pools können so konfiguriert werden, dass Swap-Gebühren von der Input-Seite (Legacy-Verhalten, Modus 0), immer von token_0 (1) oder immer von token_1 (2) genommen werden. Nützlich, wenn eine Seite des Paares der kanonische Accounting-Token ist (z. B. USDC). Siehe Fees → Single-Sided Fee.
  • Dynamische Gebühr. Pools können sich für eine volatilitätsverfolgbare Gebührenzuschlag anmelden, die mit schneller Tick-Bewegung steigt und über die Zeit abfällt. Kalibriert durch eine Pro-Tier DynamicFeeConfig und eine Pro-Pool DynamicFeeInfo. Siehe Fees → Dynamic Fee und Math → Dynamic Fee Derivation.
Eine neue Instruction, CreateCustomizablePool, macht alle drei Optionen bei der Pool-Erstellung verfügbar. Das klassische CreatePool funktioniert weiterhin für Standard-Gebühren-Pools ohne Limit Orders oder dynamische Gebühren.

Was CLMM Ihnen bietet

  • Kapitaleffizienz. Ein Stablecoin-Stablecoin-LP, der Liquidität in einer ±0,1%-Band um Parität konzentriert, kann 100×+ die Gebühren pro Dollar TVL im Vergleich zu einem CPMM-Pool desselben Paares verdienen.
  • Gebührenabrechnung auf Positions-Ebene. Gebühren fallen pro Position an, nicht pro LP-Mint. Zwei Positionen auf demselben Pool verdienen unterschiedliche Gebührenbeträge basierend auf ihren Bereichen und dem Weg, den der Preis genommen hat.
  • Mehrere Gebühren-Tier pro Paar. Ein Paar kann mehrere CLMM-Pools haben, jeder an eine andere AmmConfig mit seiner eigenen Trade-Fee-Rate und Tick-Spacing gebunden. Die Web-UI und Router zeigen den Tier mit der meisten Liquidität zum aktuellen Preis an.
  • Direkt auf dem Pool anreizbar. Bis zu drei Reward-Token-Streams können an einen Pool angehängt werden; Positionen sammeln Rewards pro-rata basierend auf Sekunden × In-Range-Liquidität, die sie beitragen. Siehe products/clmm/fees.
  • NFT-Positionen. Jede Position ist ein Non-Fungible Token mit Mint gleich einer deterministischen PDA. Die Übertragung des NFT überträgt die Position; Wallets und UIs können Positionen genauso anzeigen wie Sammelstücke.
  • Token-2022-Unterstützung auf beiden Seiten des Paares mit denselben Erweiterungsbeschränkungen wie CPMM.

Was CLMM nicht ist

  • Nicht einmal einstellen und vergessen. Ein Bereich, der gesetzt wird, während SOL bei $160 ist, verdient nichts, wenn SOL auf $80 fällt, es sei denn, Sie passen aktiv an. CLMM belohnt aktive LPs; passive LPs sollten bei CPMM bleiben.
  • Nicht kostenfrei zu öffnen. Jedes neue Tick-Array, das die Position kreuzt, muss initialisiert werden, was Miete kostet. Breite Bereiche sind billiger; enge nicht.
  • Nicht ein CLOB. Im Gegensatz zu AMM v4 hat CLMM keine OpenBook-Abhängigkeit. Alle Liquidität sitzt auf der Tick-Map.
  • Nicht eine Obermenge von CPMM. Eine CLMM-Position, die [tick_min, tick_max] bei maximaler Reichweite überspannt, verhält sich ähnlich wie CPMM, aber mit unterschiedlichen Gas-Kosten, einem anderen Gebühren-Abrechnungsmodell und keinem fungiblen LP-Token. Wenn Sie einen einfachen fungiblen-LP-Pool wünschen, verwenden Sie CPMM.

Wie CLMM sich von CPMM und AMM v4 unterscheidet

DimensionAMM v4CPMMCLMM
KurveKonstantes ProduktKonstantes ProduktKonzentriert (Tick-basiert)
LP-AnteilFungibles LP-MintFungibles LP-MintPro-Position NFT
Liquidität sitzt…Über alle PreiseÜber alle PreiseIn einem benutzerwählten Bereich
Gebühren-TierFest 0,25%Pro AmmConfig (z. B. 0,25%, 1%)Pro AmmConfig × Tick-Spacing
Aktives ManagementNicht zutreffendNicht zutreffendErforderlich
Gebühren-AbrechnungPool-EbenePool-EbenePro-Position
Reward FarmsSeparates Farm-ProgrammSeparates Farm-ProgrammEingebaut (bis zu 3 Rewards)
Token-2022NeinJaJa
On-Chain OracleNeinobservation Ringobservation Array pro Pool

Mentales Modell

Stellen Sie sich einen CLMM-Pool als drei überlagerte Datenstrukturen vor:
  1. Eine kontinuierliche Kurve im sqrt_price-Raum. Der Preis des Pools wird als sqrt_price_x64 dargestellt, eine Q64.64-Festkommazahl. Swaps gehen entlang dieser Kurve; innerhalb einer Tick-Grenze ist die Mathematik Standard-Konzentrierte-Liquidität-AMM-Mathematik (siehe algorithms/clmm-math).
  2. Eine diskrete Tick-Map. Preise werden in Ticks quantisiert — ganzzahlige Potenzen von 1.0001. Jeder Tick hat einen bekannten sqrt_price. Positionen referenzieren ihre Endpunkte als ganzzahlige Tick-Indizes. Tick-Indizes werden in fester Größe Tick-Arrays zur Speicherung gruppiert.
  3. Pro-Position Gebühren- und Reward-Buchhaltung. Jede Position speichert das globale fee_growth_inside zum Zeitpunkt ihrer letzten Aktualisierung. Wenn der LP die Position berührt (öffnen, schließen, anpassen, sammeln), subtrahiert das Programm den gespeicherten Wert vom aktuellen globalen, um zu berechnen, was geschuldet wird. Dies ist das Uniswap-v3 feeGrowthInside0X128 / feeGrowthInside1X128-Muster.
Jede Benutzeraktion zerlegt sich in Zustandsübergänge auf diesen drei Strukturen:
  • Position öffnen: Tick-Bereich wählen, Tokens einzahlen, NFT prägen, Liquidität in der Tick-Map innerhalb des Bereichs einfügen, alle zuvor leeren Tick-Arrays initialisieren.
  • Liquidität erhöhen / verringern: den auf dem NFT-zugehörigen Positions-Konto gespeicherten Betrag und in der Tick-Map anpassen; akkumulierte Gebühren zur gleichen Zeit sammeln.
  • Swap: vom aktuellen sqrt_price_x64 in Handelsrichtung gehen, aktive Liquidität verbrauchen, bis die Eingabe erschöpft ist oder der nächste initialisierte Tick erreicht wird; den Tick kreuzen und Liquidität auf der neuen Seite aufnehmen oder ablegen.
  • Gebühren / Rewards sammeln: fee_growth_inside_now − fee_growth_inside_last × position_liquidity für jede Seite und jeden Reward-Stream berechnen; transferieren.
Der Pool ist ansonsten indifferent, welche Positionen offen sind. Zwei LPs im selben Bereich sehen den gleichen Gebühren-Wachstumspfad, skaliert nach ihren individuellen liquidity-Beträgen.

Wann Sie CLMM wählen sollten

Wählen Sie CLMM, wenn:
  • Sie Liquidität zu einem stabilen oder mittel-reversierenden Paar bereitstellen (USDC/USDT, jitoSOL/SOL, wBTC/BTC) und sich in der Nähe der Parität konzentrieren möchten.
  • Sie ein Market Maker sind, der bereit ist, Preis zu überwachen und neu auszugleichen.
  • Sie speziell Pro-Pool-Anreiz-Emissionen benötigen, ohne einen separaten Farm einzurichten.
  • Sie Pro-Position-Abrechnung für Ihr eigenes LP-Produkt (Vault, strukturiertes Produkt usw.) benötigen.
Bevorzugen Sie CPMM, wenn:
  • Sie einen neuen Token mit unbekannter Preisfindung starten.
  • Sie einen einzelnen fungiblen LP-Token möchten, den Sie staken, sperren oder komponieren können.
  • Sie eine passive LP-Erfahrung möchten.
Bevorzugen Sie AMM v4, wenn:
  • Sie speziell die Hybrid-CLOB-Tiefe benötigen, die AMM v4 auf OpenBook bietet.
  • Sie bestehende AMM-v4-Integrationen migrieren und keine neuen Positionen öffnen.

Positionen sind NFTs

Eine CLMM-Position wird On-Chain durch zwei Konten dargestellt:
  • Ein Positions-NFT-Mint mit Angebot 1.
  • Ein Personal-Positions-Status-Konto, das zum NFT-Mint gesteigert wird und die Ticks, Liquidität und zuletzt beobachtete Gebühren-Wachstumswerte der Position hält.
Die Übertragung des NFT überträgt die Position — die Personal-Positions-Konto-Autorität ist der NFT-Besitzer. Dies ist das gleiche Muster, das Uniswap v3 Pionierarbeit geleistet hat, implementiert in Solanas Konto-Modell. Eine detaillierte Behandlung ist in products/clmm/ticks-and-positions.
Ältere CLMM-Releases erstellten auch ein ProtocolPositionState-Konto pro (pool, tick_lower, tick_upper), um Liquidität für diesen Bereich zu aggregieren. Neuere Releases erstellen oder verwenden es nicht mehr — das Feld erscheint immer noch auf OpenPosition / IncreaseLiquidity / DecreaseLiquidity-Kontolisten als UncheckedAccount für ABI-Kompatibilität, aber das Programm liest oder schreibt es nicht. Aggregate Bereichs-Buchhaltung lebt auf den Tick-Endpunkten (liquidity_gross, liquidity_net) direkt.

Wo es weitergeht

  • Accounts — Pool-, Config-, Tick-Array- und Positions-Konto-Layouts.
  • Ticks und Positionen — die Tick-Map, Tick-Spacing, Tick-Array-Sizing, NFT-basierte Positionen.
  • Mathsqrt_price_x64, Swap-Schritt-durch, fee_growth_inside-Herleitung.
  • InstructionsOpenPosition, IncreaseLiquidity, Swap, CollectRewards, die Limit-Order-Familie und CreateCustomizablePool.
  • Gebühren und Rewards — das Pro-Position-Gebührenmodell, Single-Sided-Fee-Modi, dynamische Gebühr und die drei Reward-Slots.
  • Code-Demos — open / adjust / swap / collect / limit-order / customizable-pool Durchgänge in TypeScript.
Quellen: