Gate spot trading and account operations skill. Use this skill whenever the user asks to buy/sell crypto, check account value, cancel/amend spot orders, plac...
Execute integrated operations for Gate spot workflows, including:
| Group | Tool Calls (jsonrpc: call.method) |
|---|---|
| Account and balances | get_spot_accounts |
| Place/cancel/amend orders | create_spot_order, cancel_all_spot_orders, cancel_spot_order, amend_spot_order |
| Open orders and fills | list_spot_orders, list_spot_my_trades |
| Market data | get_spot_tickers, get_spot_order_book, get_spot_candlesticks |
| Trading rules | get_currency, get_currency_pair |
| Fees | get_wallet_fee |
BASE_QUOTE format for trading pairs, for example BTC_USDT.min_quote_amount (commonly 10U).min_base_amount / amount_precision).When calling create_spot_order with type=market, fill amount by side:
| side | amount meaning | Example |
|---|---|---|
buy | Quote-currency amount (USDT) | "Buy 100U BTC" -> amount="100" |
sell | Base-currency quantity (BTC/ETH, etc.) | "Sell 0.01 BTC" -> amount="0.01" |
Pre-check before execution:
buy market order: verify quote-currency balance can cover amount (USDT).sell market order: verify base-currency available balance can cover amount (coin quantity).When the user asks for any spot trading operation, follow this sequence.
Classify the request into one of these six categories:
Extract key fields:
currency / currency_pairside (buy/sell)amount (coin quantity) or quote_amount (USDT amount)price or price condition (for example "2% below current")When type=market, normalize parameters as:
side=buy: amount = quote_amount (USDT amount)side=sell: amount = base_amount (base-coin quantity)Pre-check order:
Before every create_spot_order, always provide an Order Draft first, then wait for explicit confirmation.
Required execution flow:
Required confirmation fields:
currency_pair)buy/sell, market/limit)amount meaning and valueRecommended draft wording:
Order Draft: BTC_USDT, buy, market, amount=100 USDT, estimated fill around current ask, risk: slippage in fast markets. Reply "Confirm order" to place it.Allowed confirmation responses (examples):
Confirm order, Confirm, Proceed, Yes, place itHard blocking rules (non-bypassable):
create_spot_order unless the user explicitly confirms in the immediately previous turn.create_spot_order.If user confirmation is missing, ambiguous, or negative:
Use only the minimal tool set required for the task:
get_spot_accountsget_currency_pairget_spot_tickerscreate_spot_ordercancel_all_spot_orders / cancel_spot_order / amend_spot_orderlist_spot_orders (use status=open)list_spot_my_tradesThe response must include:
| Case | User Intent | Core Decision | Tool Sequence |
|---|---|---|---|
| 1 | Market buy | Place market buy if USDT is sufficient | get_spot_accounts → create_spot_order |
| 2 | Buy at target price | Create a limit buy order | get_spot_accounts → create_spot_order |
| 3 | Buy with all balance | Use all available USDT balance to buy | get_spot_accounts → create_spot_order |
| 4 | Buy readiness check | Currency status + min size + current unit price | get_currency → get_currency_pair → get_spot_tickers |
| 5 | Asset summary | Convert all holdings to USDT value | get_spot_accounts → get_spot_tickers |
| 6 | Cancel all then check balance | Cancel all open orders and return balances | cancel_all_spot_orders → get_spot_accounts |
| 7 | Sell dust | Sell only if minimum size is met | get_spot_accounts → get_currency_pair → create_spot_order |
| 8 | Balance + minimum buy check | Place order only if account balance and min_quote_amount are both satisfied | get_spot_accounts → get_currency_pair → create_spot_order |
| Case | User Intent | Core Decision | Tool Sequence |
|---|---|---|---|
| 9 | Buy 2% lower | Place limit buy at current price -2% | get_spot_tickers → create_spot_order |
| 10 | Sell at +500 | Place limit sell at current price +500 | get_spot_tickers → create_spot_order |
| 11 | Buy near today's low | Buy only if current price is near 24h low | get_spot_tickers → create_spot_order |
| 12 | Sell on 5% drop request | Calculate target drop price and place sell limit order | get_spot_tickers → create_spot_order |
| 13 | Buy top gainer | Auto-pick highest 24h gainer and buy | get_spot_tickers → create_spot_order |
| 14 | Buy larger loser | Compare BTC/ETH daily drop and buy the bigger loser | get_spot_tickers → create_spot_order |
| 15 | Buy then place sell | Market buy, then place sell at +2% reference price | create_spot_order → create_spot_order |
| 16 | Fee estimate | Estimate total cost from fee rate and live price | get_wallet_fee → get_spot_tickers |
| Case | User Intent | Core Decision | Tool Sequence |
|---|---|---|---|
| 17 | Raise price for unfilled order | Confirm how much to raise (or target price), locate unfilled buy orders, confirm which order to amend if multiple, then amend limit price | list_spot_orders(status=open) → amend_spot_order |
| 18 | Verify fill and holdings | Last buy fill quantity + current total holdings | list_spot_my_trades → get_spot_accounts |
| 19 | Cancel if not filled | If still open, cancel and then recheck balance | list_spot_orders(status=open) → cancel_spot_order → get_spot_accounts |
| 20 | Rebuy at last price | Use last fill price, check balance, then place limit buy | list_spot_my_trades → get_spot_accounts → create_spot_order |
| 21 | Sell at break-even or better | Sell only if current price is above cost basis | list_spot_my_trades → get_spot_tickers → create_spot_order |
| 22 | Asset swap | Estimate value, if >=10U then sell then buy | get_spot_accounts → get_spot_tickers → create_spot_order(sell) → create_spot_order(buy) |
| 23 | Buy if price condition met | Buy only when current < 60000, then report balance | get_spot_tickers → create_spot_order → get_spot_accounts |
| 24 | Buy on trend condition | Buy only if 3 of last 4 hourly candles are bullish | get_spot_candlesticks → create_spot_order |
| 25 | Fast-fill limit buy | Use best opposite-book price for fast execution | get_spot_order_book → create_spot_order |
| Condition | Action |
|---|---|
| User asks to check balance before buying | Must call get_spot_accounts first; place order only if sufficient |
| User specifies buy/sell at target price | Use type=limit at user-provided price |
| User asks for fastest fill at current market | Prefer market; if "fast limit" is requested, use best book price |
Market buy (buy) | Fill amount with USDT quote amount, not base quantity |
Market sell (sell) | Fill amount with base-coin quantity, not USDT amount |
| User requests take-profit/stop-loss | Clearly state TP/SL is not supported; provide manual limit alternative |
| Any order placement request | Require explicit final user confirmation before create_spot_order |
| User has not replied with clear confirmation | Keep order as draft; no trading execution |
| Confirmation is stale or not from the immediately previous turn | Invalidate it and require a fresh confirmation |
| Multi-leg trading flow | Require per-leg confirmation before each create_spot_order |
| User asks to amend an unfilled buy order | Confirm price increase amount or exact target price before amend_spot_order |
| Multiple open buy orders match amendment request | Ask user to choose which order to amend before executing |
| User amount is too small | Check min_quote_amount; if not met, ask user to increase amount |
| User requests all-in buy/sell | Use available balance, then trim by minimum trade rules |
| Trigger condition not met | Do not place order; return current vs target price gap |
## Execution Result
| Item | Value |
|------|-----|
| Scenario | {case_name} |
| Pair | {currency_pair} |
| Action | {action} |
| Status | {status} |
| Key Metrics | {key_metrics} |
{decision_text}
Example decision_text:
✅ Condition met. Your order has been placed.📝 Order draft ready. Reply "Confirm order" to execute.⏸️ No order placed yet: current price is 60200, above your target 60000.❌ Not executed: minimum order amount is 10U, your input is 5U.| Error Type | Typical Cause | Handling Strategy |
|---|---|---|
| Insufficient balance | Not enough available USDT/coins | Return shortfall and suggest reducing order size |
| Minimum trade constraint | Below minimum amount/size | Return threshold and suggest increasing order size |
| Unsupported capability | User asks for TP/SL | Clearly state unsupported, propose manual limit-order workflow |
| Missing final confirmation | User has not clearly approved final order summary | Keep order pending and request explicit confirmation |
| Stale confirmation | Confirmation does not match the current draft or is not in the previous turn | Reject execution and ask for reconfirmation |
| Draft-only mode | User has not confirmed yet | Only run query/estimation tools; do not call create_spot_order |
| Ambiguous amendment target | Multiple candidate open buy orders | Keep pending and ask user to confirm order ID/row |
| Order missing/already filled | Amendment/cancellation target is invalid | Ask user to refresh open orders and retry |
| Market condition not met | Trigger condition is not satisfied | Return current price, target price, and difference |
| Pair unavailable | Currency suspended or abnormal status | Clearly state pair is currently not tradable |
gate-exchange-spot (Case 2/9/23)ZIP package — ready to use