skills/gate-exchange-assets-manager/SKILL.md
Gate multi-account asset manager L2 skill. Use when the user asks to check total assets combined with margin/liquidation risk or earnings snapshots. Triggers on 'total assets', 'margin check', 'liquidation risk', 'earn interest', 'staking rewards', 'affiliate commissions', 'borrow USDT', 'add margin', 'set collateral'.
npx skillsauth add gate/gate-skills gate-exchange-assets-managerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This is an L2 composite skill that orchestrates 58 deduplicated MCP tool calls (54 read + 4 write) across 7 L1 skills. It provides a unified entry point for account and asset overview, margin and liquidation risk assessment, SimpleEarn and staking earnings snapshots, affiliate commission queries, and unified-account write operations (borrowing, collateral, leverage settings).
This skill is intended for users aged 18 or above with full civil capacity.
⚠️ 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 gate-runtime-rules.md
| MCP Server | Status | |------------|--------| | Gate (main) | ✅ Required |
Query Operations (Read-only)
Execution Operations (Write)
gate-mcp-cursor-installergate-mcp-codex-installergate-mcp-claude-installergate-mcp-openclaw-installerRead and strictly follow references/mcp.md, then execute module routing in this skill.
SKILL.md keeps orchestration/routing logic across account domains.references/mcp.md is the authoritative MCP execution layer for module aggregation, partial degradation strategy, and unified mutation safeguards.| Module | L1 Source | Tool Count | Read/Write | Purpose | |--------|-----------|------------|------------|---------| | S1 Assets / Overview | gate-exchange-assets, gate-exchange-alpha | 10+ | Read only | Multi-account balance panorama | | S2 Risk / Margin | gate-exchange-unified, gate-exchange-marketanalysis | 6+ | Read only | Margin ratio, liquidation price, unrealised PnL | | S3 Earn / Yield | gate-exchange-simpleearn, gate-exchange-staking | 4 | Read only | Current SimpleEarn and staking position/interest snapshots | | S4 Affiliate / Rebate | gate-exchange-affiliate | 7 | Read only | Rebate user info (may be empty), partner commissions history, sub-relations | | S5 Borrow / Transfer (Write) | gate-exchange-unified | 6 | 2 Read + 4 Write | Borrow, set collateral, set leverage, switch mode |
Note: TradFi tools (from gate-exchange-tradfi, 10 read tools) are all read-only and used for asset inventory queries. They are included in the deduplicated 58-tool count but not listed as a separate L1 module in the sub-module table above.
User queries often span multiple dimensions (e.g. "check my earn interest and will I get liquidated" covers S3 and S2). Instead of forcing single-intent classification, this skill uses signal overlay: each of 5 signal dimensions is independently detected from the query, and the activated dimensions contribute their respective tool sets. The final tool set is the union of all activated signals, deduplicated before execution.
| Signal | Dimension | Trigger Condition | Trigger Keywords | Tool Subset |
|--------|-----------|-------------------|------------------|-------------|
| S1 | Assets / Overview | User asks about overall assets, multi-account balances, asset inventory; also covers read-only borrowable/rate inquiry (no execution intent) and transferable limit snapshots | assets, balance, account, how much, total assets, inventory; borrowable (inquiry only), transferable limit | cex_wallet_get_total_balance, cex_spot_get_spot_accounts, cex_unified_get_unified_accounts, cex_fx_get_fx_accounts, cex_margin_list_margin_accounts, cex_options_list_options_account, cex_earn_list_user_uni_lends, cex_earn_asset_list, cex_alpha_list_alpha_accounts, cex_tradfi_query_user_assets; inquiry subset: + cex_unified_get_unified_borrowable, cex_unified_get_unified_estimate_rate, cex_unified_get_unified_transferable |
| S2 | Risk / Margin | User asks about liquidation, margin, liquidation price, unrealised PnL, position risk | liquidation, margin, liquidation price, unrealised PnL, position, risk, margin call | cex_unified_get_unified_accounts, cex_fx_list_fx_positions, cex_fx_get_fx_tickers, cex_fx_get_fx_contract, cex_fx_get_fx_funding_rate, cex_fx_get_fx_premium_index |
| S3 | Earn / Yield | User asks about existing SimpleEarn or staking positions, accrued interest and rewards (snapshot only, not product selection) | earn position, staking position, interest, yield, rewards | cex_earn_list_user_uni_lends, cex_earn_get_uni_interest, cex_earn_asset_list, cex_earn_award_list (Note: does not include list_uni_currencies / list_uni_rate / find_coin which are product-selection tools; those requests route to smart earn) |
| S4 | Affiliate / Rebate | User asks about affiliate status, partner data, commissions | rebate, affiliate, commission, partner, broker, referral | cex_rebate_user_info, cex_rebate_partner_commissions_history, cex_rebate_partner_sub_list, cex_rebate_partner_transaction_history, cex_rebate_user_sub_relation, cex_rebate_broker_commission_history, cex_rebate_broker_transaction_history |
| S5 | Borrow / Transfer (Write) | User has explicit execution intent: borrow amount, add margin, set collateral, switch mode. Does NOT activate for inquiry-only queries like "how much can I borrow" with negation like "don't borrow yet" | borrow [amount], add margin, transfer to futures, set collateral, switch mode | cex_unified_get_unified_borrowable, cex_unified_get_unified_estimate_rate, cex_unified_create_unified_loan, cex_unified_set_unified_collateral, cex_unified_set_unified_mode, cex_unified_set_user_leverage_currency_setting |
Input: User Query
Output: activated_signals[] + params{action_type, accounts[]}
1. Parameter Extraction
Extract accounts[] (account types mentioned, 0-N)
Extract action_type (borrow / transfer / add margin / setting / none)
2. Signal Detection (each dimension independent, non-exclusive, multi-select)
S1 <- contains asset/balance/account/inventory expressions
S2 <- contains liquidation/margin/position/risk expressions
S3 <- contains earn/staking position/interest/rewards expressions
S4 <- contains rebate/affiliate/commission/partner expressions
S5 <- contains borrow/transfer/add-margin/setting expressions AND execution intent
3. Fallback Rules (if no signal explicitly activated)
Vague account intent (e.g. "check my account") -> default S1 (asset overview)
Account + risk keywords (e.g. "is it safe") -> default S1 + S2
4. Execution Mode
S5 not activated -> read-only mode (query and summarise)
S5 activated -> read+write mode (query -> Action Draft -> confirm -> execute)
5. Tool Set Assembly
Tool Set = Union(all activated signal tool subsets)
Deduplicate same tool + same parameters
Independent tools run in parallel; S5 write operations run serially after reads
| User Intent | Route To | |-------------|----------| | Trade execution (spot/futures open/close) | Trading copilot skill | | Coin research, market analysis, news | Market research skill | | Idle fund allocation, product selection, APY comparison | Smart earn skill | | Flash swap / coin exchange | Flash swap skill | | Sub-account management | Not in scope | | Asset weekly report, cross-period analysis | Not supported by current API; guide to App reports | | Total PnL ledger across all business lines | Data source calibration unreliable; display per-module snapshots |
| User Query | accounts | Activated Signals | Explanation | |------------|----------|-------------------|-------------| | "Check my account" | [] | S1 (fallback) | No explicit dimension keyword; fallback to asset overview | | "How much do I have, will I get liquidated?" | [] | S1 + S2 | "how much" triggers S1, "liquidated" triggers S2 | | "Is my unified margin sufficient?" | [unified] | S2 | "margin" triggers risk | | "Show liquidation prices and unrealised PnL" | [] | S2 | "liquidation price / unrealised PnL" triggers risk | | "How much did earn and staking make?" | [] | S3 | "earn / staking / how much" triggers yield | | "Should I put idle funds in SimpleEarn or staking?" | [] | — | Route to smart earn; this skill does not do fund allocation | | "How much rebate do I have?" | [] | S4 | "rebate" triggers affiliate | | "Margin is low, help me add margin" | [] | S2 + S5 | "margin low" triggers S2, "add margin" triggers S5 write | | "How much can I borrow? Don't borrow yet" | [] | S1 | Negation of execution -> does NOT activate S5; uses borrowable + estimate_rate (inquiry subset) | | "How much can I borrow? Borrow 500 USDT" | [] | S5 | Execution intent -> query then Action Draft -> confirm -> create_loan | | "How much USDT can I transfer out? (don't transfer)" | [unified] | S1 | Transferable limit read-only -> transferable + unified_accounts; not a transfer execution | | "Show total assets + futures margin together (no analysis)" | [] | S1 + S2 | Factual snapshot, no S3, no health/PnL narrative | | "Make me an asset weekly report / total PnL ledger" | [] | — | Not accepted: API cannot support reliable asset analysis or total PnL; explain boundary and guide to App reports | | "About to get liquidated, any spare spot balance? Can I add margin?" | [] | S2 + S1 + S5 | "liquidated" triggers S2, "spot balance" triggers S1, "add margin" triggers S5 |
Some user queries can be satisfied by a single L1 skill's tools (e.g. "how much do I have" only needs a few assets tools). This L2 provides a more comprehensive aggregated report through cross-L1 orchestration.
When a user query contains both account/risk intent and other L2 intents (e.g. "check my account, then buy BTC"):
| Scenario | Handling |
|----------|----------|
| User says "check my account" with no details | Fallback S1 (asset overview), output full asset panorama |
| User says "is it safe" / "am I OK" | Fallback S1 + S2, output asset panorama + margin/liquidation assessment |
| User asks about sub-accounts | Explicitly state "this skill does not cover sub-account management" |
| Write operation parameters incomplete (e.g. "borrow" without amount) | Ask to complete: "Please confirm the currency and amount to borrow"; do not guess |
| Multilingual / mixed Chinese-English prompts | Parse intent and parameters normally; if identifiable as account/asset/risk, enter this skill |
| User asks "which earn product is best" | Product recommendation scope; route to smart earn. This skill only queries existing positions/yields |
| cex_rebate_user_info returns an empty object | Still produce the S4 section from cex_rebate_partner_commissions_history and other S4 tools; do not treat empty user_info as "no affiliate data". See Domain Knowledge: Affiliate / rebate data (S4). |
cex_unified_get_unified_accounts needed by both S1 and S2 only executes once| # | Tool Name | R/W | Purpose |
|---|-----------|-----|---------|
| 1 | cex_wallet_get_total_balance | R | Total balance in USDT equivalent |
| 2 | cex_spot_get_spot_accounts | R | Spot account per-currency balances |
| 3 | cex_unified_get_unified_accounts | R | Unified account equity/margin/loans |
| 4 | cex_fx_get_fx_accounts | R | Futures account available balance |
| 5 | cex_options_list_options_account | R | Options account balance |
| 6 | cex_margin_list_margin_accounts | R | Isolated margin accounts |
| 7 | cex_tradfi_query_user_assets | R | TradFi account equity |
| 8 | cex_earn_list_dual_balance | R | Dual investment balance |
| 9 | cex_earn_list_dual_orders | R | Dual investment orders |
| 10 | cex_earn_list_structured_orders | R | Structured product orders |
| 11 | cex_spot_list_spot_account_book | R | Spot account ledger |
| # | Tool Name | R/W | Purpose |
|---|-----------|-----|---------|
| 12 | cex_unified_get_unified_accounts | R | Unified account equity/margin ratio/loan balance |
| 13 | cex_unified_get_unified_mode | R | Current unified account mode |
| 14 | cex_unified_get_unified_borrowable | R | Borrowable limit per currency |
| 15 | cex_unified_get_unified_transferable | R | Transferable limit |
| 16 | cex_unified_get_unified_estimate_rate | R | Hourly estimated unified-account borrow rate per currency (API string decimals; not annualized APR/APY). See Domain Knowledge: Unified account estimated borrow rate. |
| 17 | cex_unified_list_unified_currencies | R | Supported unified currencies |
| 18 | cex_unified_list_unified_loan_records | R | Loan records |
| 19 | cex_unified_list_unified_loan_interest_records | R | Loan interest records |
| 20 | cex_unified_get_user_leverage_currency_setting | R | Per-currency leverage setting |
| 21 | cex_unified_list_currency_discount_tiers | R | Collateral discount tiers |
| 22 | cex_unified_set_unified_mode | W | Switch unified account mode |
| 23 | cex_unified_create_unified_loan | W | Execute borrow/repay |
| 24 | cex_unified_set_user_leverage_currency_setting | W | Set per-currency leverage |
| 25 | cex_unified_set_unified_collateral | W | Set collateral currencies |
| # | Tool Name | R/W | Purpose |
|---|-----------|-----|---------|
| 26 | cex_earn_list_uni_currencies | R | SimpleEarn supported currencies |
| 27 | cex_earn_get_uni_currency | R | Single currency SimpleEarn details |
| 28 | cex_earn_list_user_uni_lends | R | User SimpleEarn positions |
| 29 | cex_earn_get_uni_interest | R | SimpleEarn interest earnings |
| 30 | cex_earn_list_uni_rate | R | SimpleEarn APY rates |
| # | Tool Name | R/W | Purpose |
|---|-----------|-----|---------|
| 31 | cex_earn_asset_list | R | Staking positions |
| 32 | cex_earn_award_list | R | Staking reward records |
| 33 | cex_earn_find_coin | R | Stakeable coin search |
| 34 | cex_earn_order_list | R | Staking order history |
| # | Tool Name | R/W | Purpose |
|---|-----------|-----|---------|
| 35 | cex_spot_get_spot_order_book | R | Spot order book |
| 36 | cex_spot_get_spot_candlesticks | R | Spot K-line data |
| 37 | cex_spot_get_spot_tickers | R | Spot ticker snapshot |
| 38 | cex_spot_get_spot_trades | R | Spot trade records |
| 39 | cex_fx_get_fx_contract | R | Futures contract specs |
| 40 | cex_fx_get_fx_order_book | R | Futures order book |
| 41 | cex_fx_get_fx_candlesticks | R | Futures K-line data |
| 42 | cex_fx_get_fx_tickers | R | Futures ticker (mark price) |
| 43 | cex_fx_get_fx_trades | R | Futures trade records |
| 44 | cex_fx_get_fx_funding_rate | R | Funding rate |
| 45 | cex_fx_list_fx_liq_orders | R | Liquidation orders |
| 46 | cex_fx_get_fx_premium_index | R | Basis/premium index |
| # | Tool Name | R/W | Purpose |
|---|-----------|-----|---------|
| 47 | cex_fx_list_fx_positions | R | All futures positions (unrealised PnL, liquidation price) |
| # | Tool Name | R/W | Purpose |
|---|-----------|-----|---------|
| 48 | cex_rebate_user_info | R | User rebate summary (may return an empty object; rely on commissions history when empty) |
| 49 | cex_rebate_user_sub_relation | R | User affiliate relationship |
| 50 | cex_rebate_partner_sub_list | R | Partner client list |
| 51 | cex_rebate_partner_commissions_history | R | Partner commission history |
| 52 | cex_rebate_partner_transaction_history | R | Client transaction history |
| 53 | cex_rebate_broker_commission_history | R | Broker commission history |
| 54 | cex_rebate_broker_transaction_history | R | Broker transaction history |
| # | Tool Name | R/W | Purpose |
|---|-----------|-----|---------|
| 55 | cex_alpha_list_alpha_currencies | R | Alpha supported currencies |
| 56 | cex_alpha_list_alpha_tokens | R | Alpha token list |
| 57 | cex_alpha_list_alpha_tickers | R | Alpha ticker snapshot |
| 58 | cex_alpha_list_alpha_accounts | R | User Alpha positions |
cex_* tool names in user-facing output; use natural language like "no records found" instead.cex_unified_get_unified_estimate_rate)"0.000002"). This matches the public API contract: hourly estimate, not a fixed annual quote.cex_earn_list_uni_rate expose product APY-style figures; they are a different product line from unified-account borrow estimates. Do not mix units in one sentence without naming each source.| Misconception | Reality |
|---------------|---------|
| The number from cex_unified_get_unified_estimate_rate is an annual percentage (APR) | It is an hourly estimated borrow rate per currency. Label it as hourly; only annualize with explicit conversion and “reference only” wording if the user asks. |
| "Check my account and buy BTC" will execute trades via this skill | This skill only handles account/asset/risk queries and limited write operations (borrow/settings). Trading execution routes to the trading copilot. |
| Liquidation warning equals the actual liquidation line | This skill evaluates risk based on snapshot data. Always note "subject to the exchange's actual liquidation rules." |
| This skill can query or manage sub-accounts | This skill covers main account only; sub-account management is out of scope. |
| "Should I put idle funds in SimpleEarn or staking" will be answered by this skill | Product selection and fund allocation route to the smart earn skill. This skill only provides position and yield snapshots for existing holdings. |
| Empty cex_rebate_user_info means I have no commissions | Partner commission rows may still exist in cex_rebate_partner_commissions_history; empty user_info does not block an S4 report. |
cex_rebate_user_info may return an empty object. You can still build a meaningful S4 report from cex_rebate_partner_commissions_history (and other S4 read tools such as partner sub list and transaction history). Empty user_info does not mean there is no commission data.cex_rebate_partner_commissions_history returns historical commission rows. commissionAsset is commonly USDT or POINT; rows may also carry a source dimension such as FUTURES, SPOT, TradFi, or ALPHA (names as returned by the API).user_info does not expose a ready-made cumulative rebate figure, do not invent a single "total rebate" number. To state aggregate USDT and POINT from history alone, you must page through the full history (use the API's offset/limit parameters, e.g. limit 100 per request), repeat until no more rows, then sum commissionAmount grouped by commissionAsset. If the session has not completed all pages, state that explicitly and do not guess totals.gate-runtime-rules.md — Exchange runtime rules (precision, price limits), referenced before executing borrow operationsNote: Unified account specifications (margin ratio calculation, borrowing rules, mode switching constraints) are embedded in the Domain Knowledge and Safety Rules sections of this SKILL.md. For detailed unified-account rules, refer to the gate-exchange-unified L1 skill.
Category: Strong confirmation · Action Draft — All unified-account mutations below use an Action Draft plus an explicit user confirmation in the immediately preceding turn. There is no silent execution.
| Risk level | Operation type | Involved tools | Confirmation requirement |
|------------|------------------|----------------|--------------------------|
| Medium | Switch unified account mode / set per-currency leverage / set collateral | cex_unified_set_unified_mode, cex_unified_set_user_leverage_currency_setting, cex_unified_set_unified_collateral | Single confirmation plus a risk disclosure in the Action Draft. If the operation includes mode switch (cex_unified_set_unified_mode), the draft must state that the mode change is irreversible (or equivalent clear wording). |
| High | Lending — borrow or repay | cex_unified_create_unified_loan | Action Draft must list amount, currency, and estimated or applicable interest rate (from cex_unified_get_unified_estimate_rate — hourly estimate — or API response), then user confirmation before execution. |
Implementation notes
cex_unified_get_unified_estimate_rate: Treat returned rates as hourly estimates when quoting to the user or filling Action Drafts (see Domain Knowledge: Unified account estimated borrow rate).All write operations require explicit user confirmation before execution. The confirmation flow is:
| Risk Level | Operations | Tools | Confirmation |
|------------|-----------|-------|--------------|
| Medium | Switch unified mode, set leverage, set collateral | cex_unified_set_unified_mode, cex_unified_set_user_leverage_currency_setting, cex_unified_set_unified_collateral | Action Draft + single confirmation + risk note; mode switch: irreversibility must be stated |
| High | Borrow / Repay | cex_unified_create_unified_loan | Action Draft with amount, currency, interest rate → user confirmation |
Without explicit user confirmation, no write operation is executed. Only read and query operations are allowed.
If parameters change after confirmation (different currency, amount, or operation type), the previous confirmation is invalidated and a new Action Draft must be presented.
| Error Type | Handling Strategy | |------------|-------------------| | Single read tool timeout/error | Skip that dimension, note "this section is temporarily unavailable", continue other dimensions | | Write tool failure | Do not retry; explain failure reason and guide user to App/Web for manual operation | | Missing required parameter (write) | Ask user to specify (e.g. "Please confirm the currency and amount to borrow") | | Unrecognisable intent | Fall back to S1 (asset overview) | | Tool call returns empty data | Use natural language "no records found"; do not display tool names |
## Account and Asset Risk Report
| Dimension | Status |
|-----------|--------|
| Data Timestamp | {timestamp} |
| Activated Signals | {S1/S2/S3/S4} |
### S1 Asset Overview (if activated)
{asset_panorama_table}
### S2 Risk and Margin (if activated)
{margin_and_position_risk_table}
Note: Liquidation prices and margin ratios are reference values. Subject to the exchange's actual liquidation rules.
### S3 Earn Snapshot (if activated)
{simpleearn_and_staking_summary}
### S4 Affiliate Report (if activated)
{rebate_and_commission_summary}
Note: If `cex_rebate_user_info` is empty, rely on `cex_rebate_partner_commissions_history` (and other S4 tools). Do not fabricate lifetime USDT/POINT totals unless all history pages were fetched and summed by `commissionAsset`. Point to App/Web partner center for official cumulative figures when appropriate.
Medium-risk settings (set_unified_mode, set_user_leverage_currency_setting, set_unified_collateral):
## Action Draft (medium-risk · strong confirmation)
| Item | Value |
|------|-------|
| Operation | {set collateral / set leverage / switch unified mode} |
| Target | {currency / mode / leverage value} |
| Amount or config | {as applicable} |
| Risk warning | {e.g. impact on margin; if mode switch: **this change is irreversible**} |
Reply **Y** to confirm or **N** to cancel.
High-risk lending (create_unified_loan — borrow or repay):
## Action Draft (high-risk · strong confirmation)
| Item | Value |
|------|-------|
| Operation | {borrow / repay} |
| Currency | {e.g. USDT} |
| Amount | {numeric amount} |
| Interest rate | {hourly estimated rate from `cex_unified_get_unified_estimate_rate` / API; state **hourly** — not APR unless explicitly converted and labeled reference-only} |
| Risk warning | {e.g. interest accrual, repayment obligation} |
Reply **Y** to confirm or **N** to cancel.
tools
Exchange listing tracker. Use this skill whenever the user asks about exchange listing, delisting, or maintenance announcements. Trigger phrases include: any new coins listed recently, what did Binance list, new listings, delisted. MCP tools: news_feed_get_exchange_announcements, info_coin_get_coin_info, info_marketsnapshot_get_market_snapshot.
testing
Event attribution and explanation. Use this skill ONLY when the user's query is exclusively about the reason behind a price move with no other analysis dimensions. Trigger phrases: why did X crash, what just happened, why is it pumping, what caused. If the query ALSO mentions fundamentals, risk check, technicals, or any other analysis dimension, use gate-info-research instead — it handles multi-dimension queries in a single unified report.
tools
Community sentiment via Gate-News MCP, X/Twitter-first. Use for social discussion, KOL takes, or opinion on a coin or topic. Triggers: what does the community think about ETH, Twitter or X sentiment, what are people saying, KOL opinions. Reddit, Discord, Telegram when search_ugc is available; until then label output as X/Twitter-only. Tools: news_feed_search_x, news_feed_get_social_sentiment.
testing
News briefing. Use this skill ONLY when the user's query is exclusively about recent news or headlines with no other analysis dimensions. Trigger phrases: what happened recently, today's highlights, crypto news, any new updates. If the query ALSO mentions coin analysis, risk check, technicals, or any other analysis dimension, use gate-info-research instead — it handles multi-dimension queries in a single unified report.