# @mercurial-finance/farming-sdk

Latest version **1.0.18** (published 2025-06-07) · ISC license · 0 weekly downloads

## Install

```sh
npm install @mercurial-finance/farming-sdk
pnpm add @mercurial-finance/farming-sdk
yarn add @mercurial-finance/farming-sdk
bun add @mercurial-finance/farming-sdk
```

## Health

**Score 40/100 (D)** — status: maintenance-mode.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.18 |
| Published | 2025-06-07 |
| First published | 2023-07-31 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 6 |
| Unpacked size | 341.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | McSam |
| Maintainers | siong, zhengyutay, dicksonp, mcsam94, dongnguyen91861, raccoons-bot, thimerosa |

## Links

- npm: https://www.npmjs.com/package/@mercurial-finance/farming-sdk
- npm.io page: https://npm.io/package/@mercurial-finance/farming-sdk

## Dependencies (6)

- [node-fetch](https://npm.io/package/node-fetch.md) ^2.6.12
- [buffer-layout](https://npm.io/package/buffer-layout.md) ^1.2.2
- [@solana/web3.js](https://npm.io/package/@solana/web3.js.md) ~1.78.3
- [@coral-xyz/anchor](https://npm.io/package/@coral-xyz/anchor.md) 0.28.0
- [@solana/spl-token](https://npm.io/package/@solana/spl-token.md) ^0.1.8
- [@solana/spl-token-registry](https://npm.io/package/@solana/spl-token-registry.md) ^0.2.4574

## Recent versions

- 1.0.18 (latest) — 2025-06-07
- 1.0.18-rc.0 (next) — 2025-06-06
- 1.0.17 — 2024-04-02
- 1.0.16 — 2023-12-22
- 1.0.16-abc1234.4 — 2023-12-22
- 1.0.16-abc1234.3 — 2023-12-22
- 1.0.16-abc1234.2 — 2023-12-22
- 1.0.16-abc1234.1 — 2023-12-22
- 1.0.15 — 2023-12-21
- 1.0.16-abc1234.0 — 2023-12-21
- 1.0.15-abc1234.3 — 2023-12-21
- 1.0.15-abc1234.2 — 2023-12-21
- 1.0.15-abc1234.1 — 2023-12-21
- 1.0.15-abc1234.0 — 2023-12-20
- 1.0.14 — 2023-12-07
- … 20 more at https://npm.io/package/@mercurial-finance/farming-sdk/versions

## README

# Meteora Pool Farm SDK

<p align="center">
<img align="center" src="https://app.meteora.ag/icons/logo.svg" width="180" height="180" />
</p>
<br>

## Getting started

NPM: https://www.npmjs.com/package/@mercurial-finance/farming-sdk

SDK: https://github.com/MeteoraAg/reward-pool

<!-- Docs: https://docs.meteora.ag/mercurial-dynamic-yield-infra/ -->

Discord: https://discord.com/channels/841152225564950528/864859354335412224

<hr>

## Install

1. Install deps

```
npm i @mercurial-finance/farming-sdk @coral-xyz/anchor @solana/web3.js @solana/spl-token @solana/spl-token-registry
```

2. Initialize PoolFarmImpl instance

```ts
import { PoolFarmImpl } from "@mercurial-finance/farming-sdk";
import { Wallet, AnchorProvider } from "@coral-xyz/anchor";
import { Connection, PublicKey, Keypair } from "@solana/web3.js";

// Connection, Wallet, and AnchorProvider to interact with the network
const mainnetConnection = new Connection("https://api.mainnet-beta.solana.com");
const mockWallet = new Wallet(new Keypair());
const provider = new AnchorProvider(mainnetConnection, mockWallet, {
  commitment: "confirmed",
});
// Alternatively, to use Solana Wallet Adapter

const USDC_acUSDC_POOL = new PublicKey(
  "6ZLKLjMd2KzH7PPHCXUPgbMAtdTT37VgTtdeXWLoJppr"
); // Pool Address can get from https://docs.meteora.ag/dynamic-pools-integration/dynamic-pool-api/pool-info

const farmingPools = await PoolFarmImpl.getFarmAddressesByPoolAddress(
  USDC_acUSDC_POOL
);
// farmingPools is an array (A pool can have multiple farms)
const farmingPool = farmingPools[0];
const farm = await PoolFarmImpl.create(
  mainnetConnection,
  farmingPool.farmAddress
);
```

3. To interact with the PoolFarmImpl

- Stake

```ts
// https://station.jup.ag/blog/jupiter-token-list-api#endpoints
const tokenList = await fetch('https://token.jup.ag/all').then(res => res.json());
const USDC = tokenList.find(token => token.address === <USDC_ADDRESS>);
const USDT = tokenList.find(token => token.address === <USDT_ADDRESS>);
// Get pool lp balance from `@mercurial-finance/dynamic-amm-sdk` package
const pool = await AmmImpl.create(connection, MAINNET_POOL.USDC_USDT, USDC, USDT);
const lpBalance = await pool.getUserBalance(mockWallet.publicKey);

const stakeTx = await farm.deposit(mockWallet.publicKey, lpBalance); // Web3 Transaction Object
const stakeResult = await provider.sendAndConfirm(stakeTx); // Transaction hash
```

- Check staked balance

```ts
const farmBalance = await farm.getUserBalance(mockWallet.publicKey);
```

- Claim

```ts
const claimTx = await farm.claim(mockWallet.publicKey); // Web3 Transaction Object
const claimResult = await provider.sendAndConfirm(claimTx); // Transaction hash
```

- Unstake

```ts
const unStakeTx = await farm.withdraw(mockWallet.publicKey, farmBalance); // Web3 Transaction Object
const unstakeResult = await provider.sendAndConfirm(depositTx); // Transaction hash
```

---
_Source: https://npm.io/package/@mercurial-finance/farming-sdk · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
