mcpField
G
gate-exchange-flashswap

gate-exchange-flashswap

github.com/gateその他48143 回インストール18 週間前に更新
リポジトリ

gate-exchange-flashswap について

gate-cli で Gate Flash Swap による暗号資産交換を行うスキルです。単一通貨間と複数通貨の交換、ペアや上限の照会に対応し、実行前のプレビューと確認を行います。

主な機能

  1. 01単一通貨を別の通貨に交換
  2. 02一つの通貨を複数通貨に交換
  3. 03複数通貨を一つに集約
  4. 04対応ペアと上限の照会
  5. 05交換注文の確認

活用シーン

  1. 01BTCからUSDTへの交換をプレビュー
  2. 02一つの通貨で複数資産を購入
  3. 03複数資産を一つの通貨に集約
  4. 04交換上限や注文状況を確認

MCP 対応

gate-cli の flash-swap コマンドを使い、見積もり、対応ペア照会、注文作成、注文照会を行います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gate/gate-skills --skill gate-exchange-flashswap

インストール後、Claude Code で/gate-exchange-flashswapを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CHANGELOG.md
README.md
setup.sh
references/
gate-cli.md
mcp.md
scenarios.md

詳細

gate-cli の解決(バイナリパス)

gate-cli は次の順に解決します。(1) command -v gate-cli と gate-cli --version が成功すること、(2) 実行可能な場合は ${HOME}/.local/bin/gate-cli、(3) 実行可能な場合は ${HOME}/.openclaw/skills/bin/gate-cli。正式なルール:exchange-runtime-rules.md §4(または gate-runtime-rules.md §4)。

Gate Flash Swap

一般的なルール

⚠️ 停止してください — 先に共有ランタイムルールを読み、厳密に従う必要があります。 すべてのルールを読み終えるまで、いかなるツールも選択または呼び出してはいけません。これらのルールは最優先です。 → gate-runtime-rules.md をお読みください。

  • このスキルに明示的に記載された gate-cli コマンドのみを使用してください。 他のインターフェースで実行できる場合でも、ここに記載されていないコマンドをこれらのワークフローで実行してはいけません。

スキルの依存関係

使用する gate-cli コマンド

照会操作(読み取り専用)

  • gate-cli cex flash-swap order
  • gate-cli cex flash-swap pairs
  • gate-cli cex flash-swap orders
  • gate-cli cex flash-swap preview-many-to-one
  • gate-cli cex flash-swap preview-one-to-many
  • gate-cli cex flash-swap preview-v1

実行操作(書き込み)

  • gate-cli cex flash-swap create-many-to-one
  • gate-cli cex flash-swap create-one-to-many
  • gate-cli cex flash-swap create-v1
認証
  • 対話型のファイル設定: ホスト上で GATE_API_KEY と GATE_API_SECRET が両方とも設定されていない場合は、gate-cli config init を実行して、API キー、シークレット、プロファイル、デフォルト値のウィザードを完了します(gate-cli を参照)。
  • 環境変数/フラグ: 認証情報がすでに指定されている場合(例:ホスト上で GATE_API_KEY と GATE_API_SECRET の両方が設定されている場合、または対応している場合の --api-key/--api-secret)は、gate-cli config init は不要です。ユーザーにチャットでシークレットを貼り付けるよう求めてはいけません。
  • 権限: Fc:Write
  • ポータル: チャット以外でキーを作成またはローテーションしてください:https://www.gate.com/myaccount/profile/api-key/manage
インストールの確認
  • 必須: gate-cli(見つからない場合は、このスキルのディレクトリから sh ./setup.sh を実行してください。GATE_CLI_SETUP_MODE=release は任意です)。
  • 名前で gate-cli を呼び出す場合は、PATH に $HOME/.openclaw/skills/bin(または setup.sh がインストール先としているディレクトリ)を追加してください。
  • 認証情報: ホストに GATE_API_KEY と GATE_API_SECRET の両方が(空でない値で)設定されている場合、gate-cli config init を必須にしないでください。これらは gate-cli で有効な設定と同等です。両方が未設定または空の場合は、gate-cli config init を実行するか、スキルライブラリ内の該当するスキルで GATE_API_KEY/GATE_API_SECRET を設定するようオペレーターに注意を促してください(ユーザーにチャットでシークレットを貼り付けるよう求めてはいけません)。
  • 動作確認: CLI が想定どおりに動作するまで、認証を必要とする呼び出しを進めてはいけません(例:このスキルの gate-cli --version、または読み取り専用の gate-cli cex ... コマンド)。変更を伴う操作の前に、認証情報が解決されることを確認してください。

実行モード

references/gate-cli.md を読み、厳密に従ってから、このスキルのフラッシュスワップのワークフローを実行してください。

  • SKILL.md はルーティングとシナリオの境界を定めます。
  • references/gate-cli.md は、プレビュー/作成の順序、確認ゲート、縮退時の処理に関する、正式な gate-cli 実行仕様です。

トリガー条件

ユーザーのリクエストが以下のいずれかに該当する場合、このスキルが有効になります。

  • ある暗号資産を別の暗号資産に交換/変換したい
  • 1つの通貨を使って複数の暗号資産を一度に購入したい(例:「BTCを1u、ETHを2u購入」)
  • 複数の暗号資産を1つの通貨に売却したい(例:「BTCを1、ETHを2、USDTに売却」)
  • フラッシュスワップに対応している通貨について尋ねる
  • スワップの最小/最大金額や制限について尋ねる
  • フラッシュスワップの注文履歴や特定の注文の詳細を求める
  • 「flash swap」、「convert」、「quick exchange」、「swap」、「instant swap」というキーワードを使用する

クイックスタート

よくある使用例:

  1. 1対1のスワップ:「BTCを1、USDTに売却」
  2. 複数のコインを購入:「BTCを1u、ETHを2u、SOLを3u購入」
  3. 複数のコインを売却:「BTCを1、ETHを2、SOLを3、USDTに売却」
  4. 通貨ペアを確認:「フラッシュスワップ対応の通貨ペアを表示して」
  5. 注文履歴:「フラッシュスワップの注文を表示して」

ドメイン知識

フラッシュスワップは、Gate が提供する暗号資産のクイック交換サービスです。ユーザーは注文を出してマッチングを待つことなく、リアルタイムの為替レートで暗号資産を即座に別の暗号資産へ変換できます。

スワップモード:

  • 1対1:1つの通貨を別の1つの通貨に交換します(例:BTC → USDT)
  • 1対多:1つの通貨を複数の通貨に交換します(例:USDT → BTC + ETH + SOL)
  • 多対1:複数の通貨を1つの通貨に交換します(例:BTC + ETH + SOL → USDT)

主な概念:

  • sell_asset / buy_asset:売却側と購入側の通貨シンボル
  • sell_amount / buy_amount:どちらか一方を指定すると、API がもう一方を計算します。1対多では対象ごとに sell_amount を指定し、多対1では原資産ごとに sell_amount を指定します
  • quote_id:プレビュー API が返す一意の識別子で、注文の作成に必要です。正確な有効期間はレスポンスの valid_timestamp に示されます。このフィールドを必ず確認し、固定の有効期間を想定しないでください
  • 注文ステータス:1 = 成功、2 = 失敗

API フィールドの命名規則:

  • gate-cli cex flash-swap pairs は snake_case のフィールドを返します:sell_min_amount、sell_max_amount、buy_min_amount、buy_max_amount、currency_pair、sell_currency、buy_currency
  • gate-cli cex flash-swap preview-v1 および複数通貨のプレビュー API は、一部の環境で camelCase のフィールドを返します(例:sellMinAmount)。固定の命名規則を想定せず、必ずレスポンスから実際のフィールド名を確認してください
  • gate-cli cex flash-swap orders および gate-cli cex flash-swap order は snake_case のフィールドを返します:sell_currency、buy_currency、sell_amount、buy_amount、create_time

データ型に関する注意:order_id は API レスポンスで 文字列 として返されます。quote_id も文字列です。

MCP ツール一覧:

ツール種類説明
gate-cli cex flash-swap preview-v1プレビュー1対1スワップの見積もりプレビュー
gate-cli cex flash-swap create-v1作成1対1スワップ注文の作成(quote_id が必要)
gate-cli cex flash-swap preview-one-to-manyプレビュー1対多スワップの見積もりプレビュー
gate-cli cex flash-swap create-one-to-many作成1対多スワップ注文の作成
gate-cli cex flash-swap preview-many-to-oneプレビュー多対1スワップの見積もりプレビュー
gate-cli cex flash-swap create-many-to-one作成多対1スワップ注文の作成
gate-cli cex flash-swap pairsクエリ対応しているフラッシュスワップの通貨ペアと制限を一覧表示
gate-cli cex flash-swap ordersクエリフラッシュスワップの注文履歴を照会
gate-cli cex flash-swap orderクエリID を指定して単一のフラッシュスワップ注文を照会

ワークフロー

ステップ 1:ユーザーの意図を特定する

ユーザーのリクエストを分析し、実行するフラッシュスワップ操作を判断します。

意図の分類:

ユーザーの意図モードプレビュー用ツール作成用ツール
あるコインを別のコインに交換する(例:「1 BTC を売って USDT にする」)one-to-onegate-cli cex flash-swap preview-v1gate-cli cex flash-swap create-v1
個別の確認なしでワンクリック交換する(例:「100 USDT を直接 GT に交換する」)one-to-one-autogate-cli cex flash-swap preview-v1 → gate-cli cex flash-swap create-v1—
1つの通貨で複数のコインを購入する(例:「BTC を 1u、ETH を 2u 購入する」)one-to-manygate-cli cex flash-swap preview-one-to-manygate-cli cex flash-swap create-one-to-many
1つの通貨を比率に応じて複数の通貨に分割する(例:「1000 USDT を BTC と ETH に半分ずつ分ける」)one-to-many-splitgate-cli cex flash-swap preview-one-to-manygate-cli cex flash-swap create-one-to-many
複数のコインを指定した数量で購入する(例:「USDT で 0.1 BTC と 1 ETH を購入する」)one-to-many-buygate-cli cex flash-swap preview-one-to-manygate-cli cex flash-swap create-one-to-many
複数のコインを1つの通貨に売却する(例:「1 BTC と 2 ETH を売って USDT にする」)many-to-onegate-cli cex flash-swap preview-many-to-onegate-cli cex flash-swap create-many-to-one
特定のコインの保有分をすべて1つの通貨にまとめる(例:「保有する BTC、ETH、DOGE をすべて USDT に交換する」)many-to-one-allgate-cli cex flash-swap preview-many-to-onegate-cli cex flash-swap create-many-to-one
複数通貨の交換をプレビューのみ行う(例:「保有する BTC と ETH で GT をいくら受け取れますか?」)many-to-one-previewgate-cli cex flash-swap preview-many-to-one—
対応するフラッシュスワップペアを照会するquerygate-cli cex flash-swap pairs—
フラッシュスワップの注文一覧を照会するquerygate-cli cex flash-swap orders—
ID で個別のフラッシュスワップ注文を照会するquerygate-cli cex flash-swap order—
最新の注文結果を確認する(例:「スワップは成功しましたか?」)verify-ordergate-cli cex flash-swap order—

抽出する主なデータ:

  • intent:「one_to_one」/「one_to_one_auto」/「one_to_many」/「one_to_many_split」/「one_to_many_buy」/「many_to_one」/「many_to_one_all」/「many_to_one_preview」/「list_pairs」/「list_orders」/「get_order」/「verify_order」
  • sell_asset / buy_asset:交換に関わる通貨
  • sell_amount / buy_amount:ユーザーが指定した数量
ステップ 2:スワップ数量を事前検証する(プレビューの前に実施)

プレビュー API を呼び出す前に、不要な API 呼び出しを避けるため、ユーザーの数量がペアの最小/最大制限内にあるかを検証します。

次の内容で gate-cli cex flash-swap pairs を呼び出します:

  • currency:ユーザーのリクエストにある sell_asset または buy_asset

抽出する主なデータ:

  • sell_min_amount / sell_max_amount:売却側で許可される範囲
  • buy_min_amount / buy_max_amount:購入側で許可される範囲

検証ロジック:

  • ユーザーの sell_amount が sell_min_amount 未満の場合、数量が最小値を下回っていることを伝え、プレビューには進まないでください
  • ユーザーの sell_amount が sell_max_amount を超える場合、数量が最大値を超えていることを伝えてください
  • ペアが見つからない場合、その通貨はフラッシュスワップに対応していません

レイテンシーを最小限に抑えるため、ユーザーが「ワンクリック」または「直接」スワップを明示的にリクエストした場合は、このステップを省略してください。

ステップ 3:プレビュー — 1 対 1 スワップ(intent = one_to_one または one_to_one_auto の場合)

gate-cli cex flash-swap preview-v1 を次の項目とともに呼び出します。

  • sell_asset(必須、文字列):売却する資産。例:「BTC」
  • buy_asset(必須、文字列):購入する資産。例:「USDT」
  • sell_amount(文字列):売却する数量。sell_amount と buy_amount のいずれかを指定します
  • buy_amount(文字列):購入する数量。sell_amount と buy_amount のいずれかを指定します

抽出する主なデータ:

  • quote_id:注文の作成に必要です
  • sell_asset / sell_amount:確定した売却側の情報
  • buy_asset / buy_amount:計算された購入側の情報
  • price:交換レート
  • valid_timestamp:見積もりの有効期限

one_to_one intent の場合:プレビューをユーザーに提示し、作成に進む前に確認を求めます。

one_to_one_auto intent の場合:ユーザーは「direct」または「one-click」実行を明示的にリクエストしており、スワップを事前承認しています。個別の確認を省略し、直ちにステップ 4 に進みます。ユーザーからの直接的なリクエストが確認に相当するため、これは安全性ルールに準拠しています。ただし:プレビューでエラー(code != 0)が返された場合は、ステップ 4 に進まず、直ちにエラーをユーザーに報告してください。

ステップ 4:作成 — 1 対 1 スワップ(ステップ 3 の後にユーザーが確認した場合、または one_to_one_auto の場合は自動実行)

前提条件:ステップ 3 で code == 0 と有効な quote_id が返されている必要があります。ステップ 3 が失敗した場合(code != 0 の場合)は、このステップを実行しないでください。quote_id を決して捏造しないでください。

本文の JSON 文字列とともに gate-cli cex flash-swap create-v1 を呼び出します。

  • quote_id(必須、文字列):プレビューのレスポンスから取得します。API が返した実際の値を使用する必要があります
  • sell_asset(必須、文字列):売却する資産
  • sell_amount(必須、文字列):売却する数量
  • buy_asset(必須、文字列):購入する資産
  • buy_amount(必須、文字列):購入する数量

抽出する主なデータ:

  • id:作成された注文 ID
  • status:1 = 成功、2 = 失敗
  • sell_asset / sell_amount / buy_asset / buy_amount:確定した数量
  • price:実行されたレート
  • create_time:注文の作成時刻
  • error.code / error.message:HTTP ステータスが 200 の場合でもエラーを確認します

注文結果の確認:作成後、status フィールドを確認します。

  • status == 1 の場合:スワップが成功したことをユーザーに伝え、受け取った最終的な buy_amount を表示します
  • status == 2 の場合:スワップが失敗したことをユーザーに伝え、再度プレビューして試すよう提案します
  • error.code != 0 の場合:具体的なエラーメッセージをユーザーに報告します
ステップ 5:プレビュー — 1 対多スワップ(intent = one_to_many、one_to_many_split、または one_to_many_buy の場合)

one_to_many_split の場合:ユーザーは合計数量と配分比率(例:「1000 USDT を半分ずつ BTC と ETH に分ける」)を指定します。API を呼び出す前に、対象ごとの sell_amount を計算します。

one_to_many_buy の場合:ユーザーは通貨ごとの目標 buy_amount(例:「0.1 BTC と 1 ETH を購入する」)を指定します。API に必要な売却数量を計算させるため、パラメーター配列では sell_amount の代わりに buy_amount フィールドを使用します。

本文の JSON 文字列とともに gate-cli cex flash-swap preview-one-to-many を呼び出します。

  • params(必須、配列):各要素には以下が含まれます。
  • sell_asset(必須、文字列):売却元の通貨(すべて同じ。例:「USDT」)
  • sell_amount(文字列):この対象に使用する売却元通貨の数量
  • buy_asset(必須、文字列):対象通貨(例:「BTC」、「ETH」)
  • buy_amount(文字列):sell_amount の代替

抽出する主なデータ:

  • orders[]:プレビュー結果の配列。各要素に quote_id、sell_amount、buy_amount、price、error が含まれます
  • total_consume_amount:消費される売却元通貨の合計数量
  • 各注文の error.code を確認します。ゼロ以外の場合、その項目の見積もり取得に失敗しています

プレビュー全体を表にして提示し、失敗した項目があれば強調表示します。確認を求めます。

ステップ 6:作成 — 1対多のスワップ(ユーザーがステップ 5 を確認した後)

重要:プレビューで失敗した項目(error.code != 0 または quote_id がない項目)は除外してください。 本文の JSON 文字列を指定して gate-cli cex flash-swap create-one-to-many を呼び出します。

  • params(必須、配列):各要素には以下を含めます。
  • sell_asset(必須、文字列):売却元の通貨
  • sell_amount(必須、文字列):売却する数量
  • buy_asset(必須、文字列):購入先の通貨
  • buy_amount(必須、文字列):購入する数量(プレビューから取得)
  • quote_id(文字列):プレビューのレスポンスから取得

抽出する主なデータ:

  • orders[]:作成された注文の配列。各注文には id、status、error が含まれます。
  • total_consume_amount:実際の合計消費量
  • 注文ごとの失敗を確認するため、各注文の error.code を確認します。
ステップ 7:プレビュー — 多対1のスワップ(intent = many_to_one、many_to_one_all、または many_to_one_preview の場合)

many_to_one_all の場合:ユーザーは指定した通貨の保有分をすべてまとめることを希望しています。プレビューの前に、ユーザーの現物口座の残高を照会し、各通貨の実際の数量を確認してください。フラッシュスワップの最小数量(gate-cli cex flash-swap pairs の sell_min_amount)を下回る残高の通貨は除外します。 本文の JSON 文字列を指定して gate-cli cex flash-swap preview-many-to-one を呼び出します。

  • params(必須、配列):各要素には以下を含めます。
  • sell_asset(必須、文字列):売却元の通貨(例:「BTC」、「ETH」)
  • sell_amount(文字列):売却する数量
  • buy_asset(必須、文字列):購入先の通貨(すべて同じ通貨。例:「USDT」)
  • buy_amount(文字列):sell_amount の代替

抽出する主なデータ:

  • orders[]:プレビュー結果の配列。quote_id、sell_amount、buy_amount、price、error が含まれます。
  • total_acquire_amount:受け取る購入先通貨の合計数量
  • 注文ごとの error.code を確認します。ゼロ以外の場合、その項目は失敗です。

プレビュー全体を表にして提示し、失敗した項目があれば強調表示してください。

many_to_one_preview の場合:期待される合計 buy_amount(成功したすべての項目の合計)を提示し、作成には進まないでください。これはプレビューのみであることをユーザーに伝えます。

many_to_one および many_to_one_all の場合:作成に進む前に、ユーザーに確認を求めます。

ステップ 8:作成 — 多対1のスワップ(ユーザーがステップ 7 を確認した後)

重要:プレビューで失敗した項目は除外してください。失敗した項目(例:buy_amount: "0")を含めると、リクエスト全体が code: 4 で拒否されます。

本文の JSON 文字列を指定して gate-cli cex flash-swap create-many-to-one を呼び出します。

  • params(必須、配列):各要素には以下を含めます。
  • sell_asset(必須、文字列):売却元の通貨
  • sell_amount(必須、文字列):売却する数量
  • buy_asset(必須、文字列):購入先の通貨
  • buy_amount(必須、文字列):購入する数量(プレビューから取得)
  • quote_id(文字列):プレビューのレスポンスから取得

抽出する主なデータ:

  • orders[]:作成された注文の配列。各注文には id、status、error が含まれます。
  • total_acquire_amount:実際の合計受取量
ステップ 9:フラッシュスワップのペアを照会(intent = list_pairs の場合)

以下を指定して gate-cli cex flash-swap pairs を呼び出します。

  • currency(任意、文字列):通貨シンボルで絞り込みます。
  • limit(任意、数値):返す最大件数(デフォルトは 1000)
  • page(任意、数値):ページ番号

大量の結果に関する警告:通貨で絞り込まない場合、数千行が返されることがあります。合計件数を要約し、20 ペアのサンプルを表示して、通貨での絞り込みを提案してください。

抽出する主なデータ:

  • items[]:通貨ペアの一覧。currency_pair、sell_currency、buy_currency、sell_min_amount、sell_max_amount、buy_min_amount、buy_max_amount が含まれます。
ステップ 10:フラッシュスワップの注文履歴を照会する(intent = list_orders の場合)

呼び出す前に、status パラメーターが指定されている場合は値を検証します。有効な値は 1(成功)と 2(失敗)のみです。

次のコマンドを呼び出します:gate-cli cex flash-swap orders

  • status(省略可、数値):1 = 成功、2 = 失敗
  • sell_currency(省略可、文字列):売却通貨で絞り込む
  • buy_currency(省略可、文字列):購入通貨で絞り込む
  • limit(省略可、数値):最大レコード数
  • page(省略可、数値):ページ番号
  • reverse(省略可、ブール値):true の場合は新しい順(デフォルト)

抽出する主要なデータ:

  • id、sell_currency、buy_currency、sell_amount、buy_amount、price、status、create_time を含む注文一覧
ステップ 11:単一の注文を照会する(intent = get_order または verify_order の場合)

次のコマンドを呼び出します:gate-cli cex flash-swap order

  • order_id(必須、数値):照会する注文 ID

API が 404 を返した場合は、注文が見つからなかったことをユーザーに伝えます。

verify_order の場合:注文を取得した後、status を確認します。

  • status == 1 の場合:スワップが成功したことを確認し、実際に受け取った最終的な buy_amount を表示します
  • status == 2 の場合:スワップが失敗したことを伝え、再度プレビューして新しい注文を出すよう提案します

抽出する主要なデータ:

  • 注文の全詳細:id、sell_currency、buy_currency、sell_amount、buy_amount、price、status、create_time
ステップ 12:結果を整形して提示する

適切なレポートテンプレートを使って結果を整形します。スワップ操作では、必ず次の内容を表示します。

  1. 見積もりの詳細を含むプレビュー概要テーブル
  2. 作成後に、注文 ID、ステータス、および項目ごとのエラーがあればそれを表示します

エラー処理

エラーの状況対応
地域/コンプライアンス上の制限(コード -2)重大:API は {"code":-2,"message":"This service is not supported in your region"} を返します。これは、このユーザーの地域ではフラッシュスワップを利用できないことを意味します。すべての操作を直ちに停止し、作成処理に進まず、「コンプライアンス上の制限により、お客様の地域ではフラッシュスワップを利用できません」とユーザーに伝えてください。結果を捏造しないでください
プレビュー失敗(0 以外のコード)重大:プレビュー API が code != 0 を返した場合、操作は失敗しています。作成手順に進まないでください。quote_id を捏造しないでください。正確なエラーコードとメッセージをユーザーに報告してください。API がエラーを返した場合に「成功」と表示してはいけません
最小金額未満(sell_amount < sell_min_amount)まず gate-cli cex flash-swap pairs を照会してください。最小金額未満の場合は、正確な最小金額をユーザーに伝え、プレビューを呼び出さないでください
最大金額超過(sell_amount > sell_max_amount)金額が許容される最大値を超えていることをユーザーに伝え、上限を示してください
見積もりの有効期限切れ(コード 1052)quote_id の有効期限が切れています。プレビューを再実行して新しい見積もりを取得し、その後すぐに注文を作成してください
正確な見積もりを取得できない(コード 4 / 400001 / 400007)これらはサーバーから返される見積もり関連のエラーです。code 4 はリクエスト全体の拒否を示します(多くの場合、失敗した項目が含まれていることが原因です)。400001 と 400007 は項目ごとのエラーで、サーバーがこの通貨ペア/金額の価格を算出できないことを意味します。金額の調整、別の通貨ペアの試行、または失敗した項目の削除を提案してください
複数通貨の作成:リクエスト全体が拒否された(コード 4)プレビューに失敗した項目が buy_amount: "0" として含まれていることが原因と考えられます。プレビューの error.code != 0 に該当する項目をすべて削除し、再試行してください
注文ステータス == 2(失敗)スワップに失敗したことをユーザーに伝えてください。パラメーターを調整して再度プレビューし、もう一度試すよう提案してください
注文が見つからない(404)order_id は存在しません。ID を確認するか、まず注文一覧を照会するよう提案してください
MCP サービスへの接続失敗ネットワークまたは VPN を確認するようユーザーに促し、後でもう一度試すよう提案してください
order_id が指定されていない注文 ID を指定するようユーザーに促すか、まず注文一覧を照会してください
クエリ結果が空データが見つからなかったことをユーザーに伝え、フィルターの調整を提案してください
対応していない通貨指定された通貨はフラッシュスワップで利用できないことをユーザーに伝えてください
無効なステータス値ステータスに指定できるのは 1(成功)または 2(失敗)のみです。API を呼び出す前に、その他の値を拒否してください
大量の結果(数千行)合計件数を要約し、サンプルを 20 件表示して、通貨で絞り込むよう提案してください
many_to_one_all で残高が最小金額を下回るすべての保有資産を統合する際は、残高が sell_min_amount 未満の通貨をスキップし、除外した通貨をユーザーに伝えてください

安全ルール

  • 結果を決して捏造しないでください:API 呼び出しでエラー(code != 0)が返された場合、実際のエラーを必ずユーザーに報告してください。成功したような応答、偽の注文 ID、偽の quote_id、偽の取引結果を決して捏造しないでください。これが最も重要な安全ルールです。
  • プレビューに失敗した後は決して処理を続行しないでください:プレビュー API で何らかのエラー(地域制限を示す code -2 を含む code != 0)が返された場合、直ちに停止してください。作成 API を呼び出してはいけません。quote_id(例:「AUTO-GT-001」)を捏造してはいけません。エラーを正直に報告してください。
  • 作成前に必ずプレビューしてください:すべてのスワップで、最初にプレビューを行う必要があります。標準的なフローでは、見積もりをユーザーに表示し、明示的な確認を待ってから作成 API を呼び出してください。one_to_one_auto モードの場合に限り、ユーザーが直接スワップ(例:「直接スワップ」「ワンクリック」)を明示的に要求している場合は、事前承認済みの確認とみなされます。その場合は、別途確認を求めず、プレビューの直後に作成へ進んでください。
  • 確認なしに書き込み操作を行わないでください:(a)ユーザーがプレビュー結果を明示的に確認した場合、または(b)ユーザーがワンクリック/直接スワップを明示的に要求した場合を除き、作成/注文 API を決して呼び出してはいけません。ペア一覧、注文一覧、注文取得などの照会操作には確認は不要です。
  • プレビューに失敗した項目を除外してください:複数通貨の注文を作成する場合、プレビューに成功した項目(error.code == 0)のみを含めてください。
  • 機密情報を開示しないでください:API Key、Secret、認証トークンを決して出力してはいけません。
  • 金額はそのまま表示してください:API の応答に含まれる金額を丸めたり変更したりしないでください。
  • 高額の場合は警告してください:スワップの合計額が USDT 換算で 10,000 を超える場合は、ユーザーに再確認するよう促してください。
  • 古い確認の取り扱い:ユーザーが以前のプレビューを確認した場合、そのプレビュー応答の valid_timestamp を現在時刻が過ぎていないか確認してください。期限切れの場合は、作成前に自動的に再プレビューを行い、新しい見積もりを取得してください。

判断ロジックの概要

条件アクションツール
ユーザーがあるコインを別のコインに交換したい1対1のプレビューを行い、確認後に作成するgate-cli cex flash-swap preview-v1 → gate-cli cex flash-swap create-v1
ユーザーが「直接」または「ワンクリック」での交換を希望する個別の確認なしで、プレビューと作成を自動で行うgate-cli cex flash-swap preview-v1 → gate-cli cex flash-swap create-v1
ユーザーが確認のために以前の quote_id を指定する指定された quote_id を使って注文を作成するgate-cli cex flash-swap create-v1
交換金額が不自然に少ないプレビューの前に、ペアの最小金額に照らして事前検証するgate-cli cex flash-swap pairs
ユーザーが1つの通貨で複数のコインを購入したい1対多のプレビューを行い、その後に作成するgate-cli cex flash-swap preview-one-to-many → gate-cli cex flash-swap create-one-to-many
ユーザーが1つの通貨を比率で分割したい(例:「半分ずつ」)対象ごとの sell_amount を計算し、その後に1対多のプレビューを行うgate-cli cex flash-swap preview-one-to-many → gate-cli cex flash-swap create-one-to-many
ユーザーが購入数量を指定する(例:「BTCを0.1、ETHを1購入」)パラメーターに buy_amount を使用し、1対多のプレビューを行うgate-cli cex flash-swap preview-one-to-many → gate-cli cex flash-swap create-one-to-many
ユーザーが複数のコインを1つの通貨にまとめて売却したい多対1のプレビューを行い、その後に作成するgate-cli cex flash-swap preview-many-to-one → gate-cli cex flash-swap create-many-to-one
ユーザーが特定の保有資産を「すべて」まとめたい残高を照会し、最小金額でフィルタリングしてから、多対1のプレビューを行い、その後に作成するgate-cli cex flash-swap pairs → gate-cli cex flash-swap preview-many-to-one → gate-cli cex flash-swap create-many-to-one
ユーザーが実行を希望せずに「いくら受け取れますか」と尋ねる多対1のプレビューのみを実行し、buy_amount を合計する。作成は行わないgate-cli cex flash-swap preview-many-to-one
プレビューの項目に error.code != 0 が含まれているユーザーに警告し、作成前に失敗した項目を除外する—
プレビューでコード -2(地域制限)が返された直ちに停止する。作成しない。ユーザーの地域ではフラッシュスワップを利用できないことを伝える—
プレビューでゼロ以外のコードが返された停止する。作成しない。quote_id を捏造しない。正確なエラーをユーザーに報告する—
作成時にコード 1052(見積もりの期限切れ)が返された新しい見積もりを取得するため、プレビューを再実行するプレビューツール
作成時に項目ごとのエラー(400001/400007)が返された失敗した項目を報告し、金額の調整を提案する—
複数通貨の作成がコード 4 で拒否された失敗したプレビュー項目を削除して再試行する作成ツール
作成後の注文ステータスが 2スワップが失敗したことをユーザーに伝え、再試行を提案する—
ユーザーが「スワップは成功しましたか」と尋ねるID で注文を照会し、ステータスフィールドを確認するgate-cli cex flash-swap order
ユーザーが対応ペアや制限について尋ねるペア一覧を照会するgate-cli cex flash-swap pairs
ユーザーが注文履歴を照会する注文一覧を照会するgate-cli cex flash-swap orders
ユーザーが ID で特定の注文を照会する単一の注文を照会するgate-cli cex flash-swap order
注文が見つからない(404)ユーザーに伝え、ID の確認を提案する—
ユーザーが無効なステータスフィルターを指定する拒否し、有効な値は 1 または 2 であることを伝える—

レポートテンプレート

タイムスタンプ形式:すべての {timestamp} プレースホルダーには ISO 8601 形式を使用します:YYYY-MM-DD HH:mm:ss UTC。

1対1のプレビューレポート
## Flash Swap Preview (One-to-One)

**Quote ID**: {quote_id}
**Valid Until**: {valid_timestamp}

| Sell | Amount | Buy | Amount | Rate |
|------|--------|-----|--------|------|
| {sell_asset} | {sell_amount} | {buy_asset} | {buy_amount} | {price} |

Proceed with this swap? (Yes/No)
1対1の注文レポート
## Flash Swap Order Created

**Order ID**: {id}
**Status**: {status_text}
**Created At**: {create_time}

| Sell | Amount | Buy | Amount | Rate |
|------|--------|-----|--------|------|
| {sell_asset} | {sell_amount} | {buy_asset} | {buy_amount} | {price} |
複数通貨のプレビューレポート(1対多/多対1)
## Flash Swap Preview ({mode})

**Total {direction}**: {total_amount} {currency}

| # | Sell | Sell Amount | Buy | Buy Amount | Rate | Quote ID | Status |
|---|------|-------------|-----|------------|------|----------|--------|
| {n} | {sell_asset} | {sell_amount} | {buy_asset} | {buy_amount} | {price} | {quote_id} | {status} |

{failed_count} item(s) failed to get a quote and will be excluded from the order.
Proceed with {success_count} successful item(s)? (Yes/No)
複数通貨の注文レポート
## Flash Swap Orders Created ({mode})

**Total {direction}**: {total_amount} {currency}

| # | Order ID | Sell | Sell Amount | Buy | Buy Amount | Status | Error |
|---|----------|------|-------------|-----|------------|--------|-------|
| {n} | {id} | {sell_asset} | {sell_amount} | {buy_asset} | {buy_amount} | {status_text} | {error_message} |

{success_count}/{total_count} orders succeeded.
ペア一覧レポート
## Gate Flash Swap Supported Pairs

**Query Time**: {timestamp}
**Filter**: {currency filter or "None"}

| Pair | Sell Currency | Buy Currency | Sell Min | Sell Max |
|------|---------------|--------------|----------|----------|
| {currency_pair} | {sell_currency} | {buy_currency} | {sell_min_amount} | {sell_max_amount} |

Total: {total} pairs.
注文一覧レポート
## Gate Flash Swap Order History

**Query Time**: {timestamp}
**Filters**: Status={status}, Sell={sell_currency}, Buy={buy_currency}

| Order ID | Sell | Sell Amount | Buy | Buy Amount | Status | Created At |
|----------|------|-------------|-----|------------|--------|------------|
| {id} | {sell_currency} | {sell_amount} | {buy_currency} | {buy_amount} | {status_text} | {create_time} |

Total: {total} records.
注文詳細レポート
## Gate Flash Swap Order Details

| Field | Value |
|-------|-------|
| Order ID | {id} |
| Sell Currency | {sell_currency} |
| Sell Amount | {sell_amount} |
| Buy Currency | {buy_currency} |
| Buy Amount | {buy_amount} |
| Exchange Rate | {price} |
| Status | {status_text} |
| Created At | {create_time} |

コメント