@blend-capital/blend-sdk

中文文档
4.0.0发布于 2026/10/27MITTypeScriptESM + CJS近 30 天下载 1.4万

Javascript SDK for the Blend Protocol

原始使用文档
文档目录4 节
  1. Getting Started
  2. Usage
  3. Supply an Asset to a Pool
  4. Read ledger data for a Pool and a User

blend-sdk-js

Blend Protocol SDK for Javascript to assist in interacting with the Blend Protocol.

Getting Started

  1. Install it using npm:
npm install @blend-capital/blend-sdk

Usage

Each Blend Protocol contract exports a contract class for interacting with the contract. Some contracts, like the Pool, include additional classes to help read ledger state.

NOTE: There is an outstanding issue passing XDR objects between packages. See the following issue for more details: https://github.com/stellar/js-stellar-base/issues/617

Both the blend-utils and blend-ui repositories make extensive use of this SDK for reference.

Supply an Asset to a Pool

The contract class creates an operation as a base64 XDR string that can be used with the @stellar/stellar-sdk TransactionBuilder class. When interacting with Soroban contracts, the invoker must populate the SorobanData portion of the transaction. The @stellar/stellar-sdk provides an easy way to do this by simulating the transaction against an RPC. For more details about how to submit a Soroban operation to the Stellar network, please see: https://developers.stellar.org/docs/build/guides/transactions/invoke-contract-tx-sdk

import { PoolContract, RequestType } from '@blend-capital/blend-sdk';
import { xdr } from '@stellar/stellar-sdk';

const asset: Address = // C... the Address of the asset to lend
const user: Address = // G... some Address
const to_lend: bigint = // ... the amount to lend as a bigint fixed point number with the tokens decimals 

const pool_contract = new PoolContract(poolId);
const supply_op = xdr.Operation.fromXdr(
    pool_contract.submit({
        from: user,
        spender: user,
        to: user,
        requests: [
            {
                amount: to_lend,
                request_type: RequestType.SupplyCollateral,
                address: asset,
            },
        ],
    }),
    'base64'
);

// build a transaction with the operation and submit it to the network

To submit other actions against the pool, you can modify the Requests array to contain the actions to take against the pool for from, spender, and to.

Read ledger data for a Pool and a User

Helper classes are included to help read ledger data for a pool from an RPC efficiently. The following code reads the ledger data for the pool, it's reserves, and the state of it's backstop.

import {
  Backstop,
  BackstopPool,
  BackstopPoolEst,
  BackstopPoolUser,
  BackstopPoolUserEst,
  Network,
  Pool,
  PoolEstimate,
  PoolOracle,
  PositionsEstimate,
} from '@blend-capital/blend-sdk';

const network: Network = {
  rpc: // rpc URL,
  passphrase: // Stellar network passphrase,
  // optional, allows you to connect to a local RPC instance
  opts: { allowHttp: true },
};

const backstop_id = // C... the address of the backstop contract
const pool_id = // C... the address of the pool contract
const user_id = // G... the address of a user that has taken a position in the pool

// Load the pool data from the ledger to check things like supported reserves, current interest rates
// and other pool specific information like emissions.
const pool = await Pool.load(network, pool_id);

// If price is needed, load the pool's oracle.
const pool_oracle = await pool.loadOracle();

// Additional estimates aggregate information using oracle prices. For example,
// the PoolEstimate class calculates things like total value supplied and borrowed.
const pool_est = PoolEstimate.build(pool.reserves, pool_oracle);

// The pool also allows you to directly load a user's position and emissions information.
const pool_user = await pool.loadUser(user_id);

// Additional estimates for their positions calculate things like borrow limit, net apr, ect.
const user_est = PositionsEstimate.build(pool, pool_oracle, pool_user.positions);

// Load the backstop data from the ledger to check things like the status of the backstop token and the
// configuration of the backstop
const backstop = await Backstop.load(network, backstop_id);

// Load a pool's backstop data to get information like backstop size, Q4W percentage, and more.
const backstop_pool = await BackstopPool.load(network, backstop_id, pool_id);

// Additional estimates calculate the total number of BLND/USDC tokens the backstop holds.
const backstop_pool_est = BackstopPoolEst.build(backstop.backstopToken, backstop_pool.poolBalance);

// Load a user's position in a pool's backstop
const backstop_pool_user = await BackstopPoolUser.load(network, backstop_id, pool_id, user_id);

// Additional estimates calcualte total number of BLND/USDC tokens the user holds the status
// of any queued withdrawals, and the unclaimed emissions.
const backstop_pool_user_est = BackstopPoolUserEst.build(backstop, backstop_pool, backstop_pool_user);

版本与发布记录

@blend-capital/blend-sdk 共发布 54 个版本,首次发布于 2023/10/25;过去 12 个月发布了 4 个版本。

版本发布日期距今
4.0.0latest2026/10/2712 天前
3.3.12026/09/161 个月前
3.3.02026/06/194 个月前
3.2.22025/12/3010 个月前
3.2.12025/08/291.2 年前
3.2.02025/08/271.2 年前

其他发布通道:beta → 3.2.0-beta.3。

关于 @blend-capital/blend-sdk 的常见问题

@blend-capital/blend-sdk 是什么?

Javascript SDK for the Blend Protocol

如何安装 @blend-capital/blend-sdk?

在项目目录运行 npm install @blend-capital/blend-sdk,或使用 pnpm add / yarn add / bun add。

@blend-capital/blend-sdk 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@blend-capital/blend-sdk 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@blend-capital/blend-sdk 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.12.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@blend-capital/blend-sdk 可以商用吗?

@blend-capital/blend-sdk 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@blend-capital/blend-sdk 的下载量有多少?

根据 npm 官方下载统计,@blend-capital/blend-sdk 在 2026/10/09 – 2026/11/07 这 30 天内被下载 14,318 次,日均约 477 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@blend-capital/blend-sdk 还在维护吗?

最新版本 4.0.0 发布于 2026/10/27(12 天前);至今共发布 54 个版本,其中过去 12 个月发布了 4 个;首次发布于 2023/10/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。