이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
버전 정보. 모든 데모는 Solana mainnet-beta에 대해
@raydium-io/raydium-sdk-v2@0.2.42-alpha를 대상으로 하며 2026년 4월에 검증되었습니다. SDK는 팜의 프로그램 오너를 기반으로 내부적으로 v3 / v5 / v6을 디스패치합니다. 아래 예제는 v6 팜을 가정합니다. 세 프로그램 ID는 reference/program-addresses를 참조하세요.설정
여기의 데모는raydium-sdk-V2-demo/src/farm의 파일을 미러합니다. 부트스트랩은 데모 리포지토리의 config.ts.template을 따릅니다.
ID로 팜 조회
getFarmById는 FarmState를 오프체인에서 가져오고 프로그램 버전에 따라 디코딩하며, 고정 소수점 방출률을 일반적인 초당 Decimal로 정규화합니다.
LP 토큰 스테이킹
소스:src/farm/stake.ts
청구만 (수확)
소스:src/farm/harvest.ts
harvestAllRewards는 리스트를 받습니다. 포트폴리오 보기를 표시하는 UI의 경우 호출을 배치하세요. 각 팜은 한 거래 내 별도의 명령으로 청구되며, 1232바이트 크기 제한의 영향을 받습니다. 약 6개 이상의 팜의 경우 여러 거래로 분할하세요.
v6의 단일 팜의 경우 명시적 Harvest 경로를 사용할 수 있습니다.
amount: 0 관례가 필요합니다. SDK는 이를 올바르게 디스패치합니다.
언스테이킹
소스:src/farm/unstake.ts
v6 팜 생성
소스:src/farm/createAmmFarm.ts와 editAmmFarm.ts
perSecond는 초당 정수 방출률입니다. SDK는 전송 전 이를 Q64.64로 패킹합니다. 분할 요금의 경우 스케일링하고 기간을 조정하세요.- 전체 예산(
perSecond × duration)은 보상 ATA에 있어야 합니다.create는 이를 보상 금고로 원자적으로 이동합니다. - 한
create호출에서 최대 5개의 보상을 시딩할 수 있습니다. 계정 리스트는 추가 스트림당(reward_mint, reward_vault, sender_ata, token_program)만큼 증가합니다. 1232바이트 거래 크기 제한을 염두에 두세요. 4개 이상의 보상의 경우 1~2개로 생성한 후 후속 거래에서AddReward를 사용하세요.
기존 보상 스트림 충전
setRewards는 end_time을 연장하고 델타 예산을 이전합니다. 명령은 스트림을 단축할 수 없고, 활성 스트림에서 per_second를 낮출 수 없으며, 보상 민트를 변경할 수 없습니다. 민트를 교환하려면 end_time을 기다린 후 해제된 슬롯에서 AddReward를 사용하거나(있는 경우) 새 팜을 생성하세요.
종료된 스트림 재시작
reward_state == 2 (종료)일 때만 유효합니다. 호출자는 슬롯의 reward_sender (v6) 또는 팜 오너(v5)여야 합니다.
Rust CPI
AMM v4와 달리 v6 팜 프로그램은 프론트엔드 및 SDK 소스와 함께 게시된 Anchor 크레이트(raydium_farm_v6)와 함께 제공됩니다. 최소 Deposit 스케치:
remaining_accounts 슬라이스는 팜의 활성 보상 슬롯 1대1로 일치해야 합니다 (인덱스 순서로 reward_vault_i, user_reward_ata_i의 쌍). 이를 생략하거나 잘못된 순서로 배치하면 조용한 오계산이 발생합니다. 프로그램은 잘못된 금액을 이전합니다.
주의사항
- 언스테이킹 전에 청구하는 것을 잊는 경우. 무해합니다.
Withdraw는 대기 중인 보상을 먼저 정산합니다. 하지만 UI에서 “청구”를 “언스테이킹”과 별도로 표시하면 사용자는Withdraw후에도 여전히 청구할 것이 있다고 생각할 수 있습니다. 없습니다. 그 시점까지 누적된 모든 것이 지급되었습니다. - 방출 중
total_staked = 0. 아무것도 스테이킹되지 않은 상태에서 누적된 방출은 몰수됩니다 (reward_per_share업데이트 공식은 0으로 나누고 프로그램은 업데이트를 건너뜁니다). 예정된open_time이 있는 프로그램의 경우 이를 피하려면 open_time에 “시드 스테이크”를 실행하세요. - Token-2022 전송 수수료. Token-2022 보상 민트가 있는 v6 팜의 경우 전송 수수료가 방출 시 적용됩니다 (금고 → 사용자). APR 견적에 이를 고려하세요.
- v5의 작은
per_second. v5의u64요금은 모든per_second < 1토큰 단위/초 (9개 이상의 소수점 자리가 있는 민트의 경우 이는 종종 원하는 요금입니다)를 표현할 수 없음을 의미합니다. 스트림 요금은 0으로 반올림되고 팜은 아무것도 방출하지 않습니다. v6을 사용하세요.
다음 단계
products/farm-staking/instructions— 기본 명령 참조.products/clmm/fees— CLMM의 기본 보상 스트림과 비교.user-flows/migrate-amm-v4-to-cpmm— 종종 새로운 CPMM 팜 시작과 짝을 이룹니다.
- Raydium SDK v2
- Farm v6 IDL은
raydium-io/raydium-sdk-V2의src/raydium/farm/에 번들로 제공됩니다.

