gate-exchange-candydrop
Resolving gate-cli (binary path)
Resolve gate-cli in order: (1) command -v gate-cli and gate-cli --version succeeds; (2) ${HOME}/.local/bin/gate-cli if executable; (3) ${HOME}/.openclaw/skills/bin/gate-cli if executable. Canonical rules: exchange-runtime-rules.md §4 (or gate-runtime-rules.md §4).
Gate Exchange CandyDrop
Authoring language: This skill’s instructions and reference prose are written in English (Gate skill standard). End-user replies still follow Language adaptation (match the user’s locale).
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 gate-runtime-rules.md
- Only use the
gate-clicommands explicitly listed in this skill. Commands not documented here must NOT be run for these workflows, even if other interfaces expose them.
Skill Dependencies
gate-cli commands used
Query Operations (Read-only, Public)
gate-cli cex launch candy-drop activitiesgate-cli cex launch candy-drop rules
Query Operations (Read-only, Auth Required)
gate-cli cex launch candy-drop progressgate-cli cex launch candy-drop participationsgate-cli cex launch candy-drop airdrops
Execution Operations (Write)
gate-cli cex launch candy-drop register
Authentication
- Interactive file setup: when
GATE_API_KEYandGATE_API_SECRETare not both set on the host, rungate-cli config initto complete the wizard for API key, secret, profiles, and defaults (see gate-cli). - Env / flags:
gate-cli config initis not required when credentials are already supplied — e.g. bothGATE_API_KEYandGATE_API_SECRETset on the host, or--api-key/--api-secretwhere supported — never ask the user to paste secrets into chat. - Permissions: Launch:Write
- Portal: create or rotate keys outside the chat: https://www.gate.com/myaccount/profile/api-key/manage
Installation Check
- Required: Gate (main), Gate (trading);
gate-cliwhen using CLI-backed flows (install viasetup.shfrom this skill when applicable). - Install (MCP / IDE): Run installer skill for your environment — Cursor:
gate-mcp-cursor-installer; Codex:gate-mcp-codex-installer; Claude:gate-mcp-claude-installer; OpenClaw:gate-mcp-openclaw-installer. - Credentials: When
GATE_API_KEYandGATE_API_SECRETare both set (non-empty) for the host, do not requiregate-cli config init— that is equivalent valid config forgate-cli. When both are unset or empty, remind the operator to rungate-cli config initor to configureGATE_API_KEY/GATE_API_SECRETin the matching skill from the skill library (never ask the user to paste secrets into chat). - Sanity check: Before authenticated or mutating calls, confirm the runtime works (e.g.
gate-cli --versionor a read-only check appropriate to this skill); resolve credentials before registration or write operations.
Execution mode
Read and strictly follow references/gate-cli.md, then execute this skill's CandyDrop workflow.
SKILL.mdkeeps routing and product semantics.references/gate-cli.mdis the authoritativegate-cliexecution contract for activity/rule queries, registration confirmation gates, progress/record queries, and result verification.
Module overview
| Module | Description | Trigger keywords |
|---|---|---|
| Activity List | Browse CandyDrop activities, filter by status/coin/task type | candydrop, candydrop activities, activity list, ongoing candydrop, USDT candydrop |
| Activity Rules | View activity rules, prize pools, and tasks | activity rules, task rules, prize pool, reward rules, candydrop rules |
| Register | Register for a CandyDrop activity | register, join activity, candydrop register, participate candydrop |
| Task Progress | Query task completion progress for enrolled activities | task progress, completion progress, progress query, task progress |
| Participation Records | Query registration/participation history | participation records, registration records, history records, participation records |
| Airdrop Records | Query airdrop/reward distribution records | airdrop records, reward records, received records, airdrop records |
Domain Knowledge
CandyDrop concepts
| Concept | Description |
|---|---|
| CandyDrop | A Gate activity platform where users complete tasks (trading, depositing, etc.) to earn airdrop rewards from prize pools. |
Activity (currency / activity_id) |
A CandyDrop campaign for a specific token. Identified by currency (token symbol) or activity_id (numeric ID). |
| Activity Status | Lifecycle: upcoming (upcoming) → ongoing (ongoing) → ended (ended). |
| Registration Status | registered (already registered) or unregistered (not yet registered). |
| Record Status | For participation records: ongoing (in progress), awaiting_draw (awaiting draw), won (won), not_win (not won). |
| Prize Pool | Each activity has one or more prize pools, each with a total prize amount (prize_all), per-user cap (prize_limit), and a list of tasks. |
| Task | Individual challenges within a prize pool (e.g. spot trading, futures trading, deposit, invite). Each has a name (task_name), description (task_desc), and exclusive label (exclusive_label). |
| Task Progress | The user's current completion value for a task (e.g. trading volume, deposit amount). Only shown for registered tasks (task_status > 0). |
Timestamp formatting
- API returns time fields (e.g.
start_time,end_time,register_time,airdrop_time) as pre-formatted UTC strings in the formatYYYY-MM-DD HH:MM:SS(UTC). - Tables / lists: Put
(UTC)in the column header when the time is UTC. If the header already says(UTC)(ASCII or full-width punctuation variants), do not repeat it on every cell: strip a trailing(UTC)from the API value and showYYYY-MM-DD HH:MM:SSonly (example:2026-04-13 04:04:10, not2026-04-13 04:04:10(UTC)). If the header does not mark UTC, keep the API string as-is so the zone is not lost. - Other surfaces (e.g. inline sentences without a UTC-labeled header): you may keep the API form or use header + stripped cell style consistently within one reply.
- Query parameters
start_time/end_timefor records are integer unix timestamps (seconds). See Timestamp strategy inreferences/records.mdfor correct computation.
Number formatting
| Category | Precision | Examples |
|---|---|---|
| Amounts (rewards, progress values) | 8 decimals, trailing zeros removed | 1.23 not 1.23000000 |
Airdrop rewards (display) |
Same numeric formatting, then append + row currency |
4.02032 ETH not 4.02032 |
| Percentage-like fields | 2 decimals, trailing zeros retained | 5.20% not 5.2% |
Dual-parameter resolution
Activity query interfaces support locating an activity by either activity_id or currency:
currency(e.g. "USDT"): API auto-matches the nearest active activity for that token.activity_id: Precise numeric ID lookup.- Priority:
currencyis preferred. If user provides both, use both. If onlyactivity_idis given, use it directly. If neither is provided for rules/progress, ask the user forcurrency.
Routing rules
| Intent | Example phrases | Route to |
|---|---|---|
| Browse activities | "Show CandyDrop activities", "ongoing candydrop events", "USDT candydrop" | Read references/activities.md |
| Activity rules | "Show CandyDrop rules", "what tasks are in this candydrop", "prize pool details" | Read references/activities.md |
| Register | "Register for CandyDrop USDT", "join this candydrop activity" | Read references/register.md |
| Task progress | "My CandyDrop task progress", "check my candydrop task progress" | Read references/progress.md |
| Participation records | "My CandyDrop participation history", "registration records" | Read references/records.md |
| Airdrop records | "My CandyDrop airdrop rewards", "view airdrop records" | Read references/records.md |
| Unclear | "CandyDrop" | Clarify: browse / rules / register / progress / records, then route. If defaulting to browse/list, reply with minimal activity list only (see references/activities.md → Activity list — answer directly). |
Execution
1. Intent and parameters
- Determine module (Activity List / Activity Rules / Register / Task Progress / Participation Records / Airdrop Records).
- Register intent: Route to
references/register.md. Requirescurrency(required) and optionallyactivity_id. Must follow Preview-Confirm flow. - Records intent: Route to
references/records.md. Extractcurrency,status,start_time,end_time,page,limit. - Extract parameters:
currency,activity_id,status,rule_name,register_status,limit,offset,page,start_time,end_time. - Missing: If user says "CandyDrop" without specifying intent, ask which operation or show activities by default — if showing the list, use concise output (title + table, no glossary; see
references/activities.md).
2. Tool selection
| Module | MCP tool | Required params | Optional params |
|---|---|---|---|
| Activity List | gate-cli cex launch candy-drop activities |
— | currency, status, rule_name, register_status, limit, offset |
| Activity Rules | gate-cli cex launch candy-drop rules |
currency or activity_id (at least one) |
— |
| Register | gate-cli cex launch candy-drop register |
currency |
activity_id |
| Task Progress | gate-cli cex launch candy-drop progress |
currency or activity_id (at least one) |
— |
| Participation Records | gate-cli cex launch candy-drop participations |
— | currency, status, start_time, end_time, page, limit |
| Airdrop Records | gate-cli cex launch candy-drop airdrops |
— | currency, start_time, end_time, page, limit |
- Register: Show registration preview, wait for confirmation, then call
gate-cli cex launch candy-drop register. - Records: Follow the Timestamp strategy in
references/records.mdfor time parameter computation.
3. Format response
- Use the Response Template and field names from the reference file for the chosen module.
- Activity List: Optional one-line title + data table; for browse / “what activities are there” intents, no tutorial, field glossary, or pasting the task-type map — localize
rule_nameonly inside cells. Fields:currency,total_rewards,start_time,end_time,rule_name,participants,user_max_rewards. - Activity Rules: show
currency,total_rewards,start_time,end_time, and per prize pool:prize_all,prize_limit,tasks. - Register: show confirmation result (
success). - Task Progress: show
currency,total_rewards,start_time,end_time, and per task:task_name,task_desc,value. - Participation Records: show
currency,status,register_time,id(time cells: strip trailing(UTC)when the table header already marks UTC — see Timestamp formatting above). - Airdrop Records: show
currency,airdrop_time,rewardswith token unit ({rewards} {currency}) only — do not show flash-convert / USDT (convert_amount) (seereferences/records.md).
Report template
After each operation, output a short standardized result consistent with the reference (e.g. activity list, rules, registration confirmation, progress, records). Activity list answers stay minimal (see references/activities.md). Use the API field names and semantic values; where the reference requires localization (e.g. rule_name task types), render in the user’s language per references/activities.md without embedding the whole mapping as user-visible prose.
Language adaptation: Always respond in the same language as the user's input. The Response Templates in reference files define the structure and fields to display, not the literal output language. Translate all display labels to match the user's language.
Must localize (not tickers / not “keep English”):
rule_nameentries in the activity list (and anywhere shown as “task type”): use the Task types mapping table inreferences/activities.md— these strings describe product task categories (e.g. Futures, Simple Earn), not token symbols.
Do NOT translate (keep as-is regardless of language):
- Product name:
CandyDrop - Currency symbols from API: USDT, GT, BTC, DOGE, etc.
- Technical IDs and their values:
id,activity_id(internal use, do NOT display unless relevant) - Timestamp layout
YYYY-MM-DD HH:MM:SSand the literal(UTC)token when it must remain visible (e.g. no UTC in header); do not drop timezone information in those cases - API error labels:
INVALID_PARAM_VALUE,SERVER_ERROR - Numeric values, percentages, and the unit
USDin thresholds
All other display labels should be translated to match the user's language.
Error Handling
API error labels
The API returns structured errors with a label field. Map them as follows:
| API label | User-facing message |
|---|---|
INVALID_PARAM_VALUE |
"Invalid request parameters. Please check your input and try again." |
SERVER_ERROR |
"System busy. Please try again later." |
Activity not found |
"Activity not found. Please check the currency or activity ID." |
currency is required |
"Please provide a currency name (e.g. USDT)." |
Device token is required |
"Registration requires a device token. Please try from the Gate app or website." |
Empty result handling
| Scenario | Action |
|---|---|
| Empty activity list | "No CandyDrop activities match your criteria. Try different filters or check back later." |
| Empty participation records | "You have no CandyDrop participation records. Browse active activities to get started." |
| Empty airdrop records | "No airdrop rewards found. Rewards are typically distributed after the activity ends." |
| Compliance restriction | "Due to compliance restrictions, CandyDrop is not available in your region." |
| API error / 401 | "Unable to fetch CandyDrop data. Please log in and try again." |
Safety rules
Confirmation required
- Register is a write operation. Before calling
gate-cli cex launch candy-drop register, MUST show a registration preview and wait for explicit user confirmation. - Preview format: activity currency, activity ID (if known).
- Ask user to reply "confirm" to proceed or "cancel" to abort.
- Only call the API after receiving explicit confirmation.
Compliance
- When the API returns a compliance or region restriction error, display a friendly message: "Due to compliance restrictions, CandyDrop is not available in your region." Do NOT retry.
Data integrity
- Preserve
currencyandactivity_idexactly as the user provided. - Do NOT fabricate activity data, reward amounts, or task progress.
- Only display data returned by actual API responses.
More from gate/gate-skills
gate-exchange-futures
Gate Exchange USDT perpetual futures trading skill. Use when the user wants to trade contracts, open/close perpetual positions, or manage futures leverage. Triggers on 'open long', 'close short', 'USDT perpetual', 'futures TP/SL'.
125gate-exchange-spot
Gate spot trading and account operations skill. Use when the user asks to buy/sell crypto on spot, check account value, list spot balances, or place conditional/trigger orders. Triggers on 'buy coin', 'sell spot', 'take profit', 'stop loss', 'cancel order', 'my spot balance', '查看我的现货账户余额', or '现货账户余额'.
113gate-exchange-marketanalysis
Gate Exchange market analysis tool. Use when the user asks for deep market metrics like liquidity, slippage, funding arbitrage, or manipulation risk. Triggers on 'liquidity', 'depth', 'slippage', 'momentum', 'buy/sell pressure', 'squeeze', 'funding rate', 'arbitrage', 'basis', 'premium'.
102gate-news-briefing
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.
95gate-info-trendanalysis
Trend and technical analysis. Use this skill ONLY when the user's query is exclusively about technical indicators or trend analysis for one coin with no other analysis dimensions. Trigger phrases: technical analysis, K-line, RSI, MACD, trend, support, resistance. If the query ALSO mentions fundamentals, risk, news, sentiment, or any other analysis dimension, use gate-info-research instead — it handles multi-dimension queries in a single unified report.
84gate-dex-market
On-chain DEX market data queries via Gate: token prices/价格, K-line/OHLC candlestick charts, token rankings, security risk audits, new token discovery, holder analysis, and trading volume stats. Read-only — no transactions. Use when the user asks for 'token price', 'price of ETH', 'check SOL price', '查价格', 'K线', 'candlestick', 'OHLC', 'top gainers', 'trending tokens', 'is this token safe', 'honeypot check', 'new tokens', 'trading volume', or 'liquidity events'. Do NOT use for swap/trade execution (use gate-dex-trade) or wallet balance/account queries (use gate-dex-wallet).
76