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 fundamentale Aufteilung: Programme vs. Konten
Programme
Ein Programm auf Solana ist ausführbarer Code — eine kompilierte Binärdatei, die aus einer Datei geladen, auf einemPubkey bereitgestellt und über Transaktionen aufgerufen wird. Programme haben keinen zugeordneten Zustand; sie enthalten nur Logik.
Raydiums Programme:
- CPMM:
CPMMoo8L3F4NbTegBCKVNunggL7H1Zpdmwpwh8KMoZ0F - CLMM:
CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK - AMM v4:
675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8
Konten
Ein Konto ist eine Datenzeile in der Blockchain. Jedes Konto hat:pubkey— seine Adresse.owner— das Programm, das es besitzt (steuert Schreibvorgänge).data— die Rohdaten.lamports— SOL-Guthaben (1 SOL = 1.000.000.000 Lamports).rent_epoch— Legacy-Rent-Abrechnungsfeld (seit Rent-Exemption obligatorisch ist, ignoriert).
Eigentümerschaft
Jedes Konto wird von genau einem Programm besessen. Nur der Code dieses Programms kann dasdata-Feld des Kontos ändern. Ein Benutzer kann lamports (SOL senden/empfangen) auf einem Konto ändern, das er signieren kann, aber um data zu ändern, muss das Besitzer-Programm dies in dessen Namen tun.
Beispiele:
- Ihre Benutzer-Wallet: besessen vom System-Programm. Lamports leben hier; Sie signieren, um zu übertragen.
- Ihr USDC-Token-Konto: besessen vom SPL-Token-Programm. Die
transfer-Anweisung des Token-Programms aktualisiert das Guthaben. - Ein Raydium-Pool-Zustandskonto: besessen vom CPMM-Programm. Nur CPMMs Anweisungen können die Reserven, Gebühren usw. ändern.
- Der
PersonalPositionStateeines Raydium-Position-NFT: besessen vom CLMM-Programm.
Rent und Rent-Exemption
Das Erstellen eines Kontos verbraucht Speicherplatz. Solana berechnet Miete für diesen Speicher, aber seit 2020 müssen alle neuen Konten rent-exempt sein — das heißt, sie halten genug Lamports, dass die Miete, die sie über 2 Jahre schulden würden, im Voraus bezahlt ist. In der Praxis:- Ein rent-exemples Konto lebt für immer.
- Das Schließen des Kontos gibt die Lamports an den Unterzeichner zurück.
Raydium-Rent-Kosten
| Konto | Größe | Rent |
|---|---|---|
| CPMM PoolState | ~1.440 B | ~0,011 SOL |
| CLMM PoolState | ~1.500 B | ~0,012 SOL |
| CLMM TickArray | ~9.000 B | ~0,063 SOL |
| CLMM PersonalPositionState | ~280 B | ~0,003 SOL |
| ATA | 165 B | ~0,002 SOL |
| Vault (Token-Konto) | 165 B | ~0,002 SOL |
Daten- vs. ausführbare Konten
Konten gibt es in zwei Varianten:Datenkonten
Speichern den Zustand (Pool-Reserven, Token-Guthaben, Nutzerpositionen).executable = false. Dies ist die überwiegende Mehrheit.
Ausführbare Konten
Speichern Programm-Bytecode.executable = true. Das sind Programme (CPMM, CLMM usw.). Programme haben über ihren Bytecode hinaus keine Daten.
Programmabgeleitete Konten (PDAs)
Ein PDA ist ein Datenkonto, dessen Adresse deterministisch von einem Programm und einigen Seeds abgeleitet wird — es existiert kein privater Schlüssel für diese Adresse. Nur das Ableitungsprogramm kann im Namen eines PDA überinvoke_signed signieren.
Raydium nutzt PDAs umfangreich:
- Pool-Zustand-PDAs: abgeleitet von
[poolTypeDiscriminator, mintA, mintB, ammConfig]. - Vault-PDAs: abgeleitet von
[pool, mint]. - Observation-Zustand-PDA: abgeleitet von
[observationSeed, pool].
solana-fundamentals/pdas-and-cpis.
Transaktionen und Kontobereferenzen
Jede Solana-Transaktion trägt eine explizite Liste von Konten, auf die sie lesen/schreiben wird. Die Runtime erzwingt:- Aufgelistete Konten können gelesen oder geschrieben werden (je nach ihrem
is_writable-Flag). - Nicht aufgelistete Konten können nicht berührt werden.
Kontogröße und Datenlayout
Jedes Raydium-Konto hat eine feste oder begrenzte Größe. Das Layout wird im Code definiert (Rust-Structs mit#[repr(C)]) und ist dokumentiert in sdk-api/anchor-idl.
Anchor-Programme stellen jedem Konto, das sie erstellen, einen 8-Byte-Diskriminator voran, abgeleitet von hash("account:<StructName>")[0..8]. Dies lässt Clients die Art eines Kontos bestimmen, indem sie nur die ersten 8 Bytes lesen — essentiell für getProgramAccounts-Scans, die alle Konten eines Typs aufzählen.
Einen Raydium-Pool-Zustand lesen
Über das SDK:src/raydium/cpmm/layout.ts in der SDK-Quelle.
Praktisches Beispiel: Lesen eines Token-Kontos
Lassen Sie uns das USDC-Guthaben eines Benutzers lesen.Warum das für Raydium wichtig ist
Das Account-Modell prägt Raydiums Design:- Pool-Zustand ist ein einzelnes Konto — alles über einen Pool (Mints, Reserven, Gebühren, Admin) lebt in einem Konto, das vom Pool-Programm besessen wird.
- LP-Token sind Standard-SPL-Token-Konten — Raydium delegiert Tokenisierung an das SPL-Token-Programm.
- Tick-Arrays sind gechunked — CLMM kann kein einzelnes wachsales Array von Ticks haben, da Konten feste zugeordnete Größe haben; stattdessen verwendet es gechunkee
TickArray-PDAs. - Positions-NFTs sind Metaplex-NFTs — CLMM-Positionen sind Standard-NFTs pro Metaplex; der Positions-Zustand ist ein separater PDA.
- „Wo sind die Pool-Reserven?” → zwei Vault-Konten (Token-Konten), die vom SPL-Token-Programm besessen werden, mit Autorität delegiert an einen PDA des Pool-Programms.
- „Wo sind die Tick-Daten für CLMM?” → eine Serie von TickArray-PDAs, jede mit 60 aufeinanderfolgenden Ticks.
- „Wo ist mein Farm-Einsatz?” → ein
UserLedger-PDA, abgeleitet von[user, farmId], besessen vom Farm-Programm.
Verweise
solana-fundamentals/programs-and-anchor— wie Programme Konten verarbeiten.solana-fundamentals/pdas-and-cpis— PDA-Ableitung und CPI.solana-fundamentals/transactions-and-fees— wie Konten in Transaktionen referenziert werden.sdk-api/anchor-idl— Kontolayouts für Raydiums Programme.
- Solana Account-Dokumentation.
- SPL-Token-Programm — wo Token-Konten leben.


