Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
okx avatar

Okx Growth Competition

  • 9.1k installs
  • 315 repo stars
  • Updated August 1, 2026
  • okx/onchainos-skills

okx-growth-competition is an OKX Agentic Wallet skill for listing, joining, ranking, checking status, and claiming rewards in exclusive trading competitions via onchainos CLI and MCP.

About

okx-growth-competition guides agents through OKX Agentic Wallet exclusive trading competitions using onchainos CLI and MCP mirrors. The skill covers discovery of active contests, rules and prize pool details, wallet registration across EVM and Solana addresses, leaderboard queries, personal rank checks, participation status, atomic reward claims, and contact submission for top-tier winners. Global invariants distinguish participateChainIds as the trading chain set from chainId as the claim chain only, route user intents to fixed reference templates without paraphrasing product copy, and forbid exposing internal activity IDs in user-facing output. Seven commands implement list, detail, rank, user-status, join, claim, and submit-contact with wallet authentication for gated actions. Pre-claim preview requires explicit user confirmation before competition_claim broadcasts. Identity resolution uses accountId for self queries or walletAddress for cross-user rank lookups with chain family validation.

  • Full competition lifecycle: list, detail, join, rank, user-status, claim, and submit-contact.
  • participateChainIds defines trading chains; chainId is the claim and reward chain only.
  • Fixed reference templates for discover, rules, leaderboard, rank, status, and claim flows.
  • Never render internal activityId values; identify contests by activityName or shortName.
  • Wallet login required for join, status, claim, and top-tier winner contact submission.

Okx Growth Competition by the numbers

  • 9,066 all-time installs (skills.sh)
  • +1,257 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #4 of 480 Web3 & Blockchain skills by installs in the Skillselion catalog
  • Security screen: HIGH risk (skills.sh audit)
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
At a glance

okx-growth-competition capabilities & compatibility

Capabilities
list and filter competitions by status with pagi · fetch rules, prize pool, chains, and timeline vi · register evm and solana wallets for contest part · query full leaderboard and self or cross user ra · check participation and reward status across one · execute atomic reward claims with pre claim conf · submit telegram, wechat, email, or twitter conta
Use cases
trading · orchestration
Runs
Local or remote
Pricing
Free
From the docs

What okx-growth-competition says it does

Agentic Wallet exclusive trading competitions.
SKILL.md
Trading-chain set = `participateChainIds`. Claim chain = `chainId`.
SKILL.md
Never include any internal id in a message produced for the user — under ANY circumstance, in ANY format.
SKILL.md
You are about to claim {rewardAmount} {rewardUnit} on {chainName}. Reply "confirm" to proceed.
SKILL.md
npx skills add https://github.com/okx/onchainos-skills --skill okx-growth-competition

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs9.1k
repo stars315
Security audit2 / 3 scanners passed
Last updatedAugust 1, 2026
Repositoryokx/onchainos-skills

How do agents help users discover OKX trading contests, register wallets, check leaderboards and personal rank, verify win status, and claim rewards without breaking chain or identity rules?

Run OKX Agentic Wallet trading competition discovery, registration, leaderboard checks, status queries, and reward claims via onchainos CLI and MCP tools.

Who is it for?

Agents operating OKX Agentic Wallet trading competitions across EVM and Solana with product-mandated templates and onchainos commands.

Skip if: General DEX swaps without competition context, non-OKX wallets, or improvising freeform competition copy outside reference templates.

When should I use this skill?

User asks to list trading competitions, join a contest, view leaderboard or personal rank, check participation status, claim a prize, or submit winner contact details.

What you get

Correct template-driven responses and CLI calls for competition list, detail, join, rank, user-status, claim, and contact submission with wallet auth and pre-claim confirmation.

  • user-status report
  • atomic claim execution
  • winner contact record

By the numbers

  • Handles rewardStatus=1 win and rewardStatus=4 pending-draw branches
  • Supports all-activities and single --activity-id user-status queries

Files

SKILL.mdMarkdownGitHub ↗

OKX Growth Competition — Trading Competition

Agentic Wallet exclusive trading competitions. Full lifecycle split across focused references:

  • Participation (discover / register / trade / registered wallet / export guard) — references/participation.md
  • Details (rules / prize pool / four reward sections) — references/details.md
  • Rank (leaderboard / my own rank with CASE 1/2/3 templates) — references/rank.md
  • Claim (reward status check / atomic claim / contact collection) — references/claim.md
  • CLI reference (commands, parameters, return schemas) — references/cli-reference.md

This SKILL.md holds the global rules (facts, identity invariants, routing, output rules, time formatting, status codes, error handling) that ALL references depend on. Always read this file first; then jump into the matching reference for the user's intent.

Facts about every Agentic Wallet competition

Treat the following as factual ground truth when the user asks about how a competition works. The two chain-related fields play distinct, non-overlapping roles — never conflate them:

  • chainId — single id. The claim / reward chain ONLY (rewards are paid on this chain; its contract address lives here). It is NOT a trading chain unless it also appears in participateChainIds.
  • participateChainIds — array of ids returned by both `list` and `detail` endpoints. The trading chain set. Trades on any chain in this list count toward the same competition standing.

Trading-chain set = `participateChainIds`. Claim chain = `chainId`. These are two separate concepts; the display rules below NEVER union them.

1. Chain id → display name mapping. Currently supported competition chains: 1 → Ethereum, 196 → X Layer, 501 → Solana. 2. Never tell a user "your chain doesn't count" without first checking participateChainIds. 3. myRankInfo.userTotal = 0 means the user has not yet hit the qualifying threshold or the backend metric pipeline has not picked up their trades yet — it does NOT mean the user's chain is unsupported. 4. competition_rank takes a single optional wallet. Omit it for self-rank — the tool sends your accountId (covers every chain in participateChainIds in one call; no chain pick). Pass an explicit address ONLY when querying someone else's rank; the address chain family (EVM 0x... else Solana) must match the activity's primary chain or the tool rejects the call (no silent wrong-chain queries).

Identity resolution invariant

The query identity for competition_rank and competition_user_status is mutually exclusive: backend accepts EITHER accountId (self) OR walletAddress (cross-user) — never both. The answer to "which identity did you use?" is deterministic from the call shape.

Call shapeIdentity sent
competition_user_status (any)accountId — covers every chain in participateChainIds in one call
competition_rank without walletaccountId
competition_rank with wallet=<addr>walletAddress — tool validates addr's chain family (EVM 0x... else Solana) matches activity's chainId; mismatch → rejected
competition_claim (pre-check)accountId

For multi-activity competition_user_status (no activity_name), the same accountId is reused across all activities — backend joins by accountId.

Mandatory reading order

Before producing ANY user-facing message about a competition, you MUST first locate the matching section in the right reference file below and follow its fixed template structure. Do NOT improvise the format. Do NOT shorten the templates. Do NOT drop sections or merge them. Templates are product-mandated copy (Participation / Skill Quality wording, disclaimer) and must not be paraphrased.

The template structure is fixed; the language follows the user — see the ## Output Language rule below. When the user writes Chinese, translate the template strings to natural Chinese. When the user writes English, use English as written. Placeholders (including chain display names from {supportedChains}) stay as-is.

Quick router (user intent → reference file + section):

User intentReference fileSection
"list competitions / show available competitions"references/participation.mdStep 1 — Discover
"show details / show rules / show prize pool"references/details.mdStep 2 — View Details
"register / join"references/participation.mdStep 3 — Join
"trade for me"references/participation.mdStep 4 — Trade (delegates to okx-dex-swap)
"leaderboard / full board / who is winning"references/rank.mdCheck leaderboard (full board)
"my rank / what's my ranking / am I in the prize zone"references/rank.mdCheck user's own rank (across ALL leaderboards)
"show registered wallet"references/participation.mdQuery Registered Wallet
"export wallet"references/participation.mdWallet Export Guard
"check my status / did I win"references/claim.mdCheck Participation Status
"claim reward / claim my prize"references/claim.mdStep 6 — Claim Reward
Top-tier winner contact follow-up (needContact: true after claim)references/claim.mdContact collection (top-tier winners only)

If the user's intent does not clearly map to one of the above, ask which they meant before responding — do not invent a freeform format.

Pre-flight

Read ../okx-agentic-wallet/_shared/preflight.md. If missing, read _shared/preflight.md.

Cross-skill routing on common errors:

  • not logged in → walk the user through the okx-agentic-wallet login flow (email → OTP), then retry the original action.
  • Backend status codes (--status filter / status / joinStatus / rewardStatus) and error code messages (11002 / 11003 / 11008 / 1860402 / address limit reached / Sui-chain / region-blocked / not eligible): see references/cli-reference.md.

Command Index

All MCP tools mirror the CLI; MCP variants accept activity_name (server-resolves the id) and auto-resolve accountId / wallet addresses from the active session. Full flag tables and return shapes: references/cli-reference.md.

#CommandAuthDescription
1`onchainos competition list [--status 0\1\2] [--page-size N] [--page-num N]`
2onchainos competition detail --activity-id <id>NoneRules, prize pool, chain, timeline
3onchainos competition rank --activity-id <id> [--wallet <addr>] --sort-type <type> [--limit N]NoneLeaderboard + user rank. See references/rank.md for self/cross-user semantics and sort-type discovery.
4onchainos competition user-status [--activity-id <id>]Wallet loginParticipation & reward status (omit --activity-id for all activities)
5onchainos competition join --activity-id <id> --evm-wallet <addr> --sol-wallet <addr> --chain-index <chain_id>Wallet loginRegister the active account for the competition
6onchainos competition claim --activity-id <id> --evm-wallet <addr> --sol-wallet <addr>Wallet loginAtomic claim — signs + broadcasts inside the call. See references/claim.md.
7`onchainos competition submit-contact --activity-id <id> --contact-type <Telegram\WeChat\Email\

--status (request filter): 0=active, 1=ended, 2=all activityStatus (response field): `3`=active, `4`=ended — different from the request filter

Output Rules

Internal-only IDs vs user-facing display. Internal numeric IDs (activityId, chainIndex, accountId) are returned in tool responses on purpose — they are needed to chain calls between tools (e.g. after competition_join, you may need to call competition_detail with the activity id to fill the success template). Keep them in the data layer; never render them in user-visible messages.

Never include any internal id in a message produced for the user — under ANY circumstance, in ANY format. Identify activities to the user EXCLUSIVELY by activityName (or shortName if name is unavailable).

Forbidden user-visible patterns (do NOT produce output like this):

  • Agentic Trading Contest (#107)
  • #106 (agenticwallettest1)
  • Any column, row, or inline reference exposing an activity ID (e.g. competition 107, an ID column, a labeled Activity ID row) — same rule, regardless of label, shape, or language.

Correct user-visible pattern:

  • Agentic Trading Contest
  • When disambiguating two activities with the same name, append chainName (e.g. Agentic Trading Contest (Solana)), never the ID.

Behind the scenes (allowed and expected):

  • Reading activityId from a competition_user_status / competition_join response and passing it to competition_detail to fetch the data needed by a fixed template.
  • Any tool-to-tool chaining via numeric ids — as long as the final user-facing message omits them.

When the user asks to act on a specific activity (e.g. "claim Agentic Trading Contest"), the MCP tools competition_claim / competition_join accept activity_name and resolve the id server-side, so you can also use names directly without doing your own lookup.

Output Language

Render every fixed template in the user's conversation language. The template structure (sections, ordering, numbered items, table column count, placeholder positions, the {supportedChains} placeholder, and the [Disclaimer: ...] block) is fixed and must NOT change. Only the natural-language text inside is translated to the user's language naturally.

Placeholders are never translated. {supportedChains}, {chainName}, {rewardUnit}, {txHash}, {accountName}, etc. are filled with API values verbatim — do not localize them. Chain display names (e.g. Solana, X Layer, Base) come from the canonical id → name mapping and stay as-is in every language.

Pre-Delivery Checklist

Final check before sending — covers the reference-file MUSTs that are easy to skip after a long response. (Rules already covered in earlier sections — internal IDs, participateChainIds, *Formatted, language/template fidelity — are not repeated here; verify them by following the rules at their home sections.)

  • [ ] On a successful registration response → the [Disclaimer: Digital asset trading involves risk. ...] line is present on its own line at the end. (→ participation.md → Successful registration)
  • [ ] On a claim runtime failure (signing / broadcast / network) → the 3-bullet failure-suggestion block is appended. On a pre-check rejection (rewardStatus 0/2/3/4, code 11002, code 11008) → the suggestion block is OMITTED. (→ claim.md → Fixed failure-suggestion block)
  • [ ] Before invoking competition_claim → the pre-claim preview line (You are about to claim {rewardAmount} {rewardUnit} on {chainName}. Reply "confirm" to proceed.) was rendered and the user replied with an explicit confirmation. (→ claim.md → Pre-claim preview)

Related skills

How it compares

Pick okx-growth-competition over generic Web3 skills when OKX OnchainOS competition CLI commands and canonical claim templates are required.

FAQ

What is the difference between chainId and participateChainIds?

participateChainIds is the trading chain set where qualifying trades count. chainId is the claim and reward chain only and must not be conflated with trading chains.

Can internal activity IDs appear in user-facing messages?

No. Identify competitions exclusively by activityName or shortName, optionally disambiguated with chainName, never by numeric activity IDs.

What must happen before competition_claim runs?

Render the pre-claim preview with reward amount, unit, and chain, then wait for an explicit user confirmation before the atomic claim signs and broadcasts.

Is Okx Growth Competition safe to install?

skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.