grimoire-uniswap について
grimoire-uniswapは、Uniswapのメタデータを調べ、spell用のトークンやプールの入力を準備するCLIスキルです。The Graphまたはオンチェーンのファクトリーコントラクトを使ってプールを検索できます。
主な機能
- 01チェーン別のルーターアドレス検索
- 02シンボルやアドレスによるトークン検索
- 03トークンペアのプール検索
- 04トークンとプールのスナップショット生成
- 05The GraphまたはRPCでのプール照会
活用シーン
- 01チェーンごとのUniswapルーターアドレス確認
- 02トークンペアと手数料階層によるプール検索
- 03トークン情報からspellパラメーターを作成
- 04spell用のプール入力を準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ franalgaba/ grimoire --skill grimoire-uniswapインストール後、Claude Code で/grimoire-uniswapを入力して読み込まれたか確認します。
詳細
Grimoire Uniswap スキル
このスキルを使用して Uniswap のメタデータを調査し、スペル用のトークン/プールスナップショットを生成します。
推奨される呼び出し方法:
grimoire venue uniswap ...npx -y @grimoirelabs/cli venue uniswap ...(インストール不要)bun run packages/cli/src/index.ts venue uniswap ...(リポジトリ内から実行)grimoire-uniswap ...(@grimoirelabs/venuesの直接バイナリ)
推奨される事前チェック:
grimoire venue doctor --adapter uniswap --chain 1 --rpc-url <rpc> --json
コマンド
grimoire venue uniswap info— アダプターのメタデータgrimoire venue uniswap routers [--chain <id>]— チェーンごとのルーターアドレスgrimoire venue uniswap tokens [--chain <id>] [--symbol <sym>] [--address <addr>] [--source <url>]— トークンリストの検索grimoire venue uniswap tokens-snapshot [--chain <id>] [--symbol <sym>] [--address <addr>] [--source <url>]— トークン用のスペルparams:ブロックを生成(エージェント専用)grimoire venue uniswap pools --token0 <address|symbol> --token1 <address|symbol> [--chain <id>] [--fee <bps>] [--limit <n>] [--source <url>] [--endpoint <url>] [--graph-key <key>] [--subgraph-id <id>] [--rpc-url <url>] [--factory <address>]— トークンペアのプールを検索grimoire venue uniswap pools-snapshot --token0 <address|symbol> --token1 <address|symbol> [--chain <id>] [--fee <bps>] [--limit <n>] [--source <url>] [--endpoint <url>] [--graph-key <key>] [--subgraph-id <id>] [--rpc-url <url>] [--factory <address>]— プール用のスペルparams:ブロックを生成(エージェント専用)
プールのデータソース
プールは The Graph(サブグラフ)またはオンチェーンのファクトリーコントラクトから直接取得できます。
- サブグラフ(
GRAPH_API_KEYが設定されている場合のデフォルト):The Graph の分散型ネットワークにクエリします。Ethereum、Optimism、Polygon、Base、Arbitrum 用のサブグラフ ID が組み込まれています。 - RPC(フォールバック):使用可能な Graph 設定がない場合、
poolsはオンチェーンのファクトリー検索を使用します(--rpc-url/RPC_URLが指定されていればそれを使用し、指定されていない場合は利用可能なチェーンのデフォルト RPC を使用します)。 - RPC モードを強制するには:
--rpc-urlを指定し、--graph-keyは省略します。
環境変数
| 変数 | 説明 |
|---|---|
GRAPH_API_KEY | サブグラフクエリ用の The Graph API キー(https://thegraph.com/studio/apikeys/ で取得できます) |
RPC_URL | オンチェーンのプール検索用フォールバック RPC URL |
例
grimoire venue uniswap info --format table
grimoire venue uniswap routers
grimoire venue uniswap routers --chain 1
grimoire venue uniswap tokens --chain 1 --symbol USDC --format spell
grimoire venue uniswap pools --chain 1 --token0 USDC --token1 WETH --fee 3000 --format spell
grimoire venue uniswap pools --chain 8453 --token0 USDC --token1 WETH --fee 500 --rpc-url $RPC_URL --format table
grimoire venue uniswap pools --chain 8453 --token0 USDC --token1 WETH --fee 500 --graph-key $GRAPH_API_KEY --subgraph-id <id>
grimoire venue uniswap tokens-snapshot --chain 1 --symbol USDC
grimoire venue uniswap pools-snapshot --chain 1 --token0 USDC --token1 WETH --rpc-url $RPC_URL
tokens-snapshot または pools-snapshot を使用して、スペル入力用の params: ブロックを出力します。これらはエージェント専用コマンドです(対話モードでは出力が抑制されます)。
メトリクスの対象範囲(スペルの比較)
Uniswap V3 と V4 は、プロトコル比較用に quote_out を公開します。
v3_out = metric("quote_out", uni_v3, USDC, "asset_out=WETH,amount=1000000,fee_tier=3000")
v4_out = metric("quote_out", uni_v4, USDC, "asset_out=WETH,amount=1000000,fee_tier=3000,tick_spacing=60")
セレクターフィールド:
- 必須:
asset_out - 任意:
amount(入力アセットの 1 単位がデフォルト)、fee_tier - V4 の任意項目:
tick_spacing
スペルの制約
Uniswap を対象とする .spell ファイルでスワップアクションを記述する場合は、with 句を使用して制約を設定します。
uniswap_v3.swap(USDC, WETH, params.amount) with (
fee_tier=3000,
max_slippage=50,
min_output=900000000000000,
deadline=300,
)
fee_tier は必須です。 fee_tier が指定されていない場合、アダプターはエラーをスローします。これは制約ではなくアクションパラメーターであり、with() 句から抽出されます。
一般的な手数料ティア:500(0.05%)、3000(0.3%)、10000(1%)。
| パラメーター | 型 | 説明 |
|---|---|---|
fee_tier | integer (bps) | 必須。 Uniswap プールの手数料ティア(例:500、3000、10000) |
| 制約 | 型 | 説明 |
|---|---|---|
max_slippage | integer (bps) | スリッページの最大値(ベーシスポイント単位。例:50 = 0.5%) |
min_output | integer (wei) | 出力額の最小下限 |
max_input | integer (wei) | 入力額の最大上限 |
deadline | integer (seconds) | 現在からのトランザクション期限 |
require_quote | boolean | オンチェーンの見積もり取得に失敗した場合に失敗させます |
require_simulation | boolean | シミュレーションを利用できない場合に失敗させます |
max_gas | integer (wei) | ガス見積もりの上限 |
予期しない損失を防ぐため、スワップでは常に max_slippage と min_output の両方を設定してください。
サポートされているアダプター
| アダプター | ルーター | 承認フロー |
|---|---|---|
@uniswap_v3 | SwapRouter02 | 標準の ERC20 承認 |
@uniswap_v4 | Universal Router | Permit2 |
注意事項
- CLI では現在、V3 のメタデータが公開されています。V4 アダプターは
createUniswapV4Adapter()を通じてプログラムから利用できます。 - メタデータ(
tokens、pools)を参照するには、spell の venue がuniswap_v4の場合でもgrimoire venue uniswap ...を使用してください。 - 出力形式は JSON/テーブルです。
tokensとpoolsでは--format spellも使用できます。 - 自動化や再現可能なスナップショットには、
--format jsonを推奨します。 - 公開されているのはメタデータのみです(オンチェーンの見積もりエンドポイントはありません)。