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 →
Was ein Farm ist
Ein Farm ist ein eigenständiges On-Chain-Programm, das ein oder mehrere Reward-Mints an Konten verteilt, die einen Staking-Mint staken. Der Staking-Mint ist in der Regel ein LP-Token, der von CPMM, AMM v4 oder einem Legacy-Pair-Pool ausgegeben wird. Single-Asset-Farms (direktes Staking von SOL, RAY oder einem Projekttoken) werden jedoch unterstützt und für einige lang laufende Programme verwendet. Wichtige Eigenschaften:- Emissions-basiert, nicht gebührenbasiert. Anders als die eingebauten Reward-Streams von CLMM sind Farm-Rewards nicht an Swap-Volumen oder Pool-Aktivität gebunden. Das Budget eines Farms wird von vorne herein vom Ersteller eingezahlt und sendet konstant mit einer festen Sekunden-Rate aus, bis es aufgebraucht ist.
- Unabhängig vom Pool. Der Pool weiß nicht, dass der Farm existiert. Das Verschieben von LP zwischen Wallets benachrichtigt den Farm nicht; ein Benutzer muss zunächst aktiv vom Farm ausführen
Withdraw. Ebenso führtWithdrawaus dem Pool nicht zu einem Withdraw aus dem Farm. - Pro-Benutzer, Pro-Reward-Ledger. Jeder Staker hat ein
UserStake(oder „Ledger”)-Konto pro Farm, das seinen gestakten Betrag und seinen Snapshot des Reward-Pro-Anteil-Zählers für jeden der Farm-Reward-Streams verfolgt. - Multi-Reward. Farm v5 unterstützt bis zu 2 Rewards; v6 unterstützt bis zu 5. Jeder Reward hat seinen eigenen Tresor, seine eigene Pro-Sekunden-Rate, Start- und Endzeit.
Die drei Live-Versionen
Raydium hat drei Farm-Programmversionen bereitgestellt. Alle sind live und jede hat ihr eigenes PDA-Schema und Anweisungssatz. Integratoren sollten sie als drei unterschiedliche Programme behandeln, die ein konzeptionelles Modell teilen.| Version | Programm-ID-Speicherort | Max. Rewards | Bemerkenswerte Unterschiede |
|---|---|---|---|
| v3 | siehe reference/program-addresses | 1 | Frühestes Schema. Älteste Farms (RAY-USDC, SOL-USDC) führen noch über diesen Weg. |
| v5 | siehe reference/program-addresses | 2 | Zweiter Reward-Slot hinzugefügt und AddReward-artige Aufstockungen. |
| v6 | siehe reference/program-addresses | 5 | Aktuelle Version. Erweiterte Slots, verbesserte Admin-Verwaltung, unterstützt CLMM-Position-Farming über einen v6-spezifischen Adapter (in der Praxis selten). |
raydium.farm als eine einzige Schnittstelle bereit — die Version wird vom Owner des Farm-Kontos hergeleitet. Beim Aufbau von On-Chain-Integrationen müssen Sie manuell dispatchen.
Reward-Pro-Anteil-Buchhaltung
Das Farm-Programm verwendet das Standard-„Master-Chef”-Muster, das in DeFi-Yield-Contracts verbreitet ist:reward_per_sharewird im Farm-Konto als Fixed-Point-Zähler gespeichert (Q64.64 in v5+, Q56.8 in v3). Es wächst nur.user.reward_debtist der Snapshot vonreward_per_sharebei der letzten Interaktion des Benutzers. Es ist keine Schuld, die der Benutzer schuldet; es ist ein Offset zur Berechnung zukünftiger Ansammlungen.- Bei
DepositundWithdrawgleicht der Farm zunächst ausstehende Rewards aus (indem eruser.pending_rewardgutschreibt oder direkt an die ATA des Benutzers sendet, je nach Version), aktualisiert dannuser.reward_debtzum aktuellen Zähler. - Bei
Harvestzahlt der Farmpending_rewardaus und erstellt einen Snapshot vonreward_debterneut.
Deposit, Withdraw, Harvest, Admin-Update). Farms ohne Aktivität sammeln eine wachsende Lücke an, die bei der nächsten Interaktion geschlossen wird.
Staking-Mint vs. Reward-Mint
Der Staking-Mint wird treuhänderisch verwahrt, nicht verbrannt. Wenn ein Benutzer 100 LP stakt, verschiebt der Farm 100 LP von der ATA des Benutzers in den Staking-Tresor des Farms. BeiWithdraw verschiebt der Farm 100 LP zurück. Der Farm ruft niemals den Pool auf.
Reward-Mints werden aus Tresoren ausgezahlt, die vom Ersteller vorab finanziert werden. Wenn ein Ersteller einen Farm einrichtet, zahlt er das vollständige Reward-Budget (z. B. 1.000.000 RAY + 500.000 USDC) auf die zwei Reward-Tresore ein. Das Farm-Programm prägt keine neuen Tokens; es verteilt einfach das, was sich im Tresor befindet, über die Dauer des Streams. Wenn der Tresor vor end_time geleert wird, stoppt die Emission.
Emissionszeitpläne
Jeder Reward-Stream hat drei Zeitparameter:start_time— der UNIX-Zeitstempel, ab dem die Emissionen beginnen. Davor erfolgt keine Ansammlung.end_time— der Zeitstempel, ab dem die Emissionen stoppen. Danach wächstreward_per_sharenicht mehr aus diesem Stream.per_second— die Emissionsrate währendstart_time ≤ now < end_time.
end_time nach vorne, füllen Sie den Tresor auf) über AddReward / SetRewards auf v5 / v6. Er kann nach end_time über RestartRewards neu gestartet werden. Er kann nicht ohne Admin-Zusammenarbeit verkürzt werden.
Was Farms nicht sind
- Kein Gebührenverteiler. CPMM und CLMM erfassen Handelsgebühren direkt im Pool-State. Farms berühren Pool-Gebühren nicht. Der einzige Weg von Pool-Gebühren zu einem Token-Inhaber ist LP-Rückzahlung oder CLMMs
CollectFee. - Nicht automatisch. LP muss explizit gestaket werden, um Farm-Rewards zu verdienen. LP-Inhaber, die ihre Token in ihrer Brieftasche belassen, verdienen nichts vom Farm.
- Nicht fungibel. Jedes
UserStake-Konto ist an ein(farm, user)-Paar gebunden. Sie können Ihren Stake nicht auf eine andere Brieftasche übertragen, ohne ihn vorher abzustaken. - Nicht direkt mit CLMM-Positionen kompatibel. Farm v6 führte einen CLMM-Adapter ein, aber in der Praxis verwenden CLMM-Pools ihre eigenen eingebauten Reward-Streams (siehe
products/clmm/fees) anstelle von Farm-Emissionen.
Wenn Farms das richtige Werkzeug sind
Verwenden Sie einen Farm, wenn Sie möchten:- LP für einen Ihrer CPMM- oder AMM-v4-Pools mit einem externen Token (Ihr Projekttoken, Token eines Partners usw.) anreizen.
- Ein Staking-Programm auf einem Single-Asset-Mint ausführen (klassisches „stake RAY, earn RAY”) ohne Ihren eigenen Contract bereitzustellen.
- Zusätzliche Rewards auf top eines bestehenden Pools layern, ohne dass Sie Admin-Zugriff auf diesen Pool benötigen.
Kapitelinhalte
accounts— vollständiges On-Chain-State-Layout pro Version.instructions— jede Farm-Anweisung mit ihrer Kontoliste und Pre- / Postconditions.code-demos— TypeScript-Beispiele für Staking, Harvesting und das Erstellen eines neuen Farms.
Wo Sie als Nächstes hingehen
products/clmm/fees— vergleichen Sie Farm-Emissionen mit CLMMs eingebautem Reward-Modell.reference/program-addresses— die drei Farm-Programm-IDs.protocol-overview/versions-and-migration— wann Sie jede Farm-Version verwenden.
- Farm v6 IDL im SDK enthalten:
raydium-io/raydium-sdk-V2untersrc/raydium/farm/. - Raydium SDK v2
Farm-Modul


