grimoire-pendle について
grimoire-pendleは、spellの作成や実行に向けてPendleのメタデータを調べ、ルーティング設定を事前確認するスキルです。マーケットやトークン情報を照会し、Pendleトークンのシンボル解決とルート出力の比較を行います。
主な機能
- 01対応チェーンとアグリゲーターの照会
- 02マーケットと資産の一覧表示
- 03マーケットトークンアドレスの照会
- 04ビルド時のPT、YT、SYシンボル解決
- 05ルート出力見積もりの比較
活用シーン
- 01spell作成前のマーケット検索と選択
- 02マーケットに対応するPT、YT、SYアドレスの取得
- 03ルーティング設定と見積もり出力の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ franalgaba/ grimoire --skill grimoire-pendleインストール後、Claude Code で/grimoire-pendleを入力して読み込まれたか確認します。
詳細
Grimoire Pendle スキル
このスキルを使って Pendle のメタデータを確認し、スペルを実行する前に Pendle のルーティング設定を事前チェックします。
推奨される呼び出し方法:
grimoire venue pendle ...npx -y @grimoirelabs/cli venue pendle ...(インストール不要)bun run packages/cli/src/index.ts venue pendle ...(リポジトリ内で実行)grimoire-pendle ...(@grimoirelabs/venuesから直接実行するバイナリ)
推奨される事前チェック:
grimoire venue doctor --adapter pendle --chain 1 --rpc-url <rpc> --json
コマンド
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>]
例
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
作成ワークフロー
Pendle では、まずマーケットを確認する必要があります。利用可能なマーケットを照会する前に、Pendle のスペルを書かないでください。
-
対象のチェーンと原資産について、マーケットを照会します:
grimoire venue pendle markets --chain 1 --active true --format json -
マーケットを選択します。アドレスと満期を記録してください。マーケットごとに PT/YT/SY トークンが異なります。
-
マーケットトークンを照会し、正確なトークンアドレスを取得します:
grimoire venue pendle market-tokens --chain 1 --market 0x... --format json -
手順 3 のトークンアドレスを使ってスペルを書きます:
pendle.add_liquidity(0x<SY_address>, params.amount) with (max_slippage=100)
よくある間違い
pendle.deposit(USDC, ...)— Pendle にdepositアクションはありません。add_liquidity、mint_py、mint_sy、またはswapを使用してください。- アドレスを指定せずにトークンシンボルを使用する — PT/YT/SY トークンは Pendle API を通じて自動解決されますが、USDC などの標準トークンでは、そのトークンの最小単位で生の数量を指定する必要があります。
enable_aggregatorの指定漏れ — ルートによってはアグリゲーターが必要です。ルートが見つからない場合は、with()句にenable_aggregator=trueを指定して再試行してください。
サポートされているアクション
| アクション | 説明 | 入力 | 出力 |
|---|---|---|---|
swap | 任意の Pendle トークン間でスワップします | 単一トークン | 単一トークン |
add_liquidity | 単一側から流動性を追加します | 原資産/SY | LP トークン |
remove_liquidity | 単一側から流動性を取り除きます | LP トークン | 原資産/SY |
mint_py | 原資産から PT と YT をミントします | 原資産/SY | PT + YT |
redeem_py | PT と YT を原資産に償還します | PT + YT | 原資産/SY |
mint_sy | 原資産を SY にラップします | 原資産 | SY |
redeem_sy | SY を原資産にアンラップします | SY | 原資産 |
メトリクスの仕様(スペルの比較)
Pendle は、ルート出力の比較に quote_out を提供します:
pendle_out = metric("quote_out", pendle, USDC, "asset_out=DAI,amount=1000000,slippage_bps=1000")
セレクターフィールド:
- 必須:
asset_out - 任意:
amount(入力アセットの 1 単位を既定値とします)、slippage_bps、enable_aggregator
スペルの制約
.spell ファイルで Pendle アクションを記述する場合は、with 句を使用します:
pendle.swap(PT_TOKEN, SY_TOKEN, params.amount) with (
max_slippage=100,
require_quote=true,
)
| 制約 | 型 | 説明 |
|---|---|---|
max_slippage | 整数(bps) | 最大スリッページ。[0, 10000] の整数として検証され、API 用に小数へ変換されます |
min_output | 整数(wei) | 出力額の下限 |
require_quote | 真偽値 | Pendle API の見積もりが失敗した場合に処理を失敗させます |
max_gas | 整数(wei) | ガス見積もりの上限 |
Pendle の swap がサポートするのは mode: exact_in のみです。exact_out はサポートされていません。
Pendle API が複数のルートを返す場合、アダプターは最初の(最良の)ルートを選択し、onWarning を通じて警告を出力します。これは JSON 以外の CLI 実行時にログへ記録されます。
PT/YT/SY トークンの解決
Pendle の PT、YT、SY トークン(例:PT_FXSAVE、YT_EETH、SY_WSTETH)は、ビルド時に Pendle API を通じて自動的に解決されます。明示的なアドレスを指定しなくても、これらのシンボルをそのままスペル内で使用できます。
pendle.swap(PT_FXSAVE, USDC, params.amount) with (max_slippage=100)
アダプターは、アンダースコア区切りの名前(例:PT_FXSAVE)を Pendle API の形式に変換し、最適な一致を選択します。複数の満期がある場合は、最初の(一番近い)満期が選択されます。
特定の満期を指定する場合や、あいまいさを解消する場合は、代わりに完全な 0x アドレスを使用してください。
pendle.swap(0xb1e926428ebec4421cce1ec6d9ff65d27f4b4bb6, USDC, params.amount)
grimoire venue pendle assets --chain <id> --type PT を使用すると、利用可能なトークンとアドレスを確認できます。
注意事項
- デフォルトの API ベース URL は
https://api-v2.pendle.finance/coreです。 --base-urlまたはPENDLE_API_BASE_URLでベース URL を上書きできます。- 自動化やネストされたペイロードには
--format jsonを使用してください。 - Pendle の
swapが現在サポートしているのはmode: exact_inのみです。 - 明示的に有効化しない限り、アダプターのアクションではアグリゲーターはデフォルトで無効になっています。
- Pendle のトークン出力(
assetOut、outputs)には、引用符で囲んだ文字列(\"0x...\")ではなく、アドレスのリテラル値(0x...)を使用してください。 - アドレスのように見える値を引用符で囲むと、バリデーターコード
QUOTED_ADDRESS_LITERALが発生します。 max_slippageは[0, 10000]の整数 bps として検証され、API リクエストの前に小数(bps / 10000)へ変換されます。