2.2.1 • Published 2 years ago

yield-sdk v2.2.1

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

yield-sdk

Find the best DeFi yields, in one package.

This package aims to let you easily load all the DeFi lending and borrowing rates, as well as deposit / withdraw tokens to achieve those yields. All in one SDK.

Installation

npm i yield-sdk

Roadmap

  • Support fetching DeFi rates on Solana.
  • - Support for depositing and withdrawing tokens on Solana.
  • Support for fetching DeFi rates on Ethereum, Avalanche, etc.
  • Support for depositing and withdrawing tokens on other chains.

Supported Protocols

This library currently focuses on Solana, with other chains to come.

All data is fetched directly from the Solana blockchain, using the native protocol SDK when available. This project does not use screen-scraping or 3rd party APIs. To prevent rate-limiting, this project attempts to use the officially supported RPCs for each project.

❤️ Inspired by defi-yield-ts

Usage

Fetching all rates

import { fetchAll } from "yield-sdk"

const rates = await fetchAll()

Fetching specific rates

import { fetch } from "yield-sdk"

const apricot = await fetch("apricot")
const francium = await fetch("francium")
const jet = await fetch("jet")
const jetv2 = await fetch("jetv2")
const larix = await fetch("larix")
const mango = await fetch("mango")
const port = await fetch("port")
const solend = await fetch("solend")
const solendStable = await fetch("solend-stable")
const solendTurbo = await fetch("solend-turbo")
const tulip = await fetch("tulip")
const zeroOne = await fetch("01")

Sample Result

  {
    "protocol": "jet",
    "rates": [
      {
        "symbol": "USDC",
        "token": {
          // spl token registry info (address, decimals, etc)...
        },
        "deposit": "0.010327865708725278",
        "borrow": "0.02847159339558806"
      },
      {
        "symbol": "SOL",
        "token": {
          // spl token registry info (address, decimals, etc)...
        },
        "deposit": "0.008159138920000716",
        "borrow": "0.025612643359401145"
      },
      {
        "symbol": "BTC",
        "token": {
          // spl token registry info (address, decimals, etc)...
        },
        "deposit": "0.00017070024848790064",
        "borrow": "0.0066587630608482525"
      },
      {
        "symbol": "soETH",
        "token": {
          // spl token registry info (address, decimals, etc)...
        },
        "deposit": "0.0023310256428142506",
        "borrow": "0.015033198753934605"
      }
    ]
  }

Depositing

import { deposit } from "yield-sdk"

const depositAmount = new TokenAmount("100", "USDC")
const depositTx = await deposit("francium", depositAmount, publicKey, connection)

// Use traditional wallet methods to send the transaction:
await sendTransaction(connection, depositTx)

Brought to you by M2 Labs

This project is maintained and funded by M2 Labs, a Web3 product development studio.