gate-info-risk
Use this skill whenever the user needs a risk- or safety-first check for a token, address, or project. Covers contract risk, address compliance labels, and project incidents via gate-cli. Triggers: is this coin safe, honeypot, sanctioned, compliance. Info primary; news auxiliary. Delegate: gate-info-research, gate-info-web3 (on-chain), gate-news-intel (events). v0.5.2; check-address-risk not shipped—use get-address-info; scope-limited if no labels.
What this skill does
# gate-info-risk
## 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](https://github.com/gate/gate-skills/blob/master/skills/gate-runtime-rules.md)
→ Also read [info-news-runtime-rules.md](https://github.com/gate/gate-skills/blob/master/skills/info-news-runtime-rules.md) for **gate-info** and **gate-news** shared rules.
- **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.
## CLI and playbook contract
1. Every CLI command MUST exist under `gate-cli v0.5.2`. This skill explicitly does NOT call `info compliance check-address-risk` (not shipped); address risk comes from `info onchain get-address-info`.
2. Call `gate-cli info …` / `gate-cli news …` only as listed in [playbooks/gate-info-risk.yaml](https://github.com/gate/gate-skills/blob/master/playbooks/gate-info-risk.yaml). When preflight `route` is `CLI`, do **not** call Gate MCP tools from this skill.
3. Missing data NEVER counts as "low risk". When the primary command for a chosen playbook is unavailable, the verdict is **UNABLE_TO_ASSESS** (scope limited; localized labels may appear in the user report) plus an explicit retry hint.
4. Always pass `--format json`. Required slots (`token`+`chain`, `address`+`chain`, `symbol`) must be present; if ambiguous, ask the user.
5. The report is safety-first: the verdict line comes BEFORE evidence, and high-severity items are always surfaced before medium or low.
6. No buy / sell advice. No price predictions. Use verdict bands **HIGH / MEDIUM / LOW / UNABLE_TO_ASSESS** in this skill’s logic; the final user report may localize those labels. Always include a **“what to verify next”** list.
---
## Step 0 — Preflight
Follow the shared contract in [skills/_shared/preflight.md](https://github.com/gate/gate-skills/blob/master/skills/_shared/preflight.md) verbatim. Summary:
1. Run `gate-cli preflight --format json`; parse `.route`, `.status`, `.user_message`.
2. Branch: `CLI` → continue; `MCP_FALLBACK` → emit `__FALLBACK__` and halt; `BLOCK` → echo `user_message` and halt.
3. When `status == "ready_with_migration_warning"`, Step 3 appends one migrate hint at the very end of the report.
Do NOT run any data-collection command until Step 0 returns `route == "CLI"`.
---
<!--
Step 0.5 — Skill update check (OPT-IN, disabled by default).
The script [scripts/update-skill.sh](https://github.com/gate/gate-skills/blob/master/scripts/update-skill.sh) is shipped and functional, but agents
do NOT run it as part of the normal flow (zero overhead, no token needed).
Skill authors can still invoke it manually when they want to sync SKILL.md
from upstream:
bash "$SKILL_ROOT/scripts/update-skill.sh" check gate-info-risk
Result semantics, strict-check mode (`GATE_SKILL_CHECK_STRICT=1`) and the
auto-apply path (`GATE_SKILL_UPDATE_MODE=auto`) are documented in
[skills/_shared/update-workflow.md](https://github.com/gate/gate-skills/blob/master/skills/_shared/update-workflow.md). To re-enable
this step inside the agent flow, delete this HTML comment wrapper so the
block becomes part of the rendered SKILL.md again.
-->
---
## Step 1 — Intent routing
Pick exactly one playbook id from [playbooks/gate-info-risk.yaml](https://github.com/gate/gate-skills/blob/master/playbooks/gate-info-risk.yaml):
| Playbook id | When to pick | Required slots |
|----------------|-----------------------------------------------------------------------------------------------------------|-----------------------------|
| `token_risk` | "is this token safe", "is there a honeypot", "taxes too high", "holder concentration" — subject is a token contract. | `token`, `chain` (the `token` slot accepts ticker OR contract address) |
| `address_risk` | "is this address safe", "sanctioned / OFAC", "blacklist", "is this wallet risky". | `address`, `chain` |
| `project_risk` | "compliance or incident risk for this project", "has there been a security incident on {project}", "exchange announcement risk". | `symbol` |
### Slot extraction rules
- `check-token-security` takes **exactly one** of `--token` or `--address` — the CLI explicitly rejects passing both (see the CLI error message; mutually exclusive). This skill always uses `--token` because the flag is polymorphic: it accepts BOTH tickers (`USDT`) and contract addresses (`0xdAC17F...`, SPL mints, TRX mints). **Agent slot-extraction rule**: when the user mentions a contract address for a token-risk query, store that address in the `token` slot directly — do NOT create a parallel `address` slot for this playbook. Always pair with `--chain`.
- `chain` canonical form (always **send** the short id on `--chain`): `eth`, `bsc`, `polygon`, `arb`, `op`, `base`, `avax`, `solana`, `tron`, ... Accept common long-form aliases from users (`ethereum`, `arbitrum`, `optimism`, `avalanche`, `bnb`, `matic`) and normalize to the short id before calling the CLI. Response `.chain` echo is **endpoint-dependent** — sometimes short (`eth`→`eth`), sometimes long (`arb`→`arbitrum`). Parsers MUST accept both alias forms; see [skills/gate-info-risk/references/troubleshooting.md](https://github.com/gate/gate-skills/blob/master/skills/gate-info-risk/references/troubleshooting.md) (canonical alias table for input normalization and response parsing).
- `address` is a wallet. If the user asks about a token contract but passed an address, confirm which they mean.
- `symbol` for `project_risk` is the listed coin ticker; resolve ambiguous project names before calling `news` commands.
- Missing or ambiguous required slot → STOP, ask the user. Do not guess.
### Cross-skill routing at Step 1
| User signal | Route to |
|-----------------------------------------------------------------------------|-------------------------------------|
| "just give me a general analysis of this coin", no safety framing | `gate-info-research` |
| "who is this address / what is it doing on-chain" (not risk-first) | `gate-info-web3` |
| "why did it drop" / "community view on incident" | `gate-news-intel` |
---
## Step 2 — Data collection
All commands use `--format json`. Commands inside the same `parallel_group` run concurrently.
### 2.A `token_risk`
Required:
- `gate-cli info compliance check-token-security --token {token} --chain {chain} --scope full`
Optional (run in parallel with the above):
- `gate-cli info coin get-coin-info --query {symbol_or_token} --chain {chain} --scope basic` — project fundamentals for context.
- `gate-cli info onchain get-token-onchain --token {token} --chain {chain} --scope full` — holder concentration, smart-money flow.
### 2.B `address_risk`
Required:
- `gate-cli info onchain get-address-info --address {address} --chain {chain} --scope basic` — risk labels, tags, scoped balance summary.
Optional:
- `gate-cli info onchain get-address-transactions --address {address} --chain {chain} --time-range 30d --min-value-usd 100000 --limit 50` — recent large flows; helps flag mixing / exchange hopping.
> **Scope-limited rule**: `gate-cli` v0.5.2 does not expose `info compliance check-address-risk`. If `get-address-info` returns no risk labels or tags, the final verdict MUST be **UNABLE_TO_ASSESS** (localized in user output) with a note to re-check once the dedicated address-risk command ships.
### 2.C `project_risk`
Required (run in parallel):
- `gate-cli news feed search-news --coin {symbol} --limit 10 --sort-by importance --time-range 7d`
- `gate-cli news events get-latest-events --coin {symbol} Related in Web3
xaut-trade
IncludedBuy or sell XAUT (Tether Gold) on Ethereum. Supports market orders (Uniswap V3) and limit orders (UniswapX). Wallet modes: Foundry keystore or WDK. Delegates non-XAUT intents to registered skills (e.g. Polymarket prediction markets, Hyperliquid trading). Triggers: buy XAUT, XAUT trade, swap USDT for XAUT, sell XAUT, swap XAUT for USDT, limit order, limit buy XAUT, limit sell XAUT, check limit order, cancel limit order, XAUT when, create wallet, setup wallet, polymarket, prediction market, bet on, odds on, hyperliquid, perp, perpetual, long, short, open long, open short, close position, leverage.
qfc-openclaw-skill
IncludedQFC blockchain interaction — wallet, faucet, chain queries, staking, epoch & finality, AI inference
gate-dex-trade
IncludedExecutes on-chain token swaps via Gate DEX. Use when user wants to swap, buy, sell, exchange, or convert tokens, or bridge cross-chain. Covers full swap flow: price quotes, transaction build, signing, and submission. Do NOT use for read-only data lookups or wallet account management.
hunch
IncludedDiscover, bet on, track, and settle Hunch prediction markets in natural language. Trigger when a user wants to bet, take a position, or get odds on a crypto outcome — token market-cap milestones and flips, launchpad races (Bankr vs pump.fun volume / #1-days / launches over a cap), token head-to-head outperformance, mcap strike-ladders, and up/down price rounds. Also trigger on "what can I bet on about $TOKEN", "odds on …", "take YES/NO on …", "show my Hunch bets", "did my market resolve". Settles in USDC on Base via x402 (≤ $10 / bet); every bet returns an on-chain proof.
opensea
IncludedQuery NFT data, trade on the Seaport marketplace, and swap ERC20 tokens across Ethereum, Base, Arbitrum, Optimism, Polygon, and more.
polymarket
IncludedTrade on Polymarket prediction markets (CLOB V2) from a Privy EOA wallet. Search markets, place/cancel orders, manage positions. No private key handling. Use when the user wants to bet on event outcomes (e.g. "buy YES at 0.65 on the ceasefire market", "what are my open positions", "close my Trump bet").