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 →
Die Invariante
Der Pool erhältcoin_reserve × pc_reserve = k, wobei:
- Die Reserven enthalten auf OpenBook eingegangene Beträge. Die Limitorder des AMM bleiben Teil seiner Liquidität – sie gehen nicht an das Orderbuch „verloren”, sondern sind dort nur hinterlegt. Die Berechnung von
knur aus den On-Chain-Vault-Saldos unterschätzt die tatsächlichen Reserven. - Der PnL-Rückgang (
need_take_pnl_*) wird subtrahiert, damit die Kurve erhalten bleibt, wenn der Admin Gebühren einzieht. Das gleiche Prinzip wie dieprotocol_fees_*-Ausnahme bei CPMM.
Swap*-Vorgang sichert k' ≥ k ab, nachdem der Gebührenanteil des LP wieder zu den Reserven hinzugefügt wurde.
Gebührenkonvention
AMM v4 verwendet Verhältnisgebühren (Zähler/Nenner-Paare) statt der1/1_000_000-Konvention von CPMM/CLMM. Die On-Chain-Fees-Struktur (siehe Fees::initialize im Programmquellcode) hat folgende Standardwerte:
- Gesamte Swap-Gebühr:
swap_fee = amount_in × 25 / 10_000 = 0,25%des Brutto-Eingabebetrags. - Protokollanteil:
pnl_numerator / pnl_denominator = 12 / 100 = 12%der Swap-Gebühr, was0,25% × 12% = 0,03%des Volumens entspricht. Dieser Anteil sammelt sich in den PnL-Zählern an und wird durchWithdrawPnlentnommen. - LP-Anteil: Die verbleibenden
88%der Swap-Gebühr, was0,25% × 88% = 0,22%des Volumens entspricht. Bleiben im Pool und erhöhenk. - Kein Fondsanteil. AMM v4 hat keine Fondsgebühren-Aufteilung wie CPMM/CLMM.
pnl_numerator / pnl_denominator ein Bruchteil der Gebühr ist, nicht des Handelsvolumens – eine häufige Fehlinterpretation dieser Feldnamen.
trade_fee_numerator / trade_fee_denominator (auch 25 / 10_000) ist ein separates Feld, das von der OpenBook-Integration beim Berechnen von gebühreninklusiven Preisen für das Gitter von Limitorder des AMM verwendet wird. Es entspricht standardmäßig swap_fee, wird aber über einen anderen Code-Pfad ausgelesen.
Abweichungen von diesen Standardwerten sind selten, es gibt aber einige auf älteren Pools. Lesen Sie die Gebühren immer aus AmmInfo.fees aus, bevor Sie Preise angeben.
Direkter Swap (AMM-Pfad)
Der einfachste Fall: Der Benutzer tauscht gegen die Vault des Pools aus, ohne mit OpenBook zu interagieren. Die internen Reserven des Pools (einschließlich On-Book-Zuordnungen) sind der Nenner. SwapBaseIn (genaue Eingabe):coin_vault_balance + coin_posted_on_openbook + ... (der Vault des AMM plus die Token, die in OpenBook-Orders gesperrt waren). Seit der OpenBook-Deaktivierung ist der On-Book-Saldo null, daher entsprechen die effektiven Reserven den reinen Vault-Bilanzen. Der MonitorStep/Implicit-Settle-Pfad, der früher die OpenBook-Seite aktualisierte, wird in der Praxis nicht mehr benötigt.
SwapBaseOut (genaue Ausgabe):
Orderbook-Interaktion (historisch)
Nicht mehr aktiv. Die in diesem Abschnitt beschriebene Gitterkonstruktion zeigt, wie AMM v4 ursprünglich die Kurve auf einem OpenBook-Markt abbildete. Die OpenBook-Integration wurde deaktiviert; Pools veröffentlichen oder verwalten keine Order mehr auf OpenBook. Die Mathematik unten wird zu Dokumentationszwecken beibehalten – sie erklärt, wofür die On-Chain-Konten
target_orders/amm_open_orders dimensioniert wurden und warum das Programm weiterhin MonitorStep-bezogene Parameter validiert, obwohl der Keeper sie nicht mehr ausführt.AmmInfo-Parametern berechnet:
depth– Anzahl der Preisstufen pro Seite.amount_wave– Basiseinheit der Größe pro Stufe.min_size,coin_lot_size,pc_lot_size– OpenBook-Marktbeschränkungen.state_data.swap_acc_coin_fee,swap_acc_pc_fee– kumulative Gebührenzähler seit letztemTakePnl.
target_orders bestimmt, die in build_orders berechnet und bei jedem MonitorStep mit amm_open_orders verglichen werden. Jede Abweichung führt zu Annullierungen und neuen Orders. Neu gefüllte Order auf OpenBook werden bei der nächsten Operation, die die OpenBook-Seite aktualisiert, in die Pool-Vault abgerechnet.
Integratoren müssen das Gitter selten selbst berechnen – der Raydium-Keeper verwaltet es – aber es ist nützlich zu wissen, dass:
- Ein Pool mit erheblicher On-Book-Liquidität diese Liquidität zu
kbeiträgt, nicht untätig ruht. - Ein veralteter OpenBook-Markt (Event-Queue voll, Cranks blockiert) verhindert Gitter-Updates; der AMM kann dann Preise angeboten, die vom sichtbaren Orderbook abweichen, bis zum nächsten Crank.
Abrechnung (PnL)
Der 0,03%-Protokollanteil sammelt sich instate_data.need_take_pnl_coin und state_data.need_take_pnl_pc an. TakePnl verschiebt diese Beträge aus den Vault zum Admin-angegebenen Ziel und setzt die Zähler zurück.
Entscheidende Eigenschaft: Reserven in der Invariante werden immer minus aufgelaufenem PnL berechnet, daher beweget TakePnl die Kurve nicht. Dies entspricht der CPMM-Konvention.
Praktisches Beispiel
Pool-Zustand:coin_reserve = 1_000_000_000_000(1.000.000 Coin-Seite; 6 Dezimalstellen)pc_reserve = 2_000_000_000_000(2.000.000 PC-Seite; 6 Dezimalstellen)- Gebühren: Standard
swap = 25/10_000,pnl = 3/10_000.
SwapBaseIn mit genaue Eingabe 1_000_000_000 Coin (1.000 Coin).
2_200_000) wird nirgendwo separat ausgebrochen – er ist einfach der Rest, der k' erhöht.
Präzisionsregeln
- Reserve-Multiplikationen verwenden
u128; endgültige Divisionen runden gegen null. swap_feerundet auf (damit der Pool nicht untergebührt).amount_infürSwapBaseOutrundet auf (damit der Benutzer nicht unterbezahlt).- Pools mit extremen Reserveverhältnissen können
ZeroTradingTokensbei sehr kleinen Eingaben treffen; gleiches Verfahren wie CPMM.
Einschränkungen im Vergleich zu CPMM
- Die Reserven von AMM v4 enthalten den OpenBook-hinterlegten Anteil, daher kann ein Integrator nicht korrekt nur aus
getTokenAccountBalancezitieren. Holen Sie sich immer den vollständigen Zustand (Vault +open_orders.free+open_orders.locked), oder verwenden Sie das SDK/API-Angebot. - AMM v4 stellt keine strukturierte On-Chain-TWAP zur Verfügung. Externe Verbraucher, die einen AMM-v4-gestützten Preis benötigen, müssen ihn selbst aus Handelsprotokollen berechnen.
- Token-2022 wird nicht unterstützt.
Nächste Schritte
products/amm-v4/instructions– woSwapBaseIn,Depositusw. einbinden.products/amm-v4/fees– vollständige Gebührenmechanik,TakePnl-Details.algorithms/constant-product– die gemeinsame Ableitung.
- Raydium-AMM-Programmquelle –
raydium-io/raydium-amm - Raydium SDK v2
Liquidity-Modul


