Ratio Finance
  • 👋Welcome to Ratio Finance!
  • Providing Liquidity
    • 💰Creating LP Tokens
  • Our Platform
    • 🔌Connecting Your Wallet
    • 🔎Explore the Vaults
    • 🥷Insta-Swap
    • 💸Deposit LP
    • 🧙‍♂️Mint USDr
    • 🗝️Pay Back USDr
    • ✅Withdraw LP
    • 🦾Technical Architecture
    • 🥩RATIO Staking
  • Liquidation Engine
    • Dynamic Risk Management
    • Mechanics
    • Example
    • Technical Details
    • Liquidation Parameters
  • Our Business
    • 🪙Business Model
      • Stability Fees
    • 📊RATIO Tokenomics
      • 🎆$RATIO Token
      • 💲USDr Stablecoin
    • 📈How does Ratio's Collateralization work?
    • 🏦Governance
  • For Developers
    • Grant Program
    • Instaswap-SDK
      • Instaswap-core
      • Instaswap-hook
    • Vault-SDK
Powered by GitBook
On this page
  1. For Developers

Vault-SDK

SDK for developers who wants to integrate ratio vaults into their app.

PreviousInstaswap-hook

Last updated 2 years ago

You can find a brief tutorial example here =>

1. Install vault-sdk

yarn add @ratio-finance/vault-sdk

2. Get RatioLendingProgram instance and Initialize

import { RatioLendingProgram } from "@ratio-finance/vault-sdk";
const lendingProgram = RatioLendingProgram.getInstance(conn);
await lendingProgram.init();

3. Deposit LP

const raydiumUsdtUsdcKey = "As3EGgLtUVpdNpE6WCKauyNRrCCwcQ57trWQ3wyRXDa6";
const depositTx = await lendingProgram.depositLP(
  USER_KEYPAIR.publicKey,  // UserPublicKey : PublicKey
  raydiumUsdtUsdcKey,      // CollateralMint: PublicKey
  0.1                      // DepositAmount: number (must be uiAmount)
);
const depositTxHash = await sendAndConfirmTransaction(
  conn,
  depositTx,
  [USER_KEYPAIR]
);
console.log(`deposit is done successfully. txHash = ${depositTxHash}`);

4. Other Transactions

  • Withdraw (Withdraw deposited collateral)

let withdrawTx = await lendingProgram.withdrawLP(
  USER_KEYPAIR.publicKey,    // UserPublicKey : PublicKey
  raydiumUsdtUsdcKey,        // CollateralMint : PublicKey
  0.05                       // WithdrawAmount : Number (uiAmount)
);
  • Harvest (Harvest Yield Farming rewards)

let harvestTx = await lendingProgram.harvest(
  USER_KEYPAIR.publicKey,    // UserPublicKey : PublicKey
  raydiumUsdtUsdcKey         // CollateralMint: PublicKey
);
  • Mint (Borrow USDr against deposited collateral.)

let mintTx = await lendingProgram.mintUSDr(
  USER_KEYPAIR.publicKey,     // UserPublicKey : PublicKey
  raydiumUsdtUsdcKey,         // CollateralMint: PublicKey
  0.05                        // MintAmount: Number (uiAmount)
);
  • Repay (Repay USDr)

let repayTx = await lendingProgram.repayUSDr(
  USER_KEYPAIR.publicKey,     // UserPublicKey : PublicKey
  raydiumUsdtUsdcKey,         // CollateralMint: PublicKey
  0.04                        // RepayAmount: Number (uiAmount)
);

5. Get Yield Farming Reward (Get pending reward from Yield Farming)

const rewardAmount = await lendingProgram.getYieldFarmingReward(
  USER_KEYPAIR.publicKey,
  raydiumUsdtUsdcKey
);

6. Get RATIO Apr Reward (If the pool has RATIO emission, user will get RATIO reward)

const ratioRewardAmount = await lendingProgram.getRatioRewards(
  USER_KEYPAIR.publicKey,
  raydiumUsdtUsdcKey
);
vault-sdk-example