Grimoire Pendle

作者 franalgaba2cca3994a288無授權條款6 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫5 個月前更新

Fetches Pendle Hosted SDK metadata using the Grimoire venue CLI. Use when you need supported chains, aggregators, markets, assets, or market token details.

AI 產生的概覽

透過 Grimoire venue CLI 查詢 Pendle Hosted SDK 中繼資料,檢視鏈、聚合器、市場、資產與市場代幣資訊。

功能
此技能說明如何使用 Grimoire venue CLI 取得 Pendle 中繼資料,包括支援的鏈、聚合器、市場、資產與市場代幣詳細資料,並可輸出 JSON 或表格。它也描述 Pendle spell 的「市場優先」撰寫流程,涵蓋支援的操作、PT/YT/SY 代幣符號解析、滑價與 gas 上限等 spell 限制,以及用於路由比較的 quote_out 指標。此技能僅為說明文件,未附帶任何指令碼。
適用情境
當你需要 Pendle 的鏈、市場、資產或市場代幣資訊,或在撰寫與執行 Pendle spell 之前準備並預檢 Pendle 路由設定時使用。
執行需求
需要 Grimoire venue CLI(grimoire、npx @grimoirelabs/cli、儲存庫內 Bun 執行方式或 grimoire-pendle 二進位檔)以及連線至 Pendle API 的網路;doctor 預檢另需 RPC URL。API 基礎網址可透過參數或 PENDLE_API_BASE_URL 環境變數覆寫。未包含任何指令碼。

Grimoire Pendle Skill

Use this skill to inspect Pendle metadata and preflight Pendle routing configuration before running spells.

Preferred invocations:

  • grimoire venue pendle ...
  • npx -y @grimoirelabs/cli venue pendle ... (no-install)
  • bun run packages/cli/src/index.ts venue pendle ... (repo-local)
  • grimoire-pendle ... (direct binary from @grimoirelabs/venues)

Recommended preflight:

  • grimoire venue doctor --adapter pendle --chain 1 --rpc-url <rpc> --json

Commands

  • grimoire venue pendle info [--base-url <url>] [--format <auto|json|table>]
  • grimoire venue pendle chains [--base-url <url>] [--format <auto|json|table>]
  • grimoire venue pendle supported-aggregators --chain <id> [--base-url <url>] [--format <auto|json|table>]
  • grimoire venue pendle markets [--chain <id>] [--active <true|false>] [--base-url <url>] [--format <auto|json|table>]
  • grimoire venue pendle assets [--chain <id>] [--type <PT|YT|LP|SY>] [--base-url <url>] [--format <auto|json|table>]
  • grimoire venue pendle market-tokens --chain <id> --market <address> [--base-url <url>] [--format <auto|json|table>]

Examples

bash
grimoire venue pendle info --format tablegrimoire venue pendle chainsgrimoire venue pendle supported-aggregators --chain 1 --format jsongrimoire venue pendle markets --chain 1 --active true --format tablegrimoire venue pendle assets --chain 8453 --type PT --format tablegrimoire venue pendle market-tokens --chain 8453 --market 0x... --format json

Authoring Workflow

Pendle requires a market-first approach. Do NOT write a Pendle spell without first querying available markets.

  1. Query markets for the target chain and underlying:

    bash
    grimoire venue pendle markets --chain 1 --active true --format json
  2. Pick a market — note its address and expiry. Each market has specific PT/YT/SY tokens.

  3. Query market tokens to get the exact token addresses:

    bash
    grimoire venue pendle market-tokens --chain 1 --market 0x... --format json
  4. Write the spell using token addresses from step 3:

    spell
    pendle.add_liquidity(0x<SY_address>, params.amount) with (max_slippage=100)

Common mistakes

  • pendle.deposit(USDC, ...) — Pendle has no deposit action. Use add_liquidity, mint_py, mint_sy, or swap.
  • Using token symbols without addresses — PT/YT/SY tokens are auto-resolved via the Pendle API, but standard tokens like USDC need raw amounts in the token's smallest unit.
  • Missing enable_aggregator — Some routes require an aggregator. If no route is found, retry with enable_aggregator=true in the with() clause.

Supported actions

ActionDescriptionInputOutput
swapSwap between any Pendle tokensSingle tokenSingle token
add_liquidityAdd single-sided liquidityUnderlying/SYLP token
remove_liquidityRemove single-sided liquidityLP tokenUnderlying/SY
mint_pyMint PT + YT from underlyingUnderlying/SYPT + YT
redeem_pyRedeem PT + YT to underlyingPT + YTUnderlying/SY
mint_syWrap underlying into SYUnderlyingSY
redeem_syUnwrap SY to underlyingSYUnderlying

Metric Surface (Spell Comparisons)

Pendle exposes quote_out for route output comparisons:

spell
pendle_out = metric("quote_out", pendle, USDC, "asset_out=DAI,amount=1000000,slippage_bps=1000")

Selector fields:

  • required: asset_out
  • optional: amount (defaults to 1 unit of input asset), slippage_bps, enable_aggregator

Spell Constraints

When writing Pendle actions in .spell files, use with clauses:

spell
pendle.swap(PT_TOKEN, SY_TOKEN, params.amount) with (  max_slippage=100,  require_quote=true,)
ConstraintTypeDescription
max_slippageinteger (bps)Maximum slippage, validated as integer in [0, 10000], converted to decimal for API
min_outputinteger (wei)Minimum output amount floor
require_quotebooleanFail if Pendle API quote fails
max_gasinteger (wei)Gas estimate cap

Pendle swap only supports mode: exact_in. exact_out is not supported.

When the Pendle API returns multiple routes, the adapter selects the first (best) route and emits a warning via onWarning. This is logged in non-JSON CLI runs.

PT/YT/SY Token Resolution

Pendle PT, YT, and SY tokens (e.g. PT_FXSAVE, YT_EETH, SY_WSTETH) are automatically resolved via the Pendle API at build time. You can use these symbols directly in spells without providing explicit addresses:

spell
pendle.swap(PT_FXSAVE, USDC, params.amount) with (max_slippage=100)

The adapter converts underscore-delimited names (e.g. PT_FXSAVE) to the Pendle API format and picks the best match. If multiple expiries exist, the first (nearest) is selected.

To target a specific expiry or disambiguate, use the full 0x address instead:

spell
pendle.swap(0xb1e926428ebec4421cce1ec6d9ff65d27f4b4bb6, USDC, params.amount)

Use grimoire venue pendle assets --chain <id> --type PT to discover available tokens and addresses.

Notes

  • Default API base URL is https://api-v2.pendle.finance/core.
  • Override base URL with --base-url or PENDLE_API_BASE_URL.
  • Use --format json for automation and nested payloads.
  • Pendle swap currently supports mode: exact_in only.
  • Aggregators are disabled by default in adapter actions unless explicitly enabled.
  • For Pendle token outputs (assetOut, outputs), use bare address literals (0x...) and not quoted strings (\"0x...\").
  • Quoted address-like token values trigger validator code QUOTED_ADDRESS_LITERAL.
  • max_slippage is validated as integer bps in [0, 10000] and converted to decimal (bps / 10000) before API requests.

來源與署名

來源:franalgaba/grimoire位於skills/grimoire-pendle提交2cca399

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架