haystack-router-interaction
Algorand MCP ツールを使用して、Haystack Router 経由で Algorand 上の最適なトークンスワップをルーティングして実行します。複数の Algorand DEX および LST プロトコル全体で最適な価格見積もりを取得し、アトミックスワップを実行し、アセットのオプトインを確認する場合に利用できます。すべての処理は Algorand MCP サーバーを通じて行われます。
description の原文を見る
Route and execute optimal token swaps on Algorand using Haystack Router via Algorand MCP tools. Use when getting best-price quotes across multiple Algorand DEXes and LST protocols, executing atomic swaps, and checking asset opt-in — all through the Algorand MCP server.
SKILL.md 本文
Haystack Router(インタラクション)
このスキルは、Algorand MCP ツールを通じて Haystack Router とインタラクションするためのものです。見積もりの取得、スワップの実行、オプトイン状態の確認ができます。すべての操作は Algorand MCP ウォレットで署名します。SDK のインストールや API キーは不要です。
Haystack Router を直接統合するアプリケーションを構築していますか? haystack-router-development スキルを使用してください。
@txnlab/haystack-routerSDK、React インテグレーション、Node.js オートメーション、ミドルウェア、および完全な API サーフェスをカバーしています。
Haystack Router は、Algorand 上の DEX アグリゲーターおよびスマート オーダー ルーティング プロトコルです。複数の DEX(Tinyman V2、Pact、Folks)および LST プロトコル(tALGO、xALGO)全体で最適なスワップ ルートを検出し、オンチェーン スマート コントラクトを通じてアトミックに実行します。
Algorand MCP Haystack Router ツール
3 つの専用 Algorand MCP ツールが、完全な Haystack Router 機能を提供します。これらはクォーティング、実行(ウォレット署名付き)、およびオプトイン チェック機能を処理します。生のニーモニックやシークレット キーは不要です。
api_haystack_get_swap_quote
実行せずに最適化されたスワップ見積もりを取得します。ユーザーに確認する前に、価格設定、ルート、価格インパクトをプレビューするために使用します。
-> api_haystack_get_swap_quote {
fromASAID: 0, // Input asset (0 = ALGO)
toASAID: 31566704, // Output asset (USDC)
amount: 1000000, // 1 ALGO in base units
type: "fixed-input", // or "fixed-output"
address: "<address>", // optional, for opt-in detection
maxGroupSize: 16, // optional
maxDepth: 4, // optional
network: "mainnet"
}
Returns: expectedOutput, inputAmount, usdIn, usdOut, userPriceImpact,
route, flattenedRoute, requiredAppOptIns, protocolFees
api_haystack_execute_swap
ワンステップ スワップ:見積もり取得 → 署名(ウォレット経由)→ 送信 → 確認。アクティブなウォレット アカウントを署名に使用します。ウォレット支出制限を強制します。
-> api_haystack_execute_swap {
fromASAID: 0, // Input asset
toASAID: 31566704, // Output asset
amount: 1000000, // Amount in base units
slippage: 1, // 1% slippage tolerance
type: "fixed-input", // optional
note: "my swap", // optional text note
maxGroupSize: 16, // optional
maxDepth: 4, // optional
network: "mainnet"
}
Returns: status, confirmedRound, txIds, signer, nickname, quote details,
summary (inputAmount, outputAmount, totalFees, transactionCount)
api_haystack_needs_optin
スワップ前にアドレスがアセットにオプトインする必要があるかどうかを確認します。
-> api_haystack_needs_optin {
address: "<address>",
assetId: 31566704,
network: "mainnet"
}
Returns: { address, assetId, needsOptIn: true/false, network }
Algorand MCP エージェント スワップ ワークフロー
ステップ 1:ウォレットを確認
-> wallet_get_info { network }
ステップ 2:オプトインを確認(ASA にスワップする場合)
-> api_haystack_needs_optin { address, assetId, network }
-> 必要な場合:wallet_optin_asset { assetId, network }
ステップ 3:見積もりをプレビュー(推奨 — 実行前にユーザーに表示)
-> api_haystack_get_swap_quote { fromASAID, toASAID, amount, address, network }
-> ユーザーに提示:予想される出力、USD 値、ルート、価格インパクト
ステップ 4:ユーザーが確認 → 実行
-> api_haystack_execute_swap { fromASAID, toASAID, amount, slippage, network }
-> 確認済み結果と概要を返します
重要なルール:
- スワップ前に必ず
wallet_get_infoでウォレットを確認してください - 実行前に必ずユーザーに確認してください(見積もりの詳細を表示)
- 実行ツールはアクティブなウォレットを使用して署名を処理します。手動署名は不要です
- 開発中はデフォルトでテストネットを使用します。メインネットの前に確認してください
- 見積もりは時間に敏感です。ユーザーが確認した後、迅速に実行してください
重大:スワップ方向ルール
type パラメータは、amount が正確な入力か正確な出力かを決定します。これを間違えると、ユーザーが間違った金額を費やしたり、受け取ったりします。
ユーザーの意図を解析する方法
| ユーザーが言ったこと | 意味 | type | amount は | fromASAID | toASAID |
|---|---|---|---|---|---|
| "USDC で 10 ALGO を買う" | ちょうど 10 ALGO を獲得したい | "fixed-output" | 10000000(ALGO) | USDC | ALGO |
| "ALGO で 10 USDC を買う" | ちょうど 10 USDC を獲得したい | "fixed-output" | 10000000(USDC) | ALGO | USDC |
| "10 ALGO を USDC で売る" | ちょうど 10 ALGO を費やしたい | "fixed-input" | 10000000(ALGO) | ALGO | USDC |
| "10 ALGO を USDC にスワップする" | ちょうど 10 ALGO を費やしたい | "fixed-input" | 10000000(ALGO) | ALGO | USDC |
| "10 ALGO を使って USDC を買う" | ちょうど 10 ALGO を費やしたい | "fixed-input" | 10000000(ALGO) | ALGO | USDC |
| "10 ALGO で USDC を買う" | ちょうど 10 ALGO を費やしたい | "fixed-input" | 10000000(ALGO) | ALGO | USDC |
| "5 USDC をください" | ちょうど 5 USDC を獲得したい | "fixed-output" | 5000000(USDC) | (ユーザーに質問) | USDC |
ルール:
- 「X の Y を買う」 → ユーザーは出力として正確に X の Y を望んでいます →
type: "fixed-output"、amount= X(基本単位)、toASAID= Y - 「X の Y を売る/スワップする/変換する」 → ユーザーは入力として正確に X の Y を費やしたいと考えています →
type: "fixed-input"、amount= X(基本単位)、fromASAID= Y - 「X の Z で/で Y を買う」 → ユーザーが正確な入力支出を指定しています →
type: "fixed-input"、amount= X(基本単位)、fromASAID= Z - 曖昧な場合は、ユーザーに質問してください — 推測しないでください。方向を間違えると、費やす/受け取る金額が間違えます。
fixed-input vs fixed-output の動作
fixed-input:amountフィールドは、ユーザーが費やす正確な入力です。出力は市場価格に基づいて変動します。ユーザーは正確に何を払うかを知っています。fixed-output:amountフィールドは、ユーザーが受け取る正確な出力です。入力は市場価格に基づいて変動します。ユーザーは正確に何を獲得するかを知っています。
主な概念
- 金額は常に基本単位です(ALGO の場合は マイクロ Algo、ASA の場合は最小単位)
- ASA ID:0 = ALGO、31566704 = USDC など
- 見積もりタイプ:
fixed-input(デフォルト)— 入力金額を指定;fixed-output— 希望する出力を指定 - スリッページ:出力のパーセンテージ許容差(例:1 = 1%)。個別のホップではなく、最終出力に適用されます
- ルーティング:最適な価格設定のためにマルチホップおよび並列(コンボ)スワップをサポートします
参考ファイル
タスクに基づいて適切なファイルを読んでください:
| タスク | 参考 |
|---|---|
| クイックスタートと Algorand MCP ツール リファレンス | getting-started.md |
| スワップ見積もりの取得、価格表示 | quotes.md |
| Algorand MCP ツール経由でスワップを実行 | swaps.md |
| Algorand MCP ツール経由でスワップを自動化 | node-automation.md |
| ネットワーク、スリッページ、レート制限、ASA ID | configuration.md |
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- GoPlausible
- ライセンス
- MIT
- 最終更新
- 2026/4/19
Source: https://github.com/GoPlausible/algorand-mcp / ライセンス: MIT