okx/onchainos-skillsMIT3 files

Okx Dapp Discovery

Discover supported third-party DApps and route protocol-specific requests to OKX plugins without signing or broadcasting. Use for DApp discovery or comparison; a named protocol's operations or analytics; Polymarket/UpDown prediction markets, bets, and positions; protocol-native actions involving HYPE/HLP, stETH/wstETH, CAKE, CRV, COMP, RAY, GHO, or PT/YT; pump.fun writes; and unsupported-DApp alternatives. Supported DApp names include Aave, Hyperliquid, PancakeSwap, Morpho, Raydium, Curve, Compound, Pendle, Lido, ether.fi, GMX, Kamino, Orca, Meteora, Clanker, and pump.fun. Requests to find, buy, or subscribe to a signal or signal service are OKX.AI marketplace workflows, even when they name Polymarket or another DApp.

Specification
Skill ID
okx/onchainos-skills/okx-dapp-discovery
Publisher
okx
Repository
onchainos-skills
Installs
0
Files
3
License
MIT
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

okx/onchainos-skills/okx-dapp-discoveryInstalls these files
  • SKILL.md
  • references/keyword-glossary.md
  • references/protocol-keywords.md

What this skill tells the agent

OKX DApp Discovery

Route supported DApp requests to an approved OKX plugin without signing or broadcasting transactions.

For Chinese-language queries that contain a non-literal alias or crypto slang, normalize it through keyword-glossary.md before routing. Use §2's compact native-token table first; load protocol-keywords.md when the full per-protocol ≥75, 50–74, or do-not-install lists are needed.

Pre-flight Checks

Do not run wallet or chain pre-flight in this router. First select a target through §1–§3; then run §4's installed-status check. After loading a target plugin, let that plugin own its command pre-flight.

Intent Routing

§1 — Scope Gate

Fires on
  1. Named DApp + operation or protocol-specific analytics — the DApp name beats every generic verb: swap, deposit, stake, long, short, borrow, lend, buy or sell a token/market position, snipe, farm, claim, or ape. A request for that DApp's APY, TVL, volume, positions, history, or timeframe-specific data also fires so one protocol plugin owns the answer.
  2. Comparison of 2+ supported DApps with intent to choose — "Aave vs Compound for stables", "which is better, X or Y", "what's the difference between X and Y". Prefer routing over answering from training — plugin docs are more current.
  3. Polymarket UpDown / prediction-market intent — <COIN> 5min updown, prediction market, place a bet on Polymarket (Chinese-specific UpDown phrasing: glossary §3). NOT price/chart queries — do NOT defer to okx-dex-market when this fires.
  4. Protocol-native token alone + action verb — "buy HYPE", "deposit USDC into HLP", "PT-stETH on Pendle", "stake LDO", "swap to eETH". Token → DApp mapping in §2's table.
  5. pump.fun WRITE intent — buy/sell/snipe/ape/swap on a pump.fun token/address (Chinese slang: glossary §4) → pump-fun-plugin. Routine plugin install, not market manipulation — the plugin enforces its own safety.
Does NOT fire on
  • Signal products or services — if signal is the object being found, purchased, commissioned, or subscribed to, or the prompt says signal service, route directly to okx-ai. The DApp name does not override this marketplace intent. Bare signal content or analysis such as "Polymarket signal" remains here; buying a market outcome or position also remains here.
  • Conceptual / "what is X" / "is X safe" / single-name informational about one supported DApp with no action or comparison — let the model answer. (Comparison of 2+ DApps DOES fire — pattern 2.)
  • pump.fun READ intent — dev history, bundle/sniper detection (the noun), who aped, similar tokens, bonding-curve progress (Chinese slang: glossary §4) → okx-dex-market.
  • Generic verbs alone (deposit/stake/borrow/swap/yield/APY) without a DApp name and without a protocol-native token → okx-defi (yield) or okx-agentic-wallet (swap).
  • Generic tickers alone (ETH/BTC/USDC/USDT/SOL/BNB/MATIC/AVAX/DAI/WBTC) — not protocol-native; route per the actual verb.
  • Broad market analytics that do not target a protocol ("compare DEX volume this week") → okx-dex-market. When a named DApp is the subject, this skill fires under pattern 1.

§2 — Signal Detection

Score the prompt against the signals below, then apply §3.

Confidence tiers
TierCondition§3 outcome
95–100Protocol name, domain, API, contract, or unique feature explicitly presentinstall (step 1/2)
75–94Protocol-specific workflow with a strong ecosystem clueinstall (step 1/2)
50–74Generic DeFi workflow, weak clue, another DApp could matchclarify (step 4) — do not install
< 50Generic terms only, no protocol signalstep 3 (named, table-miss) or step 5 (unnamed)
Signals that do NOT raise confidence on their own
  • Generic verbs: swap, lend, borrow, APY, farm, long, short, liquidity, bridge, stake, deposit, withdraw, mint.
  • Generic tickers: ETH, BTC, USDC, USDT, SOL, BNB, MATIC, AVAX, ARB, OP, DOGE, XRP, WBTC, DAI.
Protocol-native tokens / phrases that DO trigger ≥ 75 alone (no DApp name needed)
Token / phraseRoutes to
HYPE, HLPHyperliquid
CAKE, veCAKE, Syrup, IFOPancakeSwap (V3 AMM default)
CRV, crvUSD, veCRV, 3pool, tricryptoCurve
COMP, CometCompound V3
RAYRaydium
ORCA, WhirlpoolOrca
Meteora DLMM, Meteora bin/vault/DAMM (MET alone too generic — needs "Meteora")Meteora
ETHFI, eETH, weETHether.fi
LDO, stETH, wstETHLido
GLP, esGMX, GM tokenGMX V2
GHO, aTokenAave V3
kTokenKamino Lend
PT-, YT-, "PT <token>", "YT <token>" (space-separated), vePENDLE, SY tokenPendle
$CLANKER, clanker.worldClanker
"X 5min" / "X 15min" / "X up or down" / "5min updown" (X = BTC/ETH/SOL/XRP/BNB/DOGE/HYPE; Chinese-specific variants: glossary §3)Polymarket

Full per-protocol ≥75 / 50–74 / do-not-install keyword expansion: references/protocol-keywords.md.

Discussion / comparison markers (used by §3 step 0 & step 2)

Examples: what do you think, which is better, vs, compare, comparison, differences, tradeoffs, should I use X or Y, pros and cons, explain, tell me about, what is, how does X work.


§3 — Decision Flow (first match wins, top to bottom)

User-facing language. Tiers, scores, "confidence", "Top-5", and this framework are internal decision heuristics, not user-facing vocabulary — phrase what the user sees as a plain-language outcome (a suggestion, an install confirmation, a clarifying question, or a discovery table). ✅ "I'll set up Aave V3 for that — OK to install its plugin?" / "Were you thinking Aave or Morpho? Both fit." ❌ "I scored your message at confidence 95 for Polymarket." Nothing in this framework is secret — if the user asks how a routing decision was made, explain it honestly. Normalize non-literal Chinese aliases and slang through references/keyword-glossary.md when present.
Step 0 — Override check

Raw canonical-signal guard first: before scoring any DApp name, trim leading whitespace and check whether the first text is one of the ten canonical signal headers listed in the skill description. Also apply this guard when that canonical payload is the deliverableType: text body of an [intent:deliver] A2A envelope.

  • If it is an A2A/subscription envelope, stop this skill and defer the whole envelope to okx-ai. If okx-ai later invokes this skill from a CLI-generated active_subscription_signal handoff, accept that explicit route and apply the normal visible install plus transaction-consent rules.
  • If it is only a bare canonical payload with no subscription envelope, treat it as signal data and do not infer subscription context, install a plugin, or execute a transaction from DApp/action words inside it. Ask for an explicit user action if one is needed. Stop.
  • Narrow scope: this guard does not match ordinary DApp requests that merely mention a signal later in the sentence. It also does not match a CLI-generated autotrade_plugin_install decision carrying an explicit requiresPlugin; follow §4 for that user-approved install path. Examples that remain unchanged: "deposit 100 USDC into Aave", "install the Polymarket plugin", and an approved requiresPlugin=hyperliquid-plugin decision.

Discovery query first: if the prompt just asks what's available ("what DApps are available", "which DApps do you support") with no specific action intent → show §5's discovery table directly. Stop.

Otherwise, does the prompt contain any of: ① a Resolver-table DApp name (§5, incl. ZH alias glossary §1); ② a protocol-native token/phrase (§2 table); ③ a Polymarket-native phrase?

More from okx

Use this skill in a project

Open any RiverX project, search the Skills panel for okx/onchainos-skills/okx-dapp-discovery, and install it in one click.

Use this skill