← 返回
未分类 Key 中文

Gate Exchange Transfer

Gate Exchange same-UID internal transfer skill. Use when the user asks to move funds between their own Gate accounts. Triggers on 'transfer funds', 'move USD...
Gate 交易所同 UID 内部转账技能。用户请求在自己 Gate 账户间转移资金时触发。触发词:转账资金、移动 USD 等。
gaixianggeng
未分类 clawhub v1.0.1 1 版本 100000 Key: 需要
★ 0
Stars
📥 337
下载
💾 0
安装
1
版本
#latest

概述

Gate Exchange Transfer (Internal Transfer)

General Rules

⚠️ STOP — You MUST read and strictly follow the shared runtime rules before proceeding.

Do NOT select or call any tool until all rules are read. These rules have the highest priority.

→ Read ./references/gate-runtime-rules.md

  • Only call MCP tools explicitly listed in this skill. Tools not documented here must NOT be called, even if they

exist in the MCP server.

Execute same-UID internal transfers between Gate trading accounts: spot, isolated margin, perpetual, delivery, and options. Single execution endpoint: POST /wallet/transfers (MCP: cex_wallet_create_transfer).

Scope (Phase 1)

  • Supported: internal transfer only (same UID, between account types above).
  • Not supported: main-to-sub, sub-to-main, sub-to-sub.

MCP Dependencies

Required MCP Servers

MCP ServerStatus
--------------------
Gate (main)✅ Required

MCP Tools Used

Query Operations (Read-only)

  • cex_dc_list_dc_account_book
  • cex_fx_list_fx_account_book
  • cex_margin_list_margin_account_book
  • cex_options_list_options_account_book
  • cex_spot_list_spot_account_book

Execution Operations (Write)

  • cex_wallet_create_transfer

Authentication

  • Credentials Source: Local Gate MCP deployment (GATE_API_KEY, GATE_API_SECRET)
  • API Key Required: Yes
  • Permissions: Delivery:Read, Fx:Read, Margin:Read, Options:Read, Spot:Read, Wallet:Write
  • Never ask the user to paste secrets into chat; rely on the configured MCP session only.
  • API Key Provisioning Reference: https://www.gate.com/myaccount/profile/api-key/manage (create or rotate keys outside the chat when the local MCP setup requires them).

Installation Check

  • Required: Gate (main)
  • Install: Use the local Gate MCP installation flow for the current host IDE before continuing.
  • Continue only after the Gate MCP session is configured with the credentials listed above; do not switch to browser auth or ask the user to paste secrets into chat.

MCP Mode

Read and strictly follow references/mcp.md, then execute this skill's transfer workflow.

  • SKILL.md keeps transfer intent routing and account-type mapping.
  • references/mcp.md is the authoritative MCP execution layer for transfer pre-check, confirmation gate, execution, and ledger verification.

Preconditions

PreconditionIf not met
--------------------------
User logged inDo not call API; prompt to log in (exception flow).
Account mode knownInfer from context or assume classic: Spot ↔ USDT perpetual. For unified/trading account advanced mode: Trading account ↔ BTC perpetual.
Source balance verifiableCall balance API for from account before showing draft; if unavailable, prompt user to check on web.

The Four Elements

Every internal transfer is fully specified by four elements. The assistant must resolve or infer them before showing a Transfer Draft.

ElementAPI paramRequired whenNotes
-------------------------------------------
FromfromAlwaysspot \margin \futures \delivery \options
TotoAlwaysSame enum as from
CurrencycurrencyAlwaysUSDT, BTC, etc. (platform-supported). Missing → auto-complete by target (case2).
AmountamountAlwaysString, > 0, up to 8 decimals. Missing → ask user (case8).

Conditional params

  • margin: currency_pair required (e.g. BTC_USDT) when from or to is margin.
  • futures / delivery: settle required (usdt \| btc) when from or to is futures or delivery.

Public API (Phase 1)

EndpointMethodMeaningRate limit
---------------------------------------
/wallet/transfersPOSTSame-UID internal transfer80 req/10s

Tool Mapping

GroupTool (jsonrpc: call.method)
--------------------------------------
Main account internal transfercex_wallet_create_transfer

Case Index

CaseScenarioAction
------------------------
case1All four elements presentShow Transfer Draft → confirm → call API → Transfer Result Report
case2Currency missingAuto-complete currency by target account → same as case1
case3Transfer completed (API success)Output Transfer Result Report + product suggestion
case4Insufficient balancePre-check fails; no API call; show shortfall and suggest deposit/adjust
case5Missing from/to or ambiguous intentShow missing-info card; do not call API
case6Account mode conflict (e.g. trading account → USDT perpetual not allowed)Explain and suggest alternative path
case7Currency vs To mismatch (e.g. USDT to BTC perpetual)Auto-correct or prompt correction → then case1
case8Amount missingAsk for amount; after user provides, proceed to case1/case2
case9User cancels or declines after draftAcknowledge; do not call API
case10Confirmation ambiguous or staleRe-present draft; ask for explicit "Confirm" / "Yes"; do not execute
case11Rate limit / service errorDo not retry blindly; prompt retry later or use web UI

Transfer Draft (Mandatory before execution)

Before calling cex_wallet_create_transfer, output a Transfer Draft and wait for explicit confirmation in the immediately following user turn.

Draft contents

  • from (account name)
  • to (account name)
  • currency
  • amount
  • If applicable: settle (for futures/delivery), currency_pair (for margin)

Confirmation rule

  • Treat confirmation as single-use. If user changes amount, currency, or direction, show a new draft and re-confirm.
  • If user does not clearly confirm (e.g. "Confirm", "Yes", "Proceed"), do not execute (case10).

Transfer Result Report (After successful API call)

  • Confirm success: e.g. "Transfer successful. {amount} {currency} has arrived in your {to account name}."
  • Optionally suggest next step by destination: Spot → spot trading; USDT perpetual → USDT-margined perpetual; etc.
  • Mention transfer history: e.g. transfer/historyV2 or equivalent MCP tool.

Case Logic and Output

case1: All four elements present

Trigger

"Transfer 100 USDT from my spot account to perpetual futures account" / "Transfer 1000 USDT from spot to USDT-margined futures" / "Transfer 0.5 BTC from coin-margined to spot"

Steps

  1. Resolve from, to, currency, amount; add settle or currency_pair if needed.
  2. Pre-check: fetch source balance; if balance < amount → case4.
  3. Output Transfer Draft.
  4. Wait for explicit confirmation.
  5. Call cex_wallet_create_transfer.
  6. Output Transfer Result Report (case3).

Request mapping

IntentAPI parameterValues
--------------------------------
Source accountfromspot \margin \futures \delivery \options
Target accounttospot \margin \futures \delivery \options
CurrencycurrencyUSDT, BTC, etc.
AmountamountString, > 0, up to 8 decimals
Margin paircurrency_pairRequired if from/to is margin, e.g. BTC_USDT
SettlementsettleRequired if from/to is futures or delivery: usdt \btc

case2: Currency missing, auto-complete

Trigger

"Transfer 100 to my USDT-margined account" / "Transfer 500 to futures" / "Transfer 1000 to perpetual"

Logic

Set currency by target account:

Target accountDefault currency
----------------------------------
USDT perpetual (futures settle=usdt)USDT
BTC perpetual (futures settle=btc)BTC
TradFiUSDT
DeliveryUSDT
OptionsUSDT
Spot / marginInfer from context or ask

Steps

Same as case1 after currency is set.

Output (draft)

"Detected transfer of {amount} to {to account name}. Based on account type, default currency is {currency}. Please confirm."


case3: Transfer completed (API success)

Trigger

User confirmed; cex_wallet_create_transfer returned success.

Output

  • "Transfer successful. {amount} {currency} has arrived in your {to account name}."
  • Optional: product suggestion by destination (spot / USDT perpetual / BTC perpetual / delivery / margin / TradFi / options).
  • "Transfer history: transfer/historyV2" (or equivalent).

case4: Insufficient balance

Trigger

Pre-check: source available balance < transfer amount.

Action

Do not call transfer API.

Output

"Your {from account name} has insufficient balance (available: {available} {currency}). Please adjust the amount or deposit first."


case5: Missing from/to or ambiguous intent

Trigger

"Contract is about to be liquidated, transfer some funds for margin" / "Top up my futures margin" / "How do I adjust account funds"

Logic

  • If missing ≥ 2 of from, to, currency, amount: show missing-info card and ask user to provide.
  • Defaults when only one side is clear:
  • Unified/trading account advanced mode: default from = Trading account, to = BTC perpetual.
  • Classic: default from = Spot, to = USDT perpetual.
  • Do not call API until four elements are clear.

Output

"I can help with margin top-up. Please specify: from account, to account, and currency (and amount if you know it)."


case6: Account mode conflict

Trigger

User in trading account advanced mode asks to transfer to USDT perpetual. In this mode, direct transfer to USDT perpetual may be disallowed (path not available).

Output

"You are in trading account mode; direct transfer to USDT perpetual is not available. You can transfer to BTC perpetual (coin-margined) instead, or adjust account mode on the web."


case7: Currency vs To account mismatch

Trigger

"Transfer some USDT to my BTC perpetual account"

Logic

BTC perpetual settles in BTC; USDT is inconsistent.

  • Option A: Correct to BTC amount (if user intent allows).
  • Option B: Explain that BTC perpetual uses BTC; suggest transferring BTC or using USDT perpetual for USDT.
  • If user confirms a corrected draft (e.g. spot → BTC perpetual with BTC), proceed as case1.

Output

"BTC perpetual uses BTC settlement. I've corrected the transfer to use BTC (or: please specify amount in BTC). Please confirm." Or: "For USDT, use USDT perpetual account instead."


case8: Amount missing

Trigger

"Transfer USDT from spot to futures" / "Move my USDT to perpetual" (no amount).

Action

Ask: "How much {currency} do you want to transfer from {from} to {to}?" After user provides amount, resolve currency if still missing (case2), then proceed to case1.


case9: User cancels or declines

Trigger

After Transfer Draft, user says "No" / "Cancel" / "Don't do it" / "Never mind".

Action

Do not call API. Acknowledge: "Transfer cancelled. No changes made."


case10: Confirmation ambiguous or stale

Trigger

After draft, user replies with something other than clear confirmation (e.g. new question, different amount, or vague "ok" in a long thread).

Action

Do not execute. Re-present the Transfer Draft and say: "To execute this transfer, please confirm explicitly (e.g. 'Confirm' or 'Yes')."


case11: Rate limit or service error

Trigger

API returns TOO_MANY_REQUESTS or server/network error.

Action

Do not retry automatically in the same turn.

Output

"Request failed (rate limit / service error). Please try again later or use the web app to transfer."


Exception Flow Summary

ExceptionHandlingBlock execution
--------------------------------------
Not logged inPrompt to log inYes
Insufficient balanceShow shortfall + suggest deposit/adjust (case4)Yes
Invalid account path (e.g. from/to not allowed)Guide user to correct (case5/case6)No, guide
User cancel / declineAcknowledge (case9)Yes
Confirmation missing/ambiguousRe-present draft, ask explicit confirm (case10)Yes
Rate limit / service errorRetry later or use web (case11)Yes
Risk control / quotaShow clear reasonYes

API Reference

Request body example

{
  "currency": "USDT",
  "from": "spot",
  "to": "futures",
  "amount": "100",
  "currency_pair": "",
  "settle": "usdt"
}

from / to → product name

API valueProduct name
-------------------------
spotSpot
marginIsolated margin
futuresPerpetual (use settle)
deliveryDelivery
optionsOptions

settle (futures / delivery)

settleAccount
-----------------
usdtUSDT perpetual
btcBTC perpetual

currency_pair (margin)

Required when from or to is margin; e.g. BTC_USDT.


Transfer History Query

After a transfer, user may ask for history. By account type:

AccountQuery tool (if MCP provides)Notes
-----------------------------------------------
Spotcex_spot_list_spot_account_bookcurrency, time, limit
Perpetualcex_fx_list_fx_account_booksettle, type=dnw
Deliverycex_dc_list_dc_account_booksettle, type=dnw
Margincex_margin_list_margin_account_bookcurrency_pair, time, limit
Optionscex_options_list_options_account_bookper MCP docs

REST: Delivery GET /delivery/{settle}/account_book?type=dnw; Perpetual GET /futures/{settle}/account_book?type=dnw; Margin GET /margin/account_book.


Error Codes

CodeMeaning
---------------
BALANCE_NOT_ENOUGHInsufficient balance; do not retry same amount
TOO_MANY_REQUESTSRate limit; prompt retry later (case11)
QUOTA_NOT_ENOUGHQuota exceeded; show message

Execution Rules (Summary)

  1. Single endpoint: Internal transfer only via POST /wallet/transfers (cex_wallet_create_transfer). No main-sub in Phase 1.
  2. Always show Transfer Draft with from, to, currency, amount (and settle/currency_pair if needed).
  3. Require explicit confirmation in the next user turn; single-use; re-confirm if params change.
  4. Pre-check balance before calling API; on insufficient balance, follow case4 and do not call.
  5. Conditional params: currency_pair for margin; settle for futures/delivery.
  6. Missing currency: case2 default table. Missing amount: case8 ask.
  7. Account mode / currency mismatch: case6 and case7; resolve or correct before executing.
  8. On cancel or ambiguous confirm: case9/case10; do not execute.

版本历史

共 1 个版本

  • v1.0.1 当前
    2026-05-07 13:28 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

Gate Exchange Coupon

gaixianggeng
门券和优惠券查询技能。当用户询问优惠券余额、规则、到期时间或来源时使用。触发词包括‘我的优惠券’、‘优惠券详情’、‘券详情’等。
★ 0 📥 376

gate-news-listing

gaixianggeng
交易所上市追踪器。当用户询问关于上市、摘牌或维护公告时使用此技能。触发短语包括:任何...
★ 0 📥 366

gate-news-eventexplain

gaixianggeng
事件归因与解释。仅在用户仅询问价格变动的原因且没有其他分析需求时使用此技能。
★ 0 📥 371