mcpField
G
grimoire-uniswap

grimoire-uniswap

github.com/franalgabaその他61.1k 回インストール25 週間前に更新
リポジトリ

grimoire-uniswap について

grimoire-uniswapは、Uniswapのメタデータを調べ、spell用のトークンやプールの入力を準備するCLIスキルです。The Graphまたはオンチェーンのファクトリーコントラクトを使ってプールを検索できます。

主な機能

  1. 01チェーン別のルーターアドレス検索
  2. 02シンボルやアドレスによるトークン検索
  3. 03トークンペアのプール検索
  4. 04トークンとプールのスナップショット生成
  5. 05The GraphまたはRPCでのプール照会

活用シーン

  1. 01チェーンごとのUniswapルーターアドレス確認
  2. 02トークンペアと手数料階層によるプール検索
  3. 03トークン情報からspellパラメーターを作成
  4. 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_tierinteger (bps)必須。 Uniswap プールの手数料ティア(例:500、3000、10000)
制約型説明
max_slippageinteger (bps)スリッページの最大値(ベーシスポイント単位。例:50 = 0.5%)
min_outputinteger (wei)出力額の最小下限
max_inputinteger (wei)入力額の最大上限
deadlineinteger (seconds)現在からのトランザクション期限
require_quotebooleanオンチェーンの見積もり取得に失敗した場合に失敗させます
require_simulationbooleanシミュレーションを利用できない場合に失敗させます
max_gasinteger (wei)ガス見積もりの上限

予期しない損失を防ぐため、スワップでは常に max_slippage と min_output の両方を設定してください。

サポートされているアダプター

アダプタールーター承認フロー
@uniswap_v3SwapRouter02標準の ERC20 承認
@uniswap_v4Universal RouterPermit2

注意事項

  • CLI では現在、V3 のメタデータが公開されています。V4 アダプターは createUniswapV4Adapter() を通じてプログラムから利用できます。
  • メタデータ(tokens、pools)を参照するには、spell の venue が uniswap_v4 の場合でも grimoire venue uniswap ... を使用してください。
  • 出力形式は JSON/テーブルです。tokens と pools では --format spell も使用できます。
  • 自動化や再現可能なスナップショットには、--format json を推奨します。
  • 公開されているのはメタデータのみです(オンチェーンの見積もりエンドポイントはありません)。

コメント