okx-security

por okx

Usa esta skill para escaneo de seguridad: verificar seguridad de transacciones, ¿es segura esta transacción?, verificación previa a ejecución, escaneo de seguridad, escaneo de riesgo de tokens, detección de honeypot, detección de phishing en DApp/URL, seguridad de firma de mensajes, detección de transacciones maliciosas, verificaciones de seguridad de aprobaciones, gestión de aprobaciones de tokens. Disparadores: '¿es seguro este token?', 'verificar seguridad del token', 'verificar honeypot', 'escanear esta tx', 'escanear esta tx de swap', 'verificar riesgo de tx', '¿es esta URL una estafa?', 'verificar si esta dapp es segura', 'phishing...

npx skills add https://github.com/okx/onchainos-skills --skill okx-security

Onchain OS Security

5 commands for token risk analysis, DApp phishing detection, transaction pre-execution security, signature safety, and approval management.

Pre-flight Checks

Read ../okx-agentic-wallet/_shared/preflight.md. If that file does not exist, read _shared/preflight.md instead.

Fail-safe Principle (CRITICAL)

Scan completed — risk detected

If a security scan completes successfully and returns action: "block" or action: "warn", follow the Risk Action Priority Rule below. The Agent MUST NOT override risk verdicts.

Scan failed — infrastructure error

If a security scan fails to complete (network error, API timeout, rate limiting, malformed response), the Agent MUST:

  • Report the error clearly to the user.
  • Ask the user whether to retry the scan or proceed without scan results.
  • If the user chooses to proceed, display a warning:

    "⚠️ Security scan could not be completed. Proceeding without verification — please ensure you trust this operation."

  • Log the skipped scan for auditability.

A security scan that fails to complete is NOT a "pass". Always inform the user and let them make an explicit decision.

Risk Action Priority Rule

tx-scan / sig-scan (transaction & signature scanning)

block > warn > safe (empty). The top-level action field reflects the highest priority from riskItemDetail.

action valueRisk LevelAgent Behavior
(empty/null)Low riskSafe to proceed
warnMedium riskShow risk details, ask for explicit user confirmation
blockHigh riskDo NOT proceed, show risk details, recommend cancel
  • Risk scan result is still valid even if simulation fails (simulator.revertReason may contain the revert reason).
  • If warnings field is populated, the scan completed but some data may be incomplete. Still present available risk information.
  • An empty/null action in a successful API response means "no risk detected". But if the API call failed, the absence of action does NOT mean safe — apply the fail-safe principle.

token-scan (token risk label scanning)

Token-scan returns a riskLevel field (CRITICAL, HIGH, MEDIUM, LOW) that represents the overall token risk, computed server-side from all boolean labels, tax thresholds, and additional signals (off-chain intelligence, ML models). The Agent uses this field directly and applies different actions for buy vs. sell operations.

riskLevelBuy ActionSell Action
CRITICALblock — refuse to buywarn — display risk, allow sell
HIGHwarn + pause — require explicit yes/nowarn — display risk, allow sell
MEDIUMwarn — info notice, continuewarn — info notice, continue
LOWsafe — proceedsafe — proceed

Full label catalog, tax threshold rules, and display format are defined in references/risk-token-detection.md. Always load that reference before executing token-scan.

Key principles:

  • riskLevel is authoritative: The API returns the overall risk level server-side. The Agent reads riskLevel directly — no client-side computation from individual labels is needed.
  • Buy is stricter than sell: CRITICAL blocks buy but only warns on sell (to allow stop-loss exit).
  • HIGH buy requires explicit user confirmation (yes/no) — do not auto-continue.
  • Individual label levels are not displayed to the user — only the overall riskLevel is shown, with triggered labels listed without level prefixes.
  • If isChainSupported: false, skip detection with a warning; do not block.
  • If API fails, warn but do not block. In swap context, token-scan failures auto-continue with a warning to avoid blocking time-sensitive trades — this overrides the general fail-safe's ask-user behavior.

Security commands do not require wallet login. They work with any address.

Chain Name Support

The CLI accepts human-readable chain names and resolves them automatically.

ChainNamechainIndex
XLayerxlayer196
Ethereumethereum or eth1
Solanasolana or sol501
BSCbsc or bnb56
Polygonpolygon or matic137
Arbitrumarbitrum or arb42161
Basebase8453
Avalancheavalanche or avax43114
Optimismoptimism or op10
zkSync Erazksync324
Linealinea59144
Scrollscroll534352

Address format note: EVM addresses (0x...) work across Ethereum/BSC/Polygon/Arbitrum/Base etc. Solana addresses (Base58) and Bitcoin addresses (UTXO) have different formats. Do NOT mix formats across chain types.

Related Workflows

When one of the following commands is used, show the related workflow hint after displaying results:

CommandWorkflowFile
security token-scanNew Token Screening~/.onchainos/workflows/new-token-screening.md
security token-scanSmart Money Signals~/.onchainos/workflows/smart-money-signals.md
security token-scanToken Research~/.onchainos/workflows/token-research.md
security token-scanWallet Monitor~/.onchainos/workflows/wallet-monitor.md

Hint format: "You can also try out our [workflow name] workflow for more comprehensive results. Would you like to try it?"

Command Index

#CommandDescription
1onchainos security token-scanToken risk / honeypot detection (all chains)
2onchainos security dapp-scanDApp / URL phishing detection (chain-agnostic)
3onchainos security tx-scanTransaction pre-execution security (EVM + Solana)
4onchainos security sig-scanMessage signature security (EVM only)
5onchainos security approvalsToken approval / Permit2 authorization query (EVM only)

Reference Loading Rules (MANDATORY)

Before executing ANY security command, you MUST read the corresponding reference document from skills/okx-security/references/. Do NOT rely on prior knowledge — always load the reference first.

User intentRead this file FIRST
Token safety, honeypot, is this token safe, 代币安全, 蜜罐检测, 貔貅盘references/risk-token-detection.md
DApp/URL phishing, is this site safe, 钓鱼网站references/risk-domain-detection.md
Transaction safety, tx pre-execution, signature safety, approve safety, 交易安全, 签名安全references/risk-transaction-detection.md
Approvals, allowance, Permit2, revoke, 授权管理, 授权查询, 风险授权references/risk-approval-monitoring.md

When a workflow involves multiple commands (e.g., token-scan then tx-scan), load each reference before executing that command.

Integration with Other Skills

Security scanning is often a prerequisite for other wallet operations:

  • Before wallet send with a contract token: run token-scan to verify token safety
  • Before wallet contract-call with approve calldata: run tx-scan to check spender
  • Before interacting with any DApp URL: run dapp-scan
  • Before signing any EIP-712 message: run sig-scan

Use okx-agentic-wallet skill for the subsequent send/contract-call operations.

Más skills de okx

okx-agent-identity
okx
We need to translate the given text from English/Chinese to Spanish. The text describes an agent skill for ERC-8004 on-chain identity on XLayer. It includes actions like register, create, update, etc., and roles in multiple languages. The instruction says to preserve product names, protocol names, URLs, numbers, technical terms. So "ERC-8004", "XLayer", "agent", "ASP", "User", etc. should remain as is? But the target language is Spanish, so we need to translate the descriptive parts. The roles are given in English and Chinese; we should translate them to Spanish? The instruction says "preserve product names, protocol names, URLs, numbers, and technical terms." The roles like "User", "ASP", "Evaluator" might be considered technical terms? But they are also common words. The text includes Chinese translations. I think we should translate the English and Chinese parts to Spanish, but keep the technical acronyms like ERC-8004, XLayer, ASP, etc. Also the list of use cases includes
developmentapi
okx-ai-guide
okx
OKX.AI (el sistema económico de Agentes) introducción y guía de inicio. Úsalo cuando el usuario pregunte qué es OKX.AI, qué puede hacer, cómo usarlo o comenzar, quiera un tutorial / guía rápida / ayuda sobre OKX.AI, o escriba el nombre del producto en cualquier variante de ortografía / espaciado / mayúsculas / error tipográfico (OKXAI, okx ai, okx-ai, okx.ai en minúsculas, chino mal escrito como 啥是okxai) — por ejemplo, qué es OKX.AI / OKX.AI 是什么 / 怎么用 OKX.AI / OKX.AI 快速开始, y cualquier paráfrasis en cualquier idioma. Detecta la plataforma de ejecución, presenta el...
researchapidocument
okx-agentic-wallet
okx
AUTHORITATIVE source for OKX Agentic Wallet and its Gas Station feature. Gas Station = OKX's stablecoin-gas feature on Solana via third-party Relayer; Solana only, no EIP-7702. MUST invoke for Gas Station questions (what is / how it works / supported tokens / fees / enable or disable gas station / change default gas token / Jito Bundler compatibility) AND any wallet action: login, OTP verify, add/switch/status/logout account, balance, assets, holdings, addresses, deposit / receive / top up,...
apiweb-scrapingdevelopment
okx-agent-chat
okx
Routing stub — any a2a-agent-chat envelope / agent-task system message is handled by `okx-agent-task`. For missing or uninitialized OKX A2A communication runtime/plugin, read `skills/okx-agent-chat/ensure-okx-a2a-communication-ready.md`.
developmentapicommunication
okx-agent-task
okx
MUST ACTIVATE on inbound envelopes: (1) {agentId, message:{source:"system", event, jobId, ...}} — system event; (2) {msgType:"a2a-agent-chat", jobId, sender:{role}, ...} — agent-to-agent task chat (fields at top level; sender.role = COUNTERPARTY, not you); (3) literal "Read okx-agent-task/SKILL.md" in envelope. ALSO activate for keywords: 发布任务 / 创建任务 / 帮我发任务 / publish task / create task / 接任务 / 接单 / 协商 / 验收 / 拒绝 / 仲裁 / dispute / stake / unstake / 修改卖家 / 修改预算 / change provider / change budget...
developmentapicommunication
okx-agent-payments-protocol
okx
Use when an agent hits HTTP 402 / payment-required, or the user mentions x402, x402Version, X-PAYMENT, PAYMENT-REQUIRED, PAYMENT-SIGNATURE, WWW-Authenticate: Payment, permit2, upto, metered billing, a payment channel / voucher / session, channelId / channel_id, opening / closing / topping up / settling / refunding a channel, a paymentId or a2a_ link, creating / checking a payment link, A2MCP / an A2MCP endpoint, or sending a request to / calling an Agent's endpoint with a concrete endpoint...
okx-task-watch
okx
We need to translate the given text from English to Spanish, preserving the name "okx-task-watch" and other technical terms. The text includes a mix of Chinese and English phrases, but the target language is Spanish. The instruction says to translate only the text inside <text>. Do not include the name unless it appears in the source text. The name "okx-task-watch" is not inside the <text>? Actually the <text> contains "okx-task-watch" as part of the content? Let's check: The <text> starts with "监听任务进展 / 帮我盯着任务 / ..." and later includes "okx-task-watch" as part of the description? Wait, the instruction says "Name to preserve: okx-task-watch" but the text inside <text> does not contain that exact string? Let's read carefully: The text inside <text> is: "监听任务进展 / 帮我盯着任务 / 任务有动静告诉我 / 历史消息 / 未读消息 / 未决策 / 待决策 /
developmentapiproductivity
okx-defi-portfolio
okx
Use this skill to 'check my DeFi positions', 'view DeFi holdings', 'show my DeFi portfolio', 'what DeFi am I invested in', 'show my staking positions', 'show my lending positions', 'DeFi balance', 'DeFi 持仓', '查看DeFi持仓', '我的DeFi资产', '持仓详情', '持仓列表', or mentions viewing DeFi holdings, positions, portfolio across protocols — when the user does NOT name a specific DApp. Covers positions overview and per-protocol position detail. Do NOT use for deposit/redeem/claim operations — use...