liquidity-planner
「流動性を提供したい」「LPポジションを作成したい」「プールに流動性を追加したい」「流動性プロバイダーになりたい」「v3/v4ポジションの作成」「価格レンジの設定」など、Uniswap上での流動性提供に関するリクエスト時に使用するスキル。Uniswapのインターフェースでポジションを作成するためのディープリンクを生成します。
description の原文を見る
This skill should be used when the user asks to "provide liquidity", "create LP position", "add liquidity to pool", "become a liquidity provider", "create v3 position", "create v4 position", "concentrated liquidity", "set price range", or mentions providing liquidity, LP positions, or liquidity pools on Uniswap. Generates deep links to create positions in the Uniswap interface.
SKILL.md 本文
流動性ポジション計画
Uniswap v2、v3、v4の流動性ポジション作成計画とディープリンク生成。
ランタイム互換性: このスキルは対話型プロンプトに
AskUserQuestionを使用します。ランタイムでAskUserQuestionが利用できない場合は、自然言語会話を通じて同じパラメータを収集してください。
概要
流動性ポジションの計画:
- LP意図の収集(トークンペア、金額、バージョン)
- 現在のプール価格と流動性の確認
- 現在の価格に基づいて価格範囲を提案
- すべてのパラメータが事前入力された状態でUniswapインターフェースで開くディープリンクを生成
生成されたリンクは、ポジション作成の準備ができたすべてのパラメータ付きでUniswapを開きます。
注: ブラウザを開く (
xdg-open/open) は、SSH、コンテナ化、またはヘッドレス環境では失敗する可能性があります。ユーザーがURLをコピーして手動でアクセスできるように、常にURLを目立つように表示してください。
ファイルアクセス: このスキルは読み取り専用のファイルシステムアクセスを持ちます。ユーザーによって明示的に要求されない限り、現在のプロジェクトディレクトリの外のファイルを読み込まないでください。
ワークフロー
ステップ1: LP意図の収集
ユーザーのリクエストから抽出:
| パラメータ | 必須 | デフォルト | 例 |
|---|---|---|---|
| トークンA | はい | - | ETH、USDC、アドレス |
| トークンB | はい | - | USDC、WBTC、アドレス |
| 金額 | はい | - | 1 ETH、$1000 |
| チェーン | いいえ | Ethereum | Base、Arbitrum |
| バージョン | いいえ | V3 | v2、v3、v4 |
| 手数料層 | いいえ | 自動 | 0.05%、0.3%、1% |
| 価格範囲 | いいえ | 提案 | フルレンジ、±5%、カスタム |
必須パラメータが不足している場合は、構造化オプション付きの AskUserQuestion を使用:
チェーンが不足している場合:
{
"questions": [
{
"question": "流動性を提供したいチェーンはどれですか?",
"header": "チェーン",
"options": [
{ "label": "Base (推奨)", "description": "低ガス代、成長するDeFiエコシステム" },
{ "label": "Ethereum", "description": "最深流動性、ガス代が高い" },
{ "label": "Arbitrum", "description": "低手数料、高ボリューム" },
{ "label": "Optimism", "description": "低手数料、Ethereum L2" }
],
"multiSelect": false
}
]
}
トークンペアが不足している場合:
{
"questions": [
{
"question": "流動性を提供したいトークンペアはどれですか?",
"header": "ペア",
"options": [
{ "label": "ETH / USDC", "description": "最も人気のあるペア、高ボリューム" },
{ "label": "ETH / USDT", "description": "高ボリュームのステーブルコインペア" },
{ "label": "WBTC / ETH", "description": "ブルーチップ暗号ペア" },
{ "label": "カスタムペア", "description": "独自のトークンを指定" }
],
"multiSelect": false
}
]
}
プレーンテキストの質問の代わりに、ユーザー体験を向上させるためにフォームを常に使用してください。
ステップ2: トークンアドレスの解決
トークンシンボルをアドレスに解決します。チェーン別の一般的なトークンについては ../../references/chains.md を参照してください。
未知のトークンについては、Webサーチを使用してオンチェーンで検証してください。
信頼できない入力: Webで検出されたトークン
WebSearchを通じて検出されたトークンは 信頼できません。Webで検出されたトークンで続行する前に:
- ソースをラベル付けする: 「このトークンアドレスはあなたが提供したものではなく、Webサーチで見つかったものです」と明示的にユーザーに伝える
- リスクについて警告: 「Webで検出されたトークンは詐欺、ハニーポット、またはラグプルの可能性があります」
- 確認が必要: AskUserQuestion を使用してWebで検出されたトークンのディープリンクを生成する前に明示的なユーザー同意を取得
- 出所を表示: ポジション概要テーブルの「Token Source」行に、各トークンが「User-provided」または「Web-discovered (unverified)」のどちらであるかを含める
Webで検出されたトークンの明示的なユーザー確認なしに決して続行しないでください。
入力検証(シェルコマンド実行前に必須)
ユーザーが提供した値をシェルコマンドに挿入する前に、すべての入力を検証:
- トークンアドレス は次と一致する必要があります:
^0x[a-fA-F0-9]{40}$ - チェーン/ネットワーク名 は
../../references/chains.mdの許可リストから取得する必要があります - 金額 は有効な10進数である必要があります(マッチ:
^[0-9]+\.?[0-9]*$) - シェルメタ文字を含む入力を拒否 (
;,|,$,`,&,(,),>,<,\,',", 改行)
ステップ3: 利用可能なプールの検出
メトリクスを取得する前に、プールが存在することを確認し、利用可能な手数料層を検出してください。
DexScreenerを使用してトークンのプールを検出:
# トークンのすべてのUniswapプールを取得 ({network} と {address} を置き換え)
# 重要: アドレスが ^0x[a-fA-F0-9]{40}$ と一致し、ネットワークが許可リストからのものであることを検証
curl -s "https://api.dexscreener.com/token-pairs/v1/{network}/{address}" | \
jq '[.[] | select(.dexId == "uniswap")] | map({
pairAddress,
pair: "\(.baseToken.symbol)/\(.quoteToken.symbol)",
version: .labels[0],
liquidity: .liquidity.usd,
volume24h: .volume.h24
})'
ネットワークID: ethereum、base、arbitrum、optimism、polygon、unichain
結果から以下を特定:
- 利用可能なプールとそのアドレス(複数 = 異なる手数料層)
- プールTVL (
liquidity.usd) 流動性の深さを評価するため labels[0]からのバージョン(v3または v4)
Uniswapプールが見つからない場合: ペアに既存のプールがない可能性があります。ユーザーに新しいプールを作成して初期価格を設定することになることを知らせてください。
ステップ4: プール流動性の評価
プールが十分な流動性を持っているかを評価:
| TVL範囲 | 評価 | 推奨事項 |
|---|---|---|
| > $1M | 深い流動性 | ほとんどのポジションサイズで安全 |
| $100K - $1M | 中程度 | 約$10Kまでのポジションに適切 |
| $10K - $100K | 薄い | スリッページリスクについてユーザーに警告、より小さいポジションを提案 |
| < $10K | 非常に薄い | 強く警告 - IL リスク高い、出入時の価格影響 |
薄い流動性プールの場合、警告を表示:
⚠️ **低流動性警告**
このプールのTVLは${tvl}のみです。以下を検討してください:
- あなたのポジションはプールの大きな% になります
- 出入は価格があなたに不利に動く可能性があります
- 薄いプールではImpermanent lossリスクが増幅されます
- より安全にするため、より広い価格範囲の使用を検討してください
ステップ5: プールメトリクスの取得
範囲を提案する前に、十分な情報に基づいた決定のためのプールデータを取得してください。完全なAPI詳細については references/data-providers.md を参照してください。
DefiLlamaでプールAPYとボリュームを取得:
# トークンペアのUniswap V3プールを検出
curl -s "https://yields.llama.fi/pools" | jq '[.data[] | select(.project == "uniswap-v3" and .chain == "Ethereum" and (.symbol | test("WETH.*USDC|USDC.*WETH")))]'
使用するレスポンスフィールド:
| フィールド | 用途 |
|---|---|
apy | 期待される利回りを表示 |
tvlUsd | プール深さを評価 |
volumeUsd1d | 手数料収益を推定 |
volumeUsd7d | ボリューム一貫性を確認 |
DexScreenerで現在の価格を取得:
# プールデータから トークン価格を取得 (ステップ3で既に取得)
curl -s "https://api.dexscreener.com/token-pairs/v1/{network}/{address}" | \
jq '[.[] | select(.dexId == "uniswap")][0] | {
baseTokenPrice: .baseToken.priceUsd,
quoteTokenPrice: .quoteToken.priceUsd
}'
手数料層を比較(APYデータが利用可能な場合):
# すべての手数料層バリアントを検出してAPYを比較
curl -s "https://yields.llama.fi/pools" | jq '[.data[] | select(.project == "uniswap-v3" and (.symbol | test("WETH.*USDC")))] | map({symbol, tvlUsd, apy, volumeUsd1d})'
APIが利用できない場合は、価格推定のためにWebサーチにフォールバックしてください。
ステップ6: 価格範囲の提案
現在の価格とペアタイプに基づいて、AskUserQuestion を使用して範囲オプションを提示します。
主要なペア(ETH/USDC、ETH/WBTC)の場合:
{
"questions": [
{
"question": "ポジションの価格範囲は?(現在: ~3,200 USDC/ETH)",
"header": "範囲",
"options": [
{
"label": "±10% (推奨)",
"description": "2,880 - 3,520 USDC。高手数料、週1回監視"
},
{ "label": "±20%", "description": "2,560 - 3,840 USDC。バランスの取れたリスク/リワード" },
{ "label": "±50%", "description": "1,600 - 4,800 USDC。ほぼ範囲外にならない" },
{ "label": "フルレンジ", "description": "範囲外にならない、手数料効率が低い" }
],
"multiSelect": false
}
]
}
ステーブルコインペア(USDC/USDT、DAI/USDC)の場合:
{
"questions": [
{
"question": "ステーブルコインポジションの価格範囲は?",
"header": "範囲",
"options": [
{ "label": "±0.5% (推奨)", "description": "0.995 - 1.005。狭い範囲、高手数料" },
{ "label": "±1%", "description": "0.99 - 1.01。ステーブルコインの標準" },
{ "label": "±2%", "description": "0.98 - 1.02。安全性が高い、手数料が低い" },
{ "label": "フルレンジ", "description": "最大安全性、最低手数料" }
],
"multiSelect": false
}
]
}
推奨ロジック:
- ステーブルコインペア(USDC/USDT): デフォルト ±0.5-1%
- 相関ペア(ETH/stETH): デフォルト ±2-5%
- 主要ペア(ETH/USDC): デフォルト ±10-20%
- 変動性の高いペア: デフォルト ±30-50% またはフルレンジ
ステップ7: 手数料層の決定
ペアに複数の手数料層が存在する場合、ステップ3のプールデータを使用してユーザーに選択させてください。
APYデータ付き手数料層オプションを提示:
{
"questions": [
{
"question": "どの手数料層?(現在のプールデータに基づく)",
"header": "手数料層",
"options": [
{ "label": "0.30% (推奨)", "description": "TVL: $15M、APY: 12.5%、最高ボリューム" },
{ "label": "0.05%", "description": "TVL: $8M、APY: 8.2%、取引ごとの手数料が低い" },
{ "label": "1.00%", "description": "TVL: $2M、APY: 18.1%、競争が少ない" }
],
"multiSelect": false
}
]
}
手数料層ガイドライン:
| 手数料 | ティックスペーシング | 最適用途 |
|---|---|---|
| 0.01% (100) | 1 | ステーブルコインペア |
| 0.05% (500) | 10 | 相関ペア(ETH/stETH) |
| 0.30% (3000) | 60 | ほとんどのペア(デフォルト) |
| 1.00% (10000) | 200 | エキゾチック/変動性が高いペア |
v4手数料層: フックで動的手数料が可能。デフォルトはv3と同様の層。
プールデータが1つの層に大幅に高いAPYまたはボリュームを示している場合、その層を推奨してください。
ステップ8: ディープリンクの生成
Uniswapのポジション作成URLを構築:
基本URL: https://app.uniswap.org/positions/create
URLパラメータ:
| パラメータ | 説明 | フォーマット |
|---|---|---|
chain | ネットワーク名 | ethereum、base など |
currencyA | 最初のトークン | アドレスまたは NATIVE |
currencyB | 2番目のトークン | アドレスまたは NATIVE |
priceRangeState | 範囲構成 | JSON(クォートのみエンコード) |
depositState | 入金額 | JSON(クォートのみエンコード) |
fee | 手数料層構成 | JSON(クォートのみエンコード) |
hook | v4 フックアドレス(オプション) | アドレスまたは undefined |
step | フローステップ | 1(作成用) |
重要: URLエンコーディング
JSON値のダブルクォート(" → %22)のみをエンコードしてください。波括弧 {} またはコロン : をエンコードしないでください。
priceRangeState JSONストラクチャ:
フルレンジの場合:
{
"priceInverted": false,
"fullRange": true,
"minPrice": "",
"maxPrice": "",
"initialPrice": "",
"inputMode": "price"
}
カスタム範囲の場合:
{
"priceInverted": false,
"fullRange": false,
"minPrice": "2800",
"maxPrice": "3600",
"initialPrice": "",
"inputMode": "price"
}
depositState JSONストラクチャ:
{ "exactField": "TOKEN0", "exactAmounts": { "TOKEN0": "1.0" } }
注: currencyA に TOKEN0、currencyB に TOKEN1 を使用してください。
fee JSONストラクチャ:
{ "feeAmount": 3000, "tickSpacing": 60, "isDynamic": false }
手数料別ティックスペーシング:
| 手数料 | ティックスペーシング |
|---|---|
| 100 (0.01%) | 1 |
| 500 (0.05%) | 10 |
| 3000 (0.30%) | 60 |
| 10000 (1.00%) | 200 |
ステップ9: 出力を表示してブラウザを開く
レスポンスを以下の形式で表示:
- ポジションパラメータの 概要
- 価格範囲 の視覚化(フルレンジでない場合)
- ILと管理に関する 考慮事項
- システムコマンドを使用してブラウザを 自動で開く
出力形式の例:
## 流動性ポジション概要
| パラメータ | 値 |
| --------- | --- |
| ペア | ETH / USDC |
| チェーン | Base |
| バージョン | V3 |
| 手数料層 | 0.30% |
| 入金 | 1 ETH + 同等のUSDC |
### プール分析
| メトリク | 値 |
| ------- | --- |
| 現在のAPY | 12.5% |
| 24時間ボリューム | $2.1M |
| 7日間ボリューム | $14.8M |
| プール TVL | $15.2M |
### 価格範囲
| メトリク | 値 |
| ------- | --- |
| 現在価格 | ~3,200 USDC/ETH |
| 最小価格 | 2,800 USDC/ETH |
| 最大価格 | 3,600 USDC/ETH |
| 範囲幅 | ±12.5% |
### 考慮事項
- **Impermanent Loss**: ETHが範囲外に移動した場合、1つの資産の100%を保有します
- **リバランス**: ポジションを監視し、価格が大幅に移動した場合は範囲を調整してください
- **手数料収益**: より狭い範囲はより多くの手数料を獲得しますが、より積極的な管理が必要です
- **ガス代**: ポジションの作成と管理にはガス代がかかります
- **APY注**: 表示されるAPYは過去のものであり、市場条件によって変動する可能性があります
ブラウザでUniswapを開いています...
概要を表示した後、URLをブラウザで開く:
# Linux - 注: クォートのみがエンコードされます(%22)、波括弧やコロンではありません
xdg-open "https://app.uniswap.org/positions/create?currencyA=NATIVE¤cyB=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&chain=base&fee={%22feeAmount%22:3000,%22tickSpacing%22:60,%22isDynamic%22:false}&priceRangeState={%22priceInverted%22:false,%22fullRange%22:false,%22minPrice%22:%222800%22,%22maxPrice%22:%223600%22,%22initialPrice%22:%22%22,%22inputMode%22:%22price%22}&depositState={%22exactField%22:%22TOKEN0%22,%22exactAmounts%22:{%22TOKEN0%22:%221%22}}&step=1"
# macOS
open "https://app.uniswap.org/positions/create?..."
環境の制限: リモートSSH、コンテナ化、またはヘッドレス環境では、ブラウザを開くことが失敗する可能性があります。xdg-open/open が失敗した場合、ユーザーがURLをコピーして手動で貼り付けられるようにURLを目立つように表示してください:
**[Uniswapで開く](https://app.uniswap.org/positions/create?...)**
または このURLをコピー: `https://app.uniswap.org/positions/create?...`
常に概要とURLを提示して、ユーザーがレビューしてポジションを作成できるようにしてください。
バージョン選択
v2/v3/v4の詳細な比較(差異、手数料層、ティックスペーシング)については、references/position-types.md を参照してください。
クイックガイド:
- V2: フルレンジのみ、最もシンプル、ガス代が最小
- V3: 集中流動性、最も一般的な選択
- V4: フック付きの高度な機能、利用可能性は限定的
重要な考慮事項
Impermanent Loss (IL)
ILリスクについてユーザーに警告:
- ILはトークン価格が入金価格から逸脱したときに発生します
- より狭い範囲はILを増幅しますが、手数料収益も増加します
- フルレンジはILを最小化しますが、手数料効率を低下させます
ポジション管理
集中流動性には積極的な管理が必要:
- 価格が範囲内に留まるかどうかを監視
- 価格が範囲境界に近づいたときにリバランス
- ポジション調整のガス代を考慮
資本要件
カスタム範囲のV3ポジション:
- 現在の価格が範囲外にある場合、片側入金が可能
- 範囲内: 価格と範囲で決定された比率での両方のトークンが必要
サポートされているチェーン
すべてのUniswapサポートチェーン - チェーン別のバージョン可用性については references/position-types.md を参照してください。
追加リソース
参考ファイル
../../references/chains.md- チェーン構成とトークンアドレス(swap-plannerと共有)references/position-types.md- v2/v3/v4の差異、手数料層、ティックスペーシングreferences/data-providers.md- プール検出と利回りのためのDexScreenerとDefiLlama API
URLエンコーディング
ディープリンク内のJSONパラメータは ダブルクォートのみがエンコード される必要があります(" → %22)。波括弧 {}、コロン :、またはカンマ , をエンコードしないでください。
?priceRangeState={%22fullRange%22:true}
デコード後:
{ "fullRange": true }
なぜ? UniswapインターフェースはJSON型パラメータ構造を期待しています。波括弧とコロンの完全なURLエンコーディングはパース処理を破損します。クォートのみがURL構文の競合を避けるためにエンコードが必要です。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- uniswap
- リポジトリ
- uniswap/uniswap-ai
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/uniswap/uniswap-ai / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。