mcpField
G
gate-exchange-transfer

gate-exchange-transfer

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

gate-exchange-transfer について

gate-exchange-transfer は、Gate の取引口座間で資金を移動するスキルです。実行前に送金元残高を確認し、送金案を提示して明示的な確認を求めます。

主な機能

  1. 01Gate の5種類の口座間送金
  2. 02送金前の送金元残高確認
  3. 03未指定時に送金先から通貨を補完
  4. 04送金案の提示と実行前確認
  5. 05残高不足や口座モードの不整合に対応

活用シーン

  1. 01現物口座から無期限先物口座へ USDT を移動
  2. 02口座間送金前に利用可能残高を確認
  3. 03実行前に決済通貨との不一致を解消

MCP 対応

gate-cli を使って口座残高を照会し、Gate の送金操作を呼び出します。同一 UID 内の口座間送金に限られ、メイン口座とサブ口座間の送金には対応しません。

インストール

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

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

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

同梱ファイル

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

.clawhubignore
CHANGELOG.md
README.md
setup.sh
references/
gate-cli.md
gate-runtime-rules.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 Exchange Transfer(内部振替)

一般ルール

⚠️ 停止 — 続行する前に、共有ランタイムルールを必ず読み、厳守してください。 すべてのルールを読み終えるまで、ツールを選択または呼び出さないでください。これらのルールが最優先です。 → ./references/gate-runtime-rules.md を読んでください

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

Gate 取引アカウント間で、同一 UID の内部振替を実行します。対象は 現物、分離マージン、無期限契約、受渡契約、オプションです。単一の実行エンドポイントは POST /wallet/transfers です(MCP: gate-cli cex wallet transfer create)。 対象範囲(フェーズ 1)

  • 対応:内部振替のみ(同一 UID、上記のアカウント種別間)。
  • 非対応:メインアカウントからサブアカウント、サブアカウントからメインアカウント、サブアカウント間。

スキルの依存関係

使用する gate-cli コマンド

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

  • gate-cli cex delivery account book
  • gate-cli cex futures account book
  • gate-cli cex margin account book
  • gate-cli cex options account book
  • gate-cli cex spot account book

実行操作(書き込み)

  • gate-cli cex wallet transfer create
認証
  • 対話式のファイル設定: ホスト上で GATE_API_KEY と GATE_API_SECRET が両方とも設定されていない場合は、gate-cli config init を実行して、API キー、シークレット、プロファイル、デフォルト設定のウィザードを完了してください(gate-cli を参照)。
  • 環境変数/フラグ: 認証情報がすでに指定されている場合は、gate-cli config init は不要です。たとえば、ホスト上で GATE_API_KEY と GATE_API_SECRET の両方が設定されている場合や、対応している箇所で --api-key / --api-secret が指定されている場合です。チャットでシークレットを貼り付けるようユーザーに求めてはなりません。
  • API キーが必要です:はい
  • 権限: Delivery:Read、Fx:Read、Margin:Read、Options:Read、Spot:Read、Wallet:Write
  • ポータル: チャット外でキーを作成またはローテーションしてください:https://www.gate.com/myaccount/profile/api-key/manage
インストール確認
  • 必須: gate-cli(見つからない場合は、このスキルディレクトリから sh ./setup.sh を実行してください。GATE_CLI_SETUP_MODE=release は任意です)。
  • gate-cli を名前で呼び出す場合は、$HOME/.openclaw/skills/bin(または setup.sh がインストールするディレクトリ)を PATH に追加してください。
  • 認証情報: ホストに 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 実行契約です。

前提条件

前提条件満たされていない場合
ユーザーがログイン済みAPI を呼び出さず、ログインを促します(例外フロー)。
アカウントモードが判明しているコンテキストから推測するか、デフォルトで従来モードとします:現物 ↔ USDT 無期限。統合/取引アカウントの高度なモードでは、取引アカウント ↔ BTC 無期限とします。
送金元の残高を確認できるドラフトを表示する前に、from アカウントの残高 API を呼び出します。利用できない場合は、ウェブで確認するようユーザーに促します。

4 つの要素

すべての内部送金は、4 つの要素で完全に指定されます。アシスタントは送金ドラフトを表示する前に、これらを特定するか推測する必要があります。

要素API パラメーター必須となる場合備考
送金元from常にspot | margin | futures | delivery | options
送金先to常にfrom と同じ列挙値
通貨currency常にUSDT、BTC など(プラットフォームが対応する通貨)。指定がない場合 → 送金先に基づいて自動入力(case2)。
金額amount常に文字列、0 より大きく、小数点以下 8 桁まで。指定がない場合 → ユーザーに確認(case8)。

条件付きパラメーター

  • margin:from または to が margin の場合、currency_pair が必要です(例:BTC_USDT)。
  • futures / delivery:from または to が futures または delivery の場合、settle(usdt | btc)が必要です。

公開 API(フェーズ 1)

エンドポイントメソッド説明レート制限
/wallet/transfersPOST同一 UID 内の内部送金80 req/10s

ツールの対応関係

グループツール(jsonrpc: call.method)
メインアカウントの内部送金gate-cli cex wallet transfer create

ケース一覧

ケースシナリオアクション
case14 つの要素がすべて指定されている送金ドラフトを表示 → 確認 → API を呼び出す → 送金結果レポート
case2通貨が指定されていない送金先アカウントに基づいて通貨を自動入力 → case1 と同様
case3送金完了(API 成功)送金結果レポートを出力し、商品を提案
case4残高不足事前確認に失敗した場合は API を呼び出さず、不足額を表示して入金または調整を提案
case5送金元/送金先が指定されていない、または意図が曖昧不足情報のカードを表示し、API を呼び出さない
case6アカウントモードの不整合(例:取引アカウント → USDT 無期限は不可)説明し、代替手順を提案
case7通貨と送金先の不整合(例:USDT を BTC 無期限へ送金)自動修正するか、修正を促す → その後 case1
case8金額が指定されていない金額を尋ねる。ユーザーが回答したら case1/case2 に進む
case9ドラフトの提示後にユーザーがキャンセルまたは拒否承知した旨を伝え、API を呼び出さない
case10確認が曖昧、または古くなっているドラフトを再提示し、「Confirm」/「Yes」と明示的に確認するよう求め、実行しない
case11レート制限/サービスエラーむやみに再試行せず、後で再試行するかウェブ UI を使用するよう促す

送金ドラフト(実行前に必須)

gate-cli cex wallet transfer create を呼び出す前に、送金ドラフトを出力し、直後のユーザーのターンで明示的な確認を待ちます。

ドラフトの内容

  • from(アカウント名)
  • to(アカウント名)
  • currency
  • amount
  • 該当する場合:settle(futures/delivery 用)、currency_pair(margin 用)

確認ルール

  • 確認は1 回限りとして扱います。ユーザーが金額、通貨、または送金方向を変更した場合は、新しいドラフトを表示して再確認を求めます。
  • ユーザーが明確に確認しない場合(例:「Confirm」、「Yes」、「Proceed」)、実行してはいけません(case10)。

送金結果レポート(API 呼び出し成功後)

  • 成功を確認します。例:「送金が完了しました。{amount} {currency} が {to account name} に入金されました。」
  • 送金先に応じて、次のステップを提案してもかまいません。例:現物 → 現物取引、USDT 無期限 → USDT 建て無期限契約など。
  • 送金履歴について案内します。例:transfer/historyV2 または同等の MCP ツール。

ケースのロジックと出力

case1: 4つの要素がすべて揃っている場合

トリガー 「現物口座から無期限先物口座に100 USDTを振り替えて」/「現物からUSDT建て先物に1000 USDTを振り替えて」/「コイン建て口座から現物口座に0.5 BTCを振り替えて」

手順

  1. from、to、currency、amountを特定し、必要に応じてsettleまたはcurrency_pairを追加します。
  2. 事前確認:振替元の残高を取得します。残高がamount未満の場合はcase4に進みます。
  3. 振替ドラフトを出力します。
  4. 明示的な確認を待ちます。
  5. gate-cli cex wallet transfer createを呼び出します。
  6. 振替結果レポート(case3)を出力します。 リクエストの対応関係
意図API パラメーター値
振替元口座fromspot | margin | futures | delivery | options
振替先口座tospot | margin | futures | delivery | options
通貨currencyUSDT、BTCなど
金額amount文字列、0より大きい値、小数点以下最大8桁
証拠金ペアcurrency_pairfrom/toがmarginの場合に必須。例:BTC_USDT
決済通貨settlefrom/toがfuturesまたはdeliveryの場合に必須:usdt | btc

case2: 通貨が指定されていない場合の自動補完

トリガー 「USDT建て口座に100を振り替えて」/「先物に500を振り替えて」/「無期限口座に1000を振り替えて」

ロジック 振替先の口座に基づいてcurrencyを設定します。

振替先口座デフォルト通貨
USDT無期限(futures settle=usdt)USDT
BTC無期限(futures settle=btc)BTC
TradFiUSDT
DeliveryUSDT
OptionsUSDT
Spot / margin文脈から推測するか、確認します

手順 currencyを設定した後はcase1と同じです。

出力(ドラフト) 「{amount}を{to account name}に振り替える操作を検出しました。口座タイプに基づき、デフォルト通貨は{currency}です。確認してください。」


case3: 振替完了(API成功)

トリガー ユーザーが確認し、gate-cli cex wallet transfer createが成功を返しました。

出力

  • 「振替が完了しました。{amount} {currency}が{to account name}に入金されました。」
  • 任意:振替先に応じた商品を提案します(spot / USDT perpetual / BTC perpetual / delivery / margin / TradFi / options)。
  • 「振替履歴:transfer/historyV2」(または同等のもの)。

case4: 残高不足

トリガー 事前確認で、振替元の利用可能残高が振替金額を下回っています。

アクション 振替APIを呼び出さないでください。

出力 「{from account name}の残高が不足しています(利用可能額:{available} {currency})。金額を調整するか、先に入金してください。」


case5: from/toの指定漏れ、または意図が曖昧な場合

トリガー 「契約がまもなく清算されるので、証拠金として資金を振り替えて」/「先物の証拠金を補充して」/「口座の資金を調整する方法は?」

ロジック

  • from、to、currency、amountのうち2つ以上が不足している場合は、不足情報カードを表示してユーザーに入力を求めます。
  • 片方の口座だけが明確な場合のデフォルト:
  • 統合/取引口座のアドバンスモード:fromのデフォルトはTrading account、toのデフォルトはBTC perpetualです。
  • クラシックモード:fromのデフォルトはSpot、toのデフォルトはUSDT perpetualです。
  • 4つの要素がすべて明確になるまでAPIを呼び出さないでください。

出力 「証拠金の補充をお手伝いできます。振替元口座、振替先口座、通貨(分かれば金額も)を指定してください。」


case6: 口座モードの競合

トリガー ユーザーが取引口座のアドバンスモードで、USDT perpetualへの振替を依頼しています。このモードでは、USDT perpetualへの直接振替が許可されない場合があります(振替経路が利用できません)。 出力 「現在、取引口座モードになっています。USDT perpetualへの直接振替は利用できません。代わりにBTC perpetual(コイン建て)へ振り替えるか、ウェブで口座モードを変更してください。」


case7:通貨と振替先アカウントの不一致

トリガー 「USDTをBTC無期限アカウントに振り替えて」

ロジック BTC無期限アカウントの決済通貨はBTCです。USDTとは一致しません。

  • オプションA:ユーザーの意図に沿う場合は、BTCの金額に修正します。
  • オプションB:BTC無期限アカウントではBTCが使われることを説明し、BTCを振り替えるか、USDTの場合はUSDT無期限アカウントを使うよう提案します。
  • ユーザーが修正した下書き(例:現物からBTC建て無期限アカウントへの振替)を確認した場合は、case1と同様に進めます。

出力 「BTC無期限アカウントではBTCで決済されます。振替通貨をBTCに修正しました(または:BTC建ての金額を指定してください)。確認してください。」または「USDTの場合は、代わりにUSDT無期限アカウントを使ってください。」


case8:金額が未指定

トリガー 「USDTを現物から先物に振り替えて」/「USDTを無期限アカウントに移して」(金額なし)。 アクション 「{from}から{to}へ{currency}をいくら振り替えますか?」と尋ねます。ユーザーが金額を指定した後も通貨が未指定の場合は、通貨を解決し(case2)、その後case1と同様に進めます。


case9:ユーザーがキャンセルまたは拒否

トリガー 振替の下書きの後、ユーザーが「いいえ」/「キャンセル」/「実行しないで」/「やっぱりやめる」と言った場合。

アクション APIを呼び出さないでください。「振替をキャンセルしました。変更はありません。」と応答します。


case10:確認が曖昧、または古い

トリガー 下書きの後、ユーザーが明確な確認以外の返信をした場合(例:新たな質問、異なる金額、または長いやり取りの中での曖昧な「OK」)。 アクション 実行しないでください。振替の下書きを再提示し、「この振替を実行するには、明示的に確認してください(例:「Confirm」または「Yes」)。」と伝えます。


case11:レート制限またはサービスエラー

トリガー APIがTOO_MANY_REQUESTSまたはサーバー/ネットワークエラーを返した場合。

アクション 同じターン内で自動的に再試行しないでください。 出力 「リクエストに失敗しました(レート制限/サービスエラー)。時間をおいて再度お試しいただくか、ウェブアプリを使って振り替えてください。」


例外フローの概要

例外対応実行をブロック
ログインしていないログインするよう促すはい
残高不足不足額を表示し、入金または金額調整を提案(case4)はい
無効なアカウント経路(例:振替元/振替先が許可されていない)正しい設定に修正するよう案内(case5/case6)いいえ、案内する
ユーザーによるキャンセル/拒否応答する(case9)はい
確認がない/曖昧下書きを再提示し、明示的な確認を求める(case10)はい
レート制限/サービスエラー後で再試行するか、ウェブを利用する(case11)はい
リスク管理/クォータ理由を明確に表示するはい

APIリファレンス

リクエストボディの例
{
 "currency": "USDT",
 "from": "spot",
 "to": "futures",
 "amount": "100",
 "currency_pair": "",
 "settle": "usdt"
}
from / to → 商品名
API値商品名
spot現物
margin分離マージン
futures無期限(settleを使用)
delivery受渡
optionsオプション
settle(futures / delivery)
settleアカウント
usdtUSDT無期限
btcBTC無期限
currency_pair(margin)

fromまたはtoがmarginの場合に必須です。例:BTC_USDT。


振替履歴の照会

振替後、ユーザーが履歴を尋ねることがあります。アカウントの種類ごとに確認してください。

アカウント照会ツール(MCPが提供する場合)備考
現物gate-cli cex spot account book通貨、時刻、上限
無期限gate-cli cex futures account booksettle、type=dnw
受渡gate-cli cex delivery account booksettle、type=dnw
マージンgate-cli cex margin account bookcurrency_pair、時刻、上限
オプションgate-cli cex options account bookMCPのドキュメントを参照

REST:受渡はGET /delivery/{settle}/account_book?type=dnw、無期限はGET /futures/{settle}/account_book?type=dnw、マージンはGET /margin/account_book。


エラーコード

コード意味
BALANCE_NOT_ENOUGH残高不足。同じ金額で再試行しないでください
TOO_MANY_REQUESTSレート制限。後で再試行するよう促します(case11)
QUOTA_NOT_ENOUGHクォータ超過。メッセージを表示します

実行ルール(概要)

  1. エンドポイントは1つのみ:内部振替には POST /wallet/transfers(gate-cli cex wallet transfer create)のみを使用します。フェーズ1ではメイン口座とサブ口座間の振替は行いません。
  2. 振替案を必ず表示します。振替元、振替先、通貨、金額を記載し、必要に応じて決済通貨/通貨ペアも含めます。
  3. 次のユーザーのターンで明示的な確認が必要です。確認は1回限りで、パラメーターが変更された場合は再確認を求めます。
  4. API を呼び出す前に残高を事前確認します。残高不足の場合はケース4に従い、呼び出しは行いません。
  5. 条件付きパラメーター:マージンでは currency_pair、先物/デリバリーでは settle を指定します。
  6. 通貨が未指定の場合:ケース2のデフォルト表を使用します。金額が未指定の場合:ケース8に従って確認します。
  7. 口座モード/通貨の不一致:ケース6およびケース7に従い、実行前に解決または修正します。
  8. キャンセルまたは確認が曖昧な場合:ケース9/ケース10に従い、実行しません。

コメント