grimoire-pendle
franalgaba/grimoire
Query Pendle market metadata and token details via Grimoire CLI for spell authoring.
What is grimoire-pendle?
Fetches Pendle Hosted SDK metadata including supported chains, aggregators, markets, assets, and market token details. Use this skill to inspect available Pendle markets and token addresses before writing Pendle spells, following a market-first authoring workflow.
- Query supported chains, aggregators, and active markets on Pendle
- Retrieve PT/YT/SY/LP token addresses and details for specific markets
- Inspect asset types and market token composition
- Validate Pendle routing configuration with preflight health checks
- Resolve Pendle token symbols automatically in spell definitions
- Compare route outputs using quote metrics for optimization
How to install grimoire-pendle
npx skills add https://github.com/franalgaba/grimoire --skill grimoire-pendle- Grimoire CLI installed (@grimoirelabs/cli or repo-local)
- RPC endpoint for target chain (optional, required for preflight doctor checks)
- Pendle API access (default: https://api-v2.pendle.finance/core)
How to use grimoire-pendle
- 1.Run `grimoire venue pendle chains` to list supported blockchains
- 2.Run `grimoire venue pendle markets --chain <id> --active true` to find available markets
- 3.Note the market address and expiry from the results
- 4.Run `grimoire venue pendle market-tokens --chain <id> --market <address>` to get PT/YT/SY token addresses
- 5.Use the token addresses in your spell with `pendle.swap()`, `pendle.add_liquidity()`, or other supported actions
- 6.Optionally run `grimoire venue doctor --adapter pendle --chain <id>` to preflight configuration
Use cases
- Discover available Pendle markets and their expiries before writing liquidity spells
- Fetch exact token addresses (PT, YT, SY) needed for swap or mint operations
- Validate chain and aggregator support before deploying Pendle routing
- Query market tokens to construct multi-leg Pendle transactions
- Compare output quotes across different Pendle routes for best execution
- DeFi developers writing Pendle yield farming spells
- Liquidity providers querying Pendle market availability
- Agents automating Pendle routing and token swaps
- Smart contract engineers validating Pendle integration prerequisites
grimoire-pendle FAQ
Query markets first to identify the target market and its address, then query market-tokens to get exact PT/YT/SY addresses, then write the spell using those addresses. Do not write spells without first confirming market availability.
Yes. Standard tokens like USDC and Pendle tokens like PT_FXSAVE are auto-resolved via the Pendle API at build time. For disambiguation or specific expiries, use the full 0x address instead.
swap, add_liquidity, remove_liquidity, mint_py, redeem_py, mint_sy, redeem_sy. Note: Pendle has no deposit action; use add_liquidity or mint_sy instead.
Use the `with()` clause in spells: `pendle.swap(PT, USDC, amount) with (max_slippage=100, require_quote=true)`. max_slippage is in basis points [0, 10000].
Retry with `enable_aggregator=true` in the `with()` clause. Aggregators are disabled by default but may unlock additional routes.
Full instructions (SKILL.md)
Source of truth, from franalgaba/grimoire.
name: grimoire-pendle description: Fetches Pendle Hosted SDK metadata using the Grimoire venue CLI. Use when you need supported chains, aggregators, markets, assets, or market token details.
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
grimoire venue pendle info --format table
grimoire venue pendle chains
grimoire venue pendle supported-aggregators --chain 1 --format json
grimoire venue pendle markets --chain 1 --active true --format table
grimoire venue pendle assets --chain 8453 --type PT --format table
grimoire 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.
-
Query markets for the target chain and underlying:
grimoire venue pendle markets --chain 1 --active true --format json -
Pick a market — note its address and expiry. Each market has specific PT/YT/SY tokens.
-
Query market tokens to get the exact token addresses:
grimoire venue pendle market-tokens --chain 1 --market 0x... --format json -
Write the spell using token addresses from step 3:
pendle.add_liquidity(0x<SY_address>, params.amount) with (max_slippage=100)
Common mistakes
pendle.deposit(USDC, ...)— Pendle has nodepositaction. Useadd_liquidity,mint_py,mint_sy, orswap.- 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 withenable_aggregator=truein thewith()clause.
Supported actions
| Action | Description | Input | Output |
|---|---|---|---|
swap | Swap between any Pendle tokens | Single token | Single token |
add_liquidity | Add single-sided liquidity | Underlying/SY | LP token |
remove_liquidity | Remove single-sided liquidity | LP token | Underlying/SY |
mint_py | Mint PT + YT from underlying | Underlying/SY | PT + YT |
redeem_py | Redeem PT + YT to underlying | PT + YT | Underlying/SY |
mint_sy | Wrap underlying into SY | Underlying | SY |
redeem_sy | Unwrap SY to underlying | SY | Underlying |
Metric Surface (Spell Comparisons)
Pendle exposes quote_out for route output comparisons:
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:
pendle.swap(PT_TOKEN, SY_TOKEN, params.amount) with (
max_slippage=100,
require_quote=true,
)
| Constraint | Type | Description |
|---|---|---|
max_slippage | integer (bps) | Maximum slippage, validated as integer in [0, 10000], converted to decimal for API |
min_output | integer (wei) | Minimum output amount floor |
require_quote | boolean | Fail if Pendle API quote fails |
max_gas | integer (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:
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:
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-urlorPENDLE_API_BASE_URL. - Use
--format jsonfor automation and nested payloads. - Pendle
swapcurrently supportsmode: exact_inonly. - 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_slippageis validated as integer bps in[0, 10000]and converted to decimal (bps / 10000) before API requests.
Related skills
More from franalgaba/grimoire and the wider catalog.

grimoire-polymarket
Query Polymarket markets and manage CLOB orders via the Grimoire CLI wrapper.

grimoire-uniswap
Query Uniswap router metadata, tokens, and pools via Grimoire CLI for V3/V4 integration.

grimoire
Install, author, and execute Grimoire .spell files with full DSL syntax coverage and advisory decision logic.

grimoire-aave
Query Aave V3 market data, health metrics, and reserve snapshots via Grimoire CLI.

freee-api-skill
Access freee accounting, HR, invoicing, and business management APIs through AI agents.

gpt-image-2-style-library
Generate production-ready GPT-Image2 prompts using curated style templates and visual guidelines.