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 →
Versionsbanner. Alle Beispiele zielen auf
@raydium-io/raydium-sdk-v2@0.2.42-alpha gegen Solana mainnet-beta, verifiziert 2026-04. Das SDK versendet intern v3 / v5 / v6 basierend auf dem Programmeigentümer der Farm; die Beispiele unten setzen eine v6-Farm voraus. Siehe reference/program-addresses für die drei Programm-IDs.Setup
Die Beispiele hier spiegeln Dateien inraydium-sdk-V2-demo/src/farm wider. Das Bootstrap folgt dem config.ts.template des Demo-Repos:
Farm nach ID abrufen
getFarmById ruft FarmState Off-Chain ab, dekodiert nach Programmversion und normalisiert die Fixed-Point-Emissionsrate in ein einfaches Decimal pro Sekunde.
LP-Token staken
Quelle:src/farm/stake.ts
Nur-Claim (Harvest)
Quelle:src/farm/harvest.ts
harvestAllRewards akzeptiert eine Liste — für UIs, die eine Portfolio-Ansicht zeigen, bündeln Sie den Aufruf. Jede Farm wird in einer separaten Instruction innerhalb einer Transaktion beansprucht (unterworfen der 1232-Byte-Größenlimit; für >~6 Farmen in mehrere Transaktionen aufteilen).
Für eine einzelne Farm auf v6 können Sie auch den expliziten Harvest-Pfad verwenden:
amount: 0-Idiom erforderlich; das SDK sendet es korrekt.
Unstake
Quelle:src/farm/unstake.ts
Erstellen einer v6-Farm
Quelle:src/farm/createAmmFarm.ts und editAmmFarm.ts
perSecondist die ganzzahlige Emissionsrate pro Sekunde. Das SDK packt sie in Q64.64 vor dem Versand. Für eine fraktionale Rate skalieren und passen Sie die Dauer an.- Das vollständige Budget (
perSecond × duration) muss in Ihrem Reward-ATA vorhanden sein —createverschiebt es atomar in den Reward-Vault. - Sie können bis zu 5 Rewards in einem
create-Aufruf seeden. Die Kontoliste wächst um(reward_mint, reward_vault, sender_ata, token_program)pro zusätzlichem Stream; achten Sie auf die 1232-Byte-Transaktionsgrößenlimit. Für 4+ Rewards erstellen mit 1–2 und verwenden SieAddRewardin nachfolgenden Transaktionen.
Auffüllen eines vorhandenen Reward-Streams
setRewards verlängert end_time und transferiert das Budget-Delta. Die Instruction kann einen Stream nicht verkürzen, kann per_second bei einem laufenden Stream nicht senken und kann das Reward-Mint nicht ändern. Zum Austausch von Mints warten Sie auf end_time und verwenden AddReward auf einem freien Slot (falls vorhanden), oder erstellen Sie eine neue Farm.
Neustart eines abgelaufenen Streams
reward_state == 2 (abgelaufen) ist. Der Aufrufer muss der reward_sender des Slots (v6) oder der Farm-Eigentümer (v5) sein.
Rust CPI
Im Gegensatz zu AMM v4 wird das v6-Farm-Programm mit einer Anchor-Crate (raydium_farm_v6) versendet, die zusammen mit den Frontend- und SDK-Quellen veröffentlicht wird. Ein minimales Deposit-Sketch:
remaining_accounts-Slice muss 1-zu-1 mit den aktiven Reward-Slots der Farm übereinstimmen (Paare von reward_vault_i, user_reward_ata_i in Indexreihenfolge). Das Auslassen oder Fehlordnen dieser führt zu einer stillen Fehlbuchung — das Programm wird den falschen Betrag transferieren.
Fallstricke
- Vergessen, vor dem Rückzug zu beanspruchen. Harmlos —
Withdrawregelt ausstehende Rewards zuerst ab. Wenn Ihre UI aber „Claim” getrennt von „Withdraw” zeigt, könnte der Benutzer denken, es gibt nach einemWithdrawnoch etwas zu beanspruchen. Das ist nicht der Fall; alles bis zu diesem Punkt akkumulierte wurde ausgezahlt. total_staked = 0während Emissionen. Während Emissionen, während nichts gestaked war, gehen verloren (diereward_per_share-Update-Formel dividiert durch 0 und das Programm springt das Update über). Für Programme mit geplanteropen_timeführen Sie einen „Seed-Stake” zur open_time aus, um dies zu vermeiden.- Token-2022-Transfergebühren. Bei v6-Farmen mit Token-2022-Reward-Mints gilt die Transfergebühr bei der Emission (Vault → Benutzer). Berücksichtigen Sie dies in APR-Angeboten.
- Kleiner
per_secondauf v5. v5’su64-Rate bedeutet, dass jederper_second < 1Token-Einheit pro Sekunde (bei Mints mit ≥9 Dezimalstellen ist dies oft die gewünschte Rate) nicht ausgedrückt werden kann — die Stream-Rate rundet auf 0 und die Farm gibt nichts aus. Verwenden Sie v6.
Nächste Schritte
products/farm-staking/instructions— zugrunde liegende Instruction-Referenz.products/clmm/fees— Vergleich zu CLMMs nativen Reward-Streams.user-flows/migrate-amm-v4-to-cpmm— oft kombiniert mit dem Aufspulen einer neuen CPMM-Farm.
- Raydium SDK v2
- Farm v6 IDL in
raydium-io/raydium-sdk-V2untersrc/raydium/farm/gebündelt.


