Your Lista Lending (Moolah) assistant on BSC and Ethereum. Choose a function below.
Skill Routing Boundary (Required)
Use this skill for report-style, read-only analysis.
Use lista for position report, market overview, vault yield scan, risk check, daily digest, and loop strategy.
Do not use lista for lending execution flows (deposit, withdraw, supply, borrow, repay) or operation target selection.
For lending-only actionable views (holdings, vaults, markets for follow-up operations), route to lista-lending.
For wallet connection/signing/session troubleshooting, route to lista-wallet-connect.
Conflict resolution for similar intents:
check my positions without operation intent: stay in lista and generate the standard report.
check my lending positions or show my vaults/markets with likely operation follow-up: route to lista-lending.
market rates or vault APY narrative overview: lista.
market list or vault list for selection/filtering/execution: lista-lending.
Data sources — silent fallback
Try each source in order. Move to the next silently on any error (connection error, tool not found, command not recognized). NEVER ask the user to install, configure, or set up anything.
Where <CHOICE> is one of: en, zh-CN, zh-TW, or the user's custom language name.
Change language
When the user says "change language" / "換語言" / "换语言", ask again and overwrite ~/.lista/language.txt.
Language handling rules:
en / English — use the English template exactly.
zh-CN / 简体中文 — use the 繁體中文 template, then convert all Traditional Chinese characters to Simplified Chinese. Do NOT alter numbers, symbols, separators, or field layout.
zh-TW / 繁體中文 — use the 繁體中文 template exactly.
Other — translate all label text into the user's language. Use natural, idiomatic phrasing (not word-for-word). Keep every separator line (━━━, ─────, - - - - -), number format, spacing, and indentation identical to the English template. Do NOT add bullet points, reformat rows, or change the structural layout.
Use the selected language for all output below.
FORMAT ENFORCEMENT — applies to every report below
You MUST follow these rules strictly for ALL output. No exceptions.
Plain text only. No markdown bold (**), italics (_), headers (#), or links. Output is intended for Telegram/Discord paste.
Copy template structure character-for-character. Every separator line (━━━, ─────, - - - - -), every field label, every indentation level must match the template exactly.
Do NOT rename, reorder, add, or omit fields unless the template explicitly says a section is conditional (e.g. "if risk alerts exist").
$ in templates = $ in output. Templates use fullwidth $ for escaping; replace with normal $ when generating.
Round all numbers to 2 decimal places. Token amounts (e.g. 4933.97 slisBNB), USD values (e.g. ~$3.19M), percentages (e.g. 71.2%), and health factor (e.g. 1.21) all display at most 2 decimal places. Do NOT output raw MCP precision (e.g. 4933.97414194585166222 is wrong; 4933.97 is correct).
Do NOT add commentary, disclaimers, or extra text outside the template structure. The report IS the output.
Data source label (<DATA_SOURCE>): Use Lista MCP if all data was fetched via lista_* MCP tools; use Lista API if all data was fetched via moolah.js or curl (both hit api.lista.org). If multiple sources were used, combine labels (e.g. Lista MCP + API).
Network label (<NETWORK>): Resolve from inferred chain:
No free summaries. Do NOT paraphrase, summarise, or add analyst commentary. The template output is the complete and only permitted response.
No preamble or trailing remarks. Do NOT write "Here is your report", "Sure", "Let me check", "Done", or any text before or after the report block.
Line-per-field layout is mandatory. Each data point appears on its own labeled line. Data groups are wrapped with - - - - - at start and end, separated by 2 blank lines. Do NOT use markdown tables (| col | col |), bullet points, or compress multiple fields onto one line.
No invented sections. Do NOT add overview blocks, summary paragraphs, or extra headings that are not present in the reference template. Every section heading and block in the output must correspond to a section in the template.
Step 1 — Report type
Ask the user (or infer from their request):
Which report would you like?
你需要哪種報告?
Position Report — collateral, debt, health factor, LTV, liquidation price
Loop Strategy — leverage loop simulation, net APY, liquidation risk
If the user's original message already implies a type (e.g. "check my positions" → 1, "USDT borrow rate" → 2, "vault APY" → 3, "am I safe" → 4, "daily report" → 5, "loop slisBNB" → 6), skip the question and proceed directly.
Step 2 — Wallet address (for types 1, 4, 5)
Reports 1, 4, 5 require a wallet address. Reports 2, 3, 6 do not — skip this step for them.
For report type 6 (Loop Strategy), ask the user for collateral asset, borrow asset, and initial amount if not already provided.
Load saved address
cat ~/.lista/wallet.txt 2>/dev/null
If the file exists and contains a valid address, use it. Inform the user:
EN: Using saved wallet: 0xAbCd...5678. Say "change address" to update.
中文: 使用已儲存的錢包:0xAbCd...5678。輸入「換個地址」可更新。
Ask if no saved address
EN: What is your wallet address? I will save it locally so you don't need to enter it again.
中文: 請問你的錢包地址是什麼?我會儲存到本地,下次不用再輸入。
Pass the resolved chain to all MCP tool calls in the selected report reference.
Step 3 — Dispatch
MANDATORY GATE — must complete before any data fetch or output:
Call the Read tool on every reference file listed in the table below for the selected report type.
Do NOT generate any output from memory or prior context. If you have not read the file in this session using the Read tool, read it now.
Follow the fallback chain in "Data sources" above. Move to the next source silently on any error. Never ask the user to configure a data source.
Report type
Read these files
1 — Position Report
references/domain.md, references/position.md
2 — Market Lending Rates
references/market.md
3 — Vault Yield
references/yield.md
4 — Risk Check
references/domain.md, references/risk.md
5 — Daily Digest
references/domain.md, references/digest.md
6 — Loop Strategy
references/domain.md, references/loop.md
Follow the instructions in the referenced files to fetch data, compute metrics, and generate the report using the selected language.
Step 4 — Pre-output self-check (MANDATORY)
Before writing the first character of report output, verify every item below. If any check fails, fix it first.
I called the Read tool on every reference file listed in Step 3 for this report type.
I fetched live data via at least one source (MCP, moolah.js, or curl).
I am using the correct language template (EN or 繁體中文 based on Step 0).
My first line of output is character-for-character identical to the first line of the reference template (e.g. Lista Lending — Position Report or Lista Lending — 持倉報告). If it is not, STOP and restart output.
Every data row uses the line-per-field format — no markdown tables (| col |), bullet points (•), or prose substitutions. Data groups are wrapped with - - - - -.
Every separator line (━━━, ─────, - - - - -) is copied character-for-character.
No field has been renamed, reordered, added, or omitted unless the template marks it conditional.
No overview block, summary paragraph, or section heading exists in my output that is not in the reference template.
No commentary, free summary, or disclaimer appears anywhere in the output.
<DATA_SOURCE> is replaced with the correct label (Lista MCP / Lista API / Lista MCP + API).
<NETWORK> is replaced with the correct network label for the inferred chain.
No markdown bold (**), italics (_), headers (#), or links appear anywhere in the output.
1---2name: lista3description: Lista Lending assistant — position report, market overview, yield scan, liquidation risk check, daily digest, and loop strategy on BSC and Ethereum4---56# Lista Lending78Your Lista Lending (Moolah) assistant on BSC and Ethereum. Choose a function below.910## Skill Routing Boundary (Required)1112Use this skill for report-style, read-only analysis.1314- Use `lista` for position report, market overview, vault yield scan, risk check, daily digest, and loop strategy.15- Do not use `lista` for lending execution flows (`deposit`, `withdraw`, `supply`, `borrow`, `repay`) or operation target selection.16- For lending-only actionable views (`holdings`, `vaults`, `markets` for follow-up operations), route to `lista-lending`.17- For wallet connection/signing/session troubleshooting, route to `lista-wallet-connect`.1819Conflict resolution for similar intents:2021- `check my positions` without operation intent: stay in `lista` and generate the standard report.22- `check my lending positions` or `show my vaults/markets` with likely operation follow-up: route to `lista-lending`.23- `market rates` or `vault APY` narrative overview: `lista`.24- `market list` or `vault list` for selection/filtering/execution: `lista-lending`.2526## Data sources — silent fallback2728Try each source in order. Move to the next silently on any error (connection error, tool not found, command not recognized). NEVER ask the user to install, configure, or set up anything.29301. MCP tools (preferred): `lista_get_position`, `lista_get_borrow_markets`, `lista_get_lending_vaults`, `lista_get_oracle_price`, `lista_get_staking_info`, `lista_get_dashboard`, `lista_get_rewards`312. moolah.js (Node.js, no install needed): `node skills/lista/scripts/moolah.js [--chain bsc|eth] <command>`323. REST API (curl): `curl -s "https://api.lista.org/api/moolah/<endpoint>"`3334Each reference file lists the exact fallback commands per data step.3536> Performance tip (optional): For the best experience, connect the Lista MCP server. This is NOT required — the skill works without it.37> - Claude Code: `claude mcp add lista --transport sse https://mcp.lista.org/mcp`38> - OpenClaw: `{ "mcpServers": { "lista": { "transport": "streamable-http", "url": "https://mcp.lista.org/mcp" } } }`39> - Other MCP clients: `{ "mcpServers": { "lista": { "url": "https://mcp.lista.org/mcp" } } }`4041---4243## Step 0 — Language4445### Load saved language4647```bash48cat ~/.lista/language.txt 2>/dev/null49```5051If the file exists and contains a valid choice (en, zh-CN, zh-TW, or a custom language name), use it silently — do NOT ask again.5253### Ask if no saved language5455Do NOT run any commands until the user has answered this question:5657> Which language should I use for the output?58> 請問輸出以哪種語言生成?59> 1) English60> 2) 简体中文61> 3) 繁體中文62> 4) Other (specify)6364Save the choice:6566```bash67mkdir -p ~/.lista && echo "<CHOICE>" > ~/.lista/language.txt68```6970Where `<CHOICE>` is one of: `en`, `zh-CN`, `zh-TW`, or the user's custom language name.7172### Change language7374When the user says "change language" / "換語言" / "换语言", ask again and overwrite `~/.lista/language.txt`.7576**Language handling rules:**77- **en / English** — use the English template exactly.78- **zh-CN / 简体中文** — use the 繁體中文 template, then convert all Traditional Chinese characters to Simplified Chinese. Do NOT alter numbers, symbols, separators, or field layout.79- **zh-TW / 繁體中文** — use the 繁體中文 template exactly.80- **Other** — translate all label text into the user's language. Use natural, idiomatic phrasing (not word-for-word). Keep every separator line (━━━, ─────, - - - - -), number format, spacing, and indentation identical to the English template. Do NOT add bullet points, reformat rows, or change the structural layout.8182Use the selected language for all output below.8384---8586## FORMAT ENFORCEMENT — applies to every report below8788**You MUST follow these rules strictly for ALL output. No exceptions.**89901. **Plain text only.** No markdown bold (`**`), italics (`_`), headers (`#`), or links. Output is intended for Telegram/Discord paste.912. **Copy template structure character-for-character.** Every separator line (━━━, ─────, - - - - -), every field label, every indentation level must match the template exactly.923. **Do NOT rename, reorder, add, or omit fields** unless the template explicitly says a section is conditional (e.g. "if risk alerts exist").934. **$ in templates = $ in output.** Templates use fullwidth $ for escaping; replace with normal $ when generating.945. **Round all numbers to 2 decimal places.** Token amounts (e.g. `4933.97 slisBNB`), USD values (e.g. `~$3.19M`), percentages (e.g. `71.2%`), and health factor (e.g. `1.21`) all display at most 2 decimal places. Do NOT output raw MCP precision (e.g. `4933.97414194585166222` is wrong; `4933.97` is correct).956. **Do NOT add commentary, disclaimers, or extra text** outside the template structure. The report IS the output.967. **Data source label (`<DATA_SOURCE>`):** Use `Lista MCP` if all data was fetched via `lista_*` MCP tools; use `Lista API` if all data was fetched via moolah.js or curl (both hit api.lista.org). If multiple sources were used, combine labels (e.g. `Lista MCP + API`).978. **Network label (`<NETWORK>`):** Resolve from inferred chain:98 - `"bsc"` → EN: `BSC Mainnet` / ZH: `BSC 主網`99 - `"ethereum"` → EN: `Ethereum Mainnet` / ZH: `ETH 主網`100 - `"bsc,ethereum"` → EN: `BSC + Ethereum` / ZH: `BSC + ETH`1019. **No free summaries.** Do NOT paraphrase, summarise, or add analyst commentary. The template output is the complete and only permitted response.10210. **No preamble or trailing remarks.** Do NOT write "Here is your report", "Sure", "Let me check", "Done", or any text before or after the report block.10311. **Line-per-field layout is mandatory.** Each data point appears on its own labeled line. Data groups are wrapped with `- - - - -` at start and end, separated by 2 blank lines. Do NOT use markdown tables (`| col | col |`), bullet points, or compress multiple fields onto one line.10412. **No invented sections.** Do NOT add overview blocks, summary paragraphs, or extra headings that are not present in the reference template. Every section heading and block in the output must correspond to a section in the template.105106---107108## Step 1 — Report type109110Ask the user (or infer from their request):111112> Which report would you like?113> 你需要哪種報告?114> 1) Position Report — collateral, debt, health factor, LTV, liquidation price115> 2) Market Lending Rates — Supply APY, Borrow APY, liquidity per market116> 3) Vault Yield — APY, TVL, underlying assets per vault117> 4) Risk Check — liquidation risk alerts with thresholds118> 5) Daily Digest — positions + yield + market snapshot119> 6) Loop Strategy — leverage loop simulation, net APY, liquidation risk120121If the user's original message already implies a type (e.g. "check my positions" → 1, "USDT borrow rate" → 2, "vault APY" → 3, "am I safe" → 4, "daily report" → 5, "loop slisBNB" → 6), skip the question and proceed directly.122123---124125## Step 2 — Wallet address (for types 1, 4, 5)126127Reports 1, 4, 5 require a wallet address. Reports 2, 3, 6 do not — skip this step for them.128129For report type 6 (Loop Strategy), ask the user for collateral asset, borrow asset, and initial amount if not already provided.130131### Load saved address132133```bash134cat ~/.lista/wallet.txt 2>/dev/null135```136137If the file exists and contains a valid address, use it. Inform the user:138139> **EN:** Using saved wallet: 0xAbCd...5678. Say "change address" to update.140> **中文:** 使用已儲存的錢包:0xAbCd...5678。輸入「換個地址」可更新。141142### Ask if no saved address143144> **EN:** What is your wallet address? I will save it locally so you don't need to enter it again.145> **中文:** 請問你的錢包地址是什麼?我會儲存到本地,下次不用再輸入。146147### Save address148149```bash150mkdir -p ~/.lista && echo "<ADDRESS>" > ~/.lista/wallet.txt151```152153### Change address154155When the user says "change address" / "换个地址" / "換個地址", ask for the new address and save it:156157```bash158echo "<NEW_ADDRESS>" > ~/.lista/wallet.txt159```160161### Multiple addresses162163The user may provide multiple addresses (comma/space/line separated). Save all to the file (one per line) and process each.164165---166167## Step 2.5 — Chain inference168169Resolve the active chain from the user's message before dispatching any report. Do NOT save this to disk — resolve fresh per request.170171| User says | Chain |172|---|---|173| "ethereum", "eth", "on ETH", "在以太坊", "ETH positions" | `"ethereum"` |174| "bsc", "bnb", "binance" | `"bsc"` |175| "both chains", "兩條鏈", "bsc and ethereum" | `"bsc,ethereum"` |176| No keyword / ambiguous | `"bsc"` (default) |177178Pass the resolved chain to all MCP tool calls in the selected report reference.179180---181182## Step 3 — Dispatch183184**MANDATORY GATE — must complete before any data fetch or output:**1851861. Call the Read tool on **every** reference file listed in the table below for the selected report type.1872. Do NOT generate any output from memory or prior context. If you have not read the file in this session using the Read tool, read it now.1883. Follow the fallback chain in "Data sources" above. Move to the next source silently on any error. Never ask the user to configure a data source.189190| Report type | Read these files |191|---|---|192| 1 — Position Report | `references/domain.md`, `references/position.md` |193| 2 — Market Lending Rates | `references/market.md` |194| 3 — Vault Yield | `references/yield.md` |195| 4 — Risk Check | `references/domain.md`, `references/risk.md` |196| 5 — Daily Digest | `references/domain.md`, `references/digest.md` |197| 6 — Loop Strategy | `references/domain.md`, `references/loop.md` |198199Follow the instructions in the referenced files to fetch data, compute metrics, and generate the report using the selected language.200201---202203## Step 4 — Pre-output self-check (MANDATORY)204205Before writing the first character of report output, verify every item below. If any check fails, fix it first.206207- [ ] I called the Read tool on every reference file listed in Step 3 for this report type.208- [ ] I fetched live data via at least one source (MCP, moolah.js, or curl).209- [ ] I am using the correct language template (EN or 繁體中文 based on Step 0).210- [ ] My first line of output is character-for-character identical to the first line of the reference template (e.g. `Lista Lending — Position Report` or `Lista Lending — 持倉報告`). If it is not, STOP and restart output.211- [ ] Every data row uses the line-per-field format — no markdown tables (`| col |`), bullet points (•), or prose substitutions. Data groups are wrapped with `- - - - -`.212- [ ] Every separator line (━━━, ─────, - - - - -) is copied character-for-character.213- [ ] No field has been renamed, reordered, added, or omitted unless the template marks it conditional.214- [ ] No overview block, summary paragraph, or section heading exists in my output that is not in the reference template.215- [ ] No commentary, free summary, or disclaimer appears anywhere in the output.216- [ ] `<DATA_SOURCE>` is replaced with the correct label (`Lista MCP` / `Lista API` / `Lista MCP + API`).217- [ ] `<NETWORK>` is replaced with the correct network label for the inferred chain.218- [ ] No markdown bold (`**`), italics (`_`), headers (`#`), or links appear anywhere in the output.
Run npx skillmds@latest add dvcrn/lista in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Lista Lending assistant — position report, market overview, yield scan, liquidation risk check, daily digest, and loop strategy on BSC and Ethereum It is listed under Docs & Writing on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: WARNING, Skill Scanner: PASS. Capability flags: executes scripts, makes network calls, reads secrets. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
dvcrn (@dvcrn) published this skill. Their other Agent Skills are listed on their SkillMD profile.