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 →
Raydium veröffentlicht kein offizielles Python SDK. Die Muster hier verbinden drei gepflegte Community-Bibliotheken:
solders (Rust-gebundene Solana-Primitive), solana-py (RPC-Client) und anchorpy (Anchor-style Instruction-Builder aus IDLs). Die Kombination deckt alles ab, was das TS SDK leistet; nur ist die Verarbeitung weniger poliert.Umgebung
anchorpy hinkt anchor-lang’s Version manchmal nach; verifizieren Sie vor dem Einchecken, dass die IDL eines vor kurzem bereitgestellten Raydium-Programms unter Ihrer gepinnten anchorpy-Version kompiliert.
Verbindung und Keypair
AsyncClient ist die async-Variante; der synchrone Client ist für schnelle Skripte verfügbar, aber async wird für alles bevorzugt, das mehrere Anfragen sendet.
Poolzustand auslesen
Die meisten Produktionsumgebungen lesen dekodierten Poolzustand von Raydiums REST-API (siehesdk-api/rest-api) statt On-Chain-Daten manuell zu dekodieren — es ist einfacher und die Latenz ist für die meisten Anwendungsfälle akzeptabel.
src/raydium/cpmm/layout.ts (TS-Quellcode); portieren Sie es nach Bedarf zu construct. anchorpy kann dies automatisch anhand der IDL durchführen — siehe unten.
Swap erstellen und senden
Verwenden Sie der Einfachheit halber Raydiums server-built-transaction-Endpunkt. Der Server gibt eine signaturreife Transaktion zurück; Sie müssen nur Ihre Signatur hinzufügen:Swap Client-seitig erstellen (via anchorpy)
Für geringere Latenz oder wenn Sie Raydiums API nicht erreichen können (sanktionierte Regionen, Offline-Setups):
anchorpy leitet sie nicht automatisch ab.
Typische Bot-Architektur
Eine häufige Python-Raydium-Bot-Struktur:- RPC-Anbieter. Public Mainnet RPCs drosseln aggressiv. Verwenden Sie einen dedizierten Anbieter (Helius, QuickNode, Triton) für hohen Datenverkehr.
- WebSocket für Poolzustand.
client.account_subscribe(pool_id)pusht Updates bei jeder Zustandsänderung. Viel enger als Polling. - Priority-Fee-Anbieter. Helius hat einen
getPriorityFeeEstimate-Endpunkt; Triton hat ihren eigenen. Bemessen Sie Ihre Gebühr anhand des 75. Perzentils der jüngsten Gebühren auf dem Zielprogramm. - Bundles für MEV-sensitive Trades. Routen Sie durch Jitos Block Engine, wenn Sie Sandwich-Risiko nicht tolerieren können. Python-Libs:
jito-sdk-python(Third-Party, Qualität variiert).
Farm-Zustand auslesen
.account["X"].decode(bytes) von anchorpy gibt ein natives Python-Objekt zurück, das der IDL-Struktur entspricht.
Fallstricke
1. Dezimalbehandlung
Pythons nativesfloat ist IEEE-754 Double; Beträge in 9-Dezimal-Mints (1 SOL = 1e9 Einheiten) bleiben genau, aber Verhältnisse und Produkte verlieren Präzision. Verwenden Sie int (solders gibt int für alle Mengenfelder zurück) und leiten durch decimal.Decimal für jede Preisarithmetik.
2. Slot-basiertes vs. zeitstempelbasiertes Denken
Einige Farm-Versionen verwenden Slot-Zähler; LaunchLab verwendet Zeitstempel.solana-py gibt slot in RPC-Antworten zurück, aber die Konvertierung Slot → Zeitstempel ist verlustbehaftet (variiert je nach Leader-Zeitplan). Wenn Sie Wanduhrzeit benötigen, rufen Sie get_block_time(slot) explizit auf.
3. Connection-Pool-Erschöpfung
AsyncClient öffnet standardmäßig pro Anfrage eine HTTP-Verbindung. Unter hoher Last wiederverwendet httpx.AsyncClient-Sitzungen und setzen Sie ein angemessenes limits=httpx.Limits(max_connections=100).
4. Transaktionsgrößenlimits
Python-erstellte Transaktionen sind nicht kleiner als TS-erstellte — das 1232-Byte-Limit gilt gleichermaßen. Verwenden Sie V0-Transaktionen (Address Lookup Tables) für alles, das über mehr als ~2 Pools routed.Verweise
sdk-api/rest-api— die oben verwendeten HTTP-Endpunkte.sdk-api/anchor-idl— wo Sie die IDL füranchorpyerhalten.integration-guides/routing-and-mev— Jito Bundle-Muster.


