@sperax/tool-listadao
v0.2.1
Published
Liquid staking, CDP borrowing, and yield farming on Lista DAO (BNB Chain) — an agent tool for SperaxOS.
Maintainers
Readme
@sperax/tool-listadao
Liquid staking, CDP borrowing, and yield farming on Lista DAO (BNB Chain)
Lista DAO is an agent tool from SperaxOS, packaged headless so you can call
it from any agent framework. It ships two things: the manifest — a JSON-Schema function
definition a model can call — and the executor that runs the call against the real API.
There is no UI layer and no framework lock-in. It works anywhere TypeScript runs.
Install
npm install @sperax/tool-listadaoUsage
Call it directly
import { listaDaoExecutor } from '@sperax/tool-listadao';
const result = await listaDaoExecutor.invoke('getProtocolStats', {}, {
messageId: 'msg-1',
});
console.log(result.content); // prose summary written for the model to read
console.log(result.state); // typed data payload for your own UIGive it to a model
import Anthropic from '@anthropic-ai/sdk';
import { ListaDaoManifest, listaDaoExecutor } from '@sperax/tool-listadao';
const client = new Anthropic();
const response = await client.messages.create({
model: 'claude-opus-4-8',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Ask something this tool can answer' }],
tools: ListaDaoManifest.api.map((api) => ({
name: api.name,
description: api.description,
input_schema: api.parameters,
})),
});
for (const block of response.content) {
if (block.type !== 'tool_use') continue;
const result = await listaDaoExecutor.invoke(block.name, block.input, { messageId: response.id });
console.log(result.content);
}ListaDaoManifest.api is already in JSON-Schema form, so it maps onto any tool-calling API —
Anthropic, OpenAI, the Vercel AI SDK, or an MCP server — without translation.
Every executor returns a BuiltinToolResult — { success, content, state }. content is
prose written for the model to read; state is the typed data payload for your own code.
Executors never throw: a failed call comes back as { success: false, content: '<reason>' },
so a network blip degrades the answer instead of crashing the agent loop.
Configuration
None. This tool calls a public API directly and needs no key or origin configuration.
Tool identifier
sperax-listadao
API reference
getProtocolStats
Get overall Lista DAO protocol statistics: total TVL, slisBNB supply & exchange rate, lisUSD supply & peg, active CDP count, staking APR.
Takes no parameters.
getStakingInfo
Get detailed BNB liquid staking information: APR, slisBNB/BNB exchange rate, total BNB staked, validator count, cooldown period, and minimum stake amount.
Takes no parameters.
stakeBnb
Stake BNB to receive slisBNB liquid staking token. Returns an unsigned transaction for the user to sign in their wallet. ONLY call after the user has explicitly confirmed the stake amount.
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| amount | string | yes | Amount of BNB to stake (e.g. "1.5"). |
| walletAddress | string | yes | User wallet address (0x...). |
unstakeBnb
Unstake slisBNB to redeem BNB. Subject to a cooldown period. Returns an unsigned transaction. ONLY call after the user has explicitly confirmed.
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| amount | string | yes | Amount of slisBNB to unstake (e.g. "1.0"). |
| walletAddress | string | yes | User wallet address (0x...). |
getCdpInfo
Get CDP (Collateralized Debt Position) information: available collateral types, collateralization ratios, stability fees, debt ceilings, and liquidation parameters.
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| collateralToken | string | no | Optional: filter by collateral token symbol (e.g. "BNB", "slisBNB", "ETH"). |
borrowLisUsd
Borrow lisUSD stablecoin by depositing collateral into a CDP. Returns unsigned transactions for approval (if needed) and the borrow operation. ONLY call after full user confirmation.
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| borrowAmount | string | yes | Amount of lisUSD to borrow (e.g. "500"). |
| collateralAmount | string | yes | Amount of collateral to deposit (e.g. "2.0" BNB). |
| collateralToken | string | yes | Collateral token to use (e.g. "BNB", "slisBNB"). |
| walletAddress | string | yes | User wallet address (0x...). |
repayLisUsd
Repay lisUSD debt in a CDP to improve collateralization ratio or close the position. Use "max" for full repayment. ONLY call after user confirmation.
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| collateralToken | string | yes | Collateral token of the CDP to repay (e.g. "BNB", "slisBNB"). |
| repayAmount | string | yes | Amount of lisUSD to repay, or "max" for full repayment. |
| walletAddress | string | yes | User wallet address (0x...). |
getFarms
Browse Lista DAO yield farming pools. Filter by staked token or minimum APR. Returns pool details including base APR, boost APR, TVL, and reward token.
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| minApr | number | no | Minimum APR filter as a percentage (e.g. 5.0 = pools with 5%+ APR). |
| stakedToken | string | no | Filter by staked token symbol (e.g. "lisUSD", "slisBNB", "LISTA"). |
getUserPositions
Get the user's complete Lista DAO position: slisBNB staking balance, CDP positions with health status, farm positions with pending rewards, and total portfolio value.
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| walletAddress | string | yes | User wallet address (0x...). |
getSavingsInfo
Get lisUSD Saving Rate (LSR / Jar) information: total deposits, APR, exit delay, and optionally a specific user's position and earned rewards.
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| walletAddress | string | no | Optional: user wallet address to include personal savings position. |
depositSavings
Deposit lisUSD into the Saving Rate (Jar) to earn yield. Returns unsigned transactions for approval and deposit. ONLY call after user confirmation.
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| amount | string | yes | Amount of lisUSD to deposit (e.g. "1000"). |
| walletAddress | string | yes | User wallet address (0x...). |
withdrawSavings
Withdraw lisUSD from the Saving Rate (Jar). Subject to an exit delay period. Returns an unsigned transaction. ONLY call after user confirmation.
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| amount | string | yes | Amount of lisUSD to withdraw (e.g. "500"). |
| walletAddress | string | yes | User wallet address (0x...). |
getPsmInfo
Get Peg Stability Module (PSM) information: supported stablecoin, swap fees, daily limits, and remaining capacity. The PSM allows near-1:1 swaps between lisUSD and USDT/USDC.
Takes no parameters.
Types
Shared types come from @sperax/agent-tools-core:
BuiltinToolManifest, BuiltinToolResult, BuiltinToolContext, and the BaseExecutor
class every tool executor extends.
Related
@sperax/agent-tools-core— the tool contract- All SperaxOS agent tools — tool-listadao is one of many
- SperaxOS — the agent workspace these tools were built for
License
Apache-2.0
