Install
openclaw skills install gate-exchange-dualGate dual investment skill. Use when the user asks about dual currency products, target price settlement, or placing dual orders. Triggers on 'dual investment', 'dual currency', 'target price', 'exercise price', 'dual orders', 'dual balance', 'sell-high', 'buy-low', 'place dual order', 'subscribe dual'.
openclaw skills install gate-exchange-dual⚠️ 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
| MCP Server | Status |
|---|---|
| Gate (main) | ✅ Required |
Query Operations (Read-only)
Execution Operations (Write)
GATE_API_KEY, GATE_API_SECRET)gate-mcp-cursor-installergate-mcp-codex-installergate-mcp-claude-installergate-mcp-openclaw-installerRead and strictly follow references/mcp.md, then execute this skill's dual-investment workflow.
SKILL.md keeps routing and product semantics.references/mcp.md is the authoritative MCP execution layer for plan lookup, confirmation-gated placement, and order verification.| Tool | Auth | Description |
|---|---|---|
cex_earn_list_dual_investment_plans | Yes | List available dual investment plans (optional param: plan_id) |
cex_earn_list_dual_orders | Yes | List dual investment orders. page and limit are required: always pass page=1, limit=100. Optional: from, to. MUST loop all pages (increment page until returned rows < limit) before drawing any conclusion. |
cex_earn_list_dual_balance | Yes | Get dual investment balance & interest stats |
cex_earn_place_dual_order | Yes | Place a dual investment order. Params: plan_id (required), amount (required), text (optional, must start with t-, max 28 bytes after prefix, alphanumeric/_/-/. only). |
| Case | User Intent | Signal Keywords | Action |
|---|---|---|---|
| 1 | Browse dual product list | "dual products", "sell-high / buy-low options" | See references/product-query.md |
| 3 | Product details | "min investment", "BTC sell-high" | See references/product-query.md (filter locally by currency; show matching plans, skip min amount) |
| 4 | Settlement simulation | "what happens at delivery", "if price reaches X" | See references/product-query.md (simulation) |
| 5 | Position summary (ongoing) | "how much locked", "active positions" | See references/product-query.md (ongoing + balance) |
| 6 | Settlement records | "settlement records", "got crypto or USDT", "last month orders" | See references/product-query.md (settled) |
| 7 | Sell-high order (invest crypto) | "sell high for me", "sell high with BTC", "sell high order" | See references/subscription.md |
| 8 | Buy-low order (invest stablecoin) | "buy low for me", "buy low BTC with USDT", "buy low order" | See references/subscription.md |
| 9 | Amount eligibility for order | "can I buy", "is 5000U enough" | See references/subscription.md |
| 10 | Min purchase check for order | "minimum to buy", "can I buy dual with 50U" | See references/subscription.md |
| 11 | Settlement result query | "what did I receive", "settlement result" | See references/settlement-assets.md (settlement) |
| 12 | Dual asset briefing | "dual balance", "total locked" | See references/settlement-assets.md (balance) |
| 13 | Currency conversion risk | "will I lose principal", "risk", "principal-protected?" | Domain Knowledge (no API) |
| 14 | Missed gains explanation | "did I lose money", "missed gains", "price surged" | Domain Knowledge (no API) |
| 15 | Restricted region | "can I buy dual in [region]", "which regions supported" | See references/subscription.md (compliance) |
| 17 | Compliance check failure | "subscription failed", "compliance check not passed" | See references/subscription.md (compliance) |
references/ and follow the Workflow.references/subscription.md and follow the order placement Workflow.references/subscription.md and follow the compliance handling Workflow. These cases are triggered by cex_earn_place_dual_order error responses or by the user asking about region restrictions.cex_earn_list_dual_orders has NO type field. Derive from invest_currency: crypto (BTC, ETH...) → Sell High (Call); stablecoin (USDT) → Buy Low (Put). Filter by coin using invest_currency or exercise_currency — there is NO instrument_name.INIT (Pending), PROCESSING (In Position), SETTLEMENT_SUCCESS (Settled), SETTLEMENT_PROCESSING (Settling), CANCELED (Canceled), FAILED (Failed), REFUND_SUCCESS / REFUND_PROCESSING / REFUND_FAILED → display as "Early Redemption", never "Refund". Early-redeemed orders have zero yield.Sell High: Invest 1 BTC, target price 20,000 USDT, 31 days, 100% APY
Buy Low: Invest 20,000 USDT, target price 20,000 USDT, 31 days, 100% APY
Q: Will I lose principal? (Case 13) A: Interest-guaranteed, not principal-protected. You always receive principal + interest, but the settlement currency may change. Sell-high may return crypto instead of USDT; buy-low may return USDT instead of crypto. The closer the target price to the current price, the higher the yield but also the higher the conversion risk.
Q: I sold high on BTC and it surged — did I lose money? (Case 14) A: When settlement price ≥ target price, you successfully sell at the target price and receive USDT, but miss gains above the target price. When settlement price < target price, you get back crypto + interest. This product suits sideways or mildly bullish markets; in strong bull markets you may "miss out" on excess gains.
delivery_time, create_time, complete_time, delivery_timest) are Unix timestamps (seconds). Do NOT convert them to dates or display them to the user in any form. This includes: (1) Do NOT show timestamps as table columns. (2) Do NOT convert timestamps to dates and use them as section headers or grouping labels (e.g. "Delivery Time: 2026-03-17"). (3) Do NOT mention delivery dates in order confirmations. Simply omit all time-related information from user-facing output.apy, apy_display, apy_settlement, apyDisplay, or any other rate field) returned by any dual investment tool is a raw value — NOT a percentage. You MUST multiply by 100 then append % for display. NEVER display the raw value directly as a percentage. Common mistake: values like 1.1343 or 16.133 look like percentages but they are NOT — 1.1343 → 113.43%, 16.133 → 1613.3%. Another example: 0.0619 → 6.19%, 2.7814 → 278.14%. Use the raw value only in settlement formulas. This rule applies to ALL dual tools (cex_earn_list_dual_investment_plans, cex_earn_list_dual_orders, cex_earn_list_dual_balance, etc.).19.9378, the correct display is 1993.78% — NOT 19.94%.cex_earn_place_dual_order, MUST show the user the full order details (plan, amount, target price, APY, settlement scenarios) and get explicit user confirmation. NEVER place an order without confirmation.| Condition | Response |
|---|---|
| Auth endpoint returns "not login" | "Please log in to your Gate account first." |
cex_earn_list_dual_investment_plans returns empty | "No dual investment plans available at the moment." |
cex_earn_list_dual_orders returns empty | "No dual investment orders found for the specified criteria." |
cex_earn_place_dual_order returns region restriction error | See Case 15 in references/subscription.md |
cex_earn_place_dual_order returns other compliance error | See Case 17 in references/subscription.md |
cex_earn_place_dual_order returns insufficient balance | "Insufficient balance. Please ensure your account has enough funds and try again." |
cex_earn_place_dual_order returns other failure | Display the error message returned by the API to the user. |
See references/scenarios.md for full prompt examples and expected behaviors covering all 17 cases.