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

# 2026-06-22 — Stable AMM: tote OpenBook-Code (Markt) entfernen

> Stable AMM entfernt seine inaktiven OpenBook-Marktmacher-Konten und Code: kleinere Swap/Deposit/Withdraw-Layouts, eine Breaking-Change bei WithdrawPnl und eine vereinfachte Pool-Asset-Formel.

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

  [Englische Version ansehen →](/reference/changelog/2026-06-22-stable-amm-openbook-cleanup)
</Info>

Stable AMM ist ein **unabhängiges Programm** (mit eigener Program ID — es wird nicht über das AMM v4-Programm gehandelt). Es **hat schon lange keine Orders mehr auf OpenBook gepostet**; der OpenBook-Marktmacher-Pfad ist seit Jahren inaktiv. Dieses Upgrade ist die Bereinigung: Es **entfernt die nun-toten marktbezogenen Konten und Code** aus den Instruction-Layouts. Es **ändert nicht** das aktuelle Trading-Verhalten — es gab keine OpenBook-Orders mehr zu stoppen.

## TL;DR für Integratoren

* **Swap / Deposit / Withdraw funktionieren weiterhin ohne Änderungen.** Transaktionen, die mit den alten Account-Layouts erstellt wurden, werden weiterhin ausgeführt — die entfernten Serum/Markt-Konten werden einfach ignoriert. Sie **müssen** keinen Client-Update ausliefern, um bestehende Flows am Laufen zu halten.
* **Sie sollten aber bald zu den neuen, kleineren Layouts migrieren.** Die neuen Layouts entfernen die toten Markt-Konten und reduzieren die Transaktionsgröße: `SwapBaseIn` / `SwapBaseOut` gehen von **18 → 9** Konten, `Deposit` **14 → 12**, `Withdraw` **21 (+1 optional) → 12**. Der Kompatibilitätspfad wird in einer zukünftigen Version entfernt.
* **`WithdrawPnl` ist eine Breaking-Change (nur Admin).** Es geht auf **16 (+1 optional) → 10** Konten mit **keinem Kompatibilitäts-Parsing**. Das Senden des alten Layouts schlägt mit Validierungsfehlern wie `InvalidTokenCoin` fehl, da die Konten nicht ausgerichtet sind (altes #3 war `open_orders`). Jedes Admin-Tool, das `WithdrawPnl` aufruft, muss aktualisiert werden.
* **Referral-Gebühr auf `Withdraw` und `WithdrawPnl` entfernt.** Das optionale `referrer_pc_wallet`-Konto kann für Rückwärtskompatibilität auf dem alten Layout von `Withdraw` noch übergeben werden, hat aber keine Auswirkung mehr.
* **Pool-Asset-Buchhaltung vereinfacht.** Gesamte Pool-Assets sind jetzt `Vault-Guthaben − ausstehender PnL`; der OpenBook-Open-Order-Term — in der Praxis bereits null — wird aus der Formel entfernt. Indexer und Quoting-Code, die noch einen OpenOrders-Term hinzugefügt haben, sollten ihn entfernen.
* **Die meisten Instructions sind jetzt entfernt.** Nur `SwapBaseIn`, `SwapBaseOut`, `Deposit`, `Withdraw` und `WithdrawPnl` bleiben aufrufbar. `Initialize`, `PreInitialize`, `InitModelData`, `UpdateModelData`, `MonitorStep`, `SetParams`, `WithdrawSrm` und `SimulateInfo` sind nicht mehr aufrufbar.

## Warum das wichtig ist (für Trader, LPs und Integratoren)

* **Trader** sehen keine Änderung im Swap-Verhalten oder der Preisform — die Lookup-Table-Kurve ist unverändert. Neue-Layout-Swaps sind billiger zu landen, da die Transaktion neun weniger Konten trägt.
* **LPs** behalten die gleiche Deposit/Withdraw-Ökonomie. Liquidität hat lange vollständig in den Pool-Vaults gesessen, daher ist der Pool-Wert vollständig im Pool; dieses Upgrade löscht nur die veraltete Markt-Infrastruktur.
* **Integratoren** erhalten kleinere, einfachere Transaktionen und ein Quoting-Modell mit einem weniger (bereits vestigial) Term. Bestehende Integrationen brechen nicht (außer Admin `WithdrawPnl`), aber der Kompatibilitäts-Shim ist temporär — migrieren Sie in Ihrem Tempo, bevor er entfernt wird.

## Instruction-Level-Änderungen

### `SwapBaseIn` / `SwapBaseOut` — 18 → 9 Konten (altes Layout noch kompatibel)

Die neun OpenBook-Konten (`amm_open_orders`, `serum_program`, `serum_market`, `serum_bids`, `serum_asks`, `serum_event_queue`, `serum_coin_vault`, `serum_pc_vault`, `serum_vault_signer`) werden entfernt. **Kompatibilität**: Wenn die Instruction eine andere Anzahl von Konten als 9 erhält, wird sie mit dem alten 18-Konto-Layout geparst; die Serum-Konten müssen immer noch ihre Positionen einnehmen, aber ihr Inhalt wird nicht mehr validiert oder verwendet.

### `Deposit` — 14 → 12 Konten (altes Layout noch kompatibel)

`amm_open_orders` (altes #3) und `serum_market` (altes #9) werden entfernt. Wenn 14 Konten übergeben werden, wird das alte Layout für Kompatibilität geparst.

### `Withdraw` — 21 (+1 optional) → 12 Konten (altes Layout noch kompatibel)

Die neun Serum-Konten werden entfernt. Die alten 21- oder 22-Konto-Layouts werden noch akzeptiert, **aber die Referral-Gebühren-Logik für das 22. optionale `referrer_pc_wallet`-Konto wurde entfernt** — das Konto kann noch übergeben werden, hat aber keine Auswirkung mehr.

### `WithdrawPnl` — 16 (+1 optional) → 10 Konten (⚠️ kein Kompatibilitätspfad, Breaking-Change)

Festes 10-Konto-Layout, nur für Admin. Es gibt **kein** Kompatibilitäts-Parsing für das alte Layout; das Senden schlägt mit Fehlern wie `InvalidTokenCoin` fehl, da die Konten nicht ausgerichtet sind. **Logik-Änderung**: Wenn die verfügbaren Mittel des Pools nicht ausreichen, um den aufgelaufenen PnL abzuheben, wird der Pool nicht mehr in `CancelAllOrdersState` / `Disabled` versetzt; die Instruction gibt stattdessen direkt `TakePnlError` zurück. Das optionale `referrer_pc_wallet`-Konto wurde ebenfalls entfernt.

## Pool-Asset-Berechnungsänderung

Die Formel addierte historisch die Mittel, die der Pool als offene Orders in seinem OpenBook-OpenOrders-Konto hielt. Dieser Term ist in der Praxis null, seit der Pool keine Orders mehr postet; dieses Upgrade entfernt ihn vollständig aus der Formel und hinterlässt die Vault-Only-Berechnung:

|     | Formel                                                                                                        |
| --- | ------------------------------------------------------------------------------------------------------------- |
| Alt | `Vault-Guthaben + Open-Order-Mittel (native_coin_total / native_pc_total) − ausstehender PnL (need_take_pnl)` |
| Neu | `Vault-Guthaben − ausstehender PnL (need_take_pnl)`                                                           |

## Aktualisierte Seiten

* `products/stable/overview` — reines-AMM-Modell, OpenBook-Abhängigkeit entfernt, Vergleichs- und Konto-Zähltabellen aktualisiert.
* `products/stable/index` — „Was es ist" und Schlüsselfakten-Tabelle beanspruchen keine OpenBook-Abhängigkeit mehr.
* `products/stable/accounts` — OpenBook-Konten aus dem Inventar entfernt; `AmmInfo` Serum/Open-Orders-Felder als veraltet/ungenutzt markiert; Pool-Asset-Notiz hinzugefügt.
* `products/stable/instructions` — neue Swap / Deposit / Withdraw / WithdrawPnl-Konto-Tabellen mit Kompatibilitäts-Hinweisen; alle anderen Instructions (`Initialize`, `PreInitialize`, `InitModelData`, `UpdateModelData`, `MonitorStep`, `SetParams`, `WithdrawSrm`, `SimulateInfo`) als entfernt / nicht mehr aufrufbar markiert.
* `products/stable/math` — Pool-Asset-Formel-Update; `MonitorStep` / OpenBook-Abschnitt als lange in den Ruhestand versetzt umformuliert.
* `products/stable/fees` — Abschnitt „PnL aus OpenBook" in den Ruhestand versetzt; Sammelfluss setzt OpenBook-Fills nicht mehr ab.
* `products/stable/code-demos` — Konto-Zähl-Anleitung aktualisiert; SDK abstrahiert immer noch die Layout-Auswahl.

**Verifiziert gegen**:

* `raydium-stable` Programm-Quelle (Post-Upgrade `instruction.rs` / `processor.rs`).
* On-Chain Stable AMM-Programm-Deployment auf Solana mainnet-beta.
