关于 okx-growth-competition
okx-growth-competition 是面向 Agentic Wallet 交易竞赛流程的技能,供 Agent 按固定规则处理赛事查询、参赛、排名和领奖。它区分交易链与领奖链,并要求按专门参考文件和模板回应。
主要功能
- 01赛事发现与详情查询
- 02报名和注册钱包查询
- 03排行榜及个人排名
- 04奖励状态、领奖与联系信息
- 05链规则、身份与输出约束
适用场景
- 01查找赛事并了解规则和奖池
- 02报名参加竞赛并查询排名
- 03检查奖励状态并按要求领奖
MCP 相关
提供与 CLI 对应的 MCP 工具,支持赛事列表、详情、排名、用户状态、报名、领奖和提交联系信息;工具可从会话解析活动名称及账户信息。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ okx/ onchainos-skills --skill okx-growth-competition安装后在 Claude Code 中输入/okx-growth-competition确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/claim.mdcli-reference.mddetails.mdparticipation.mdrank.md详细介绍
OKX 增长竞赛 — 交易竞赛
Agentic Wallet 专属交易竞赛。完整生命周期拆分为以下专项参考文档:
- 参与(发现/报名/交易/已注册钱包/导出保护)—
references/participation.md - 详情(规则/奖池/四个奖励部分)—
references/details.md - 排名(排行榜/我的排名,含 CASE 1/2/3 模板)—
references/rank.md - 领取(奖励状态检查/原子领取/联系信息收集)—
references/claim.md - CLI 参考(命令、参数、返回架构)—
references/cli-reference.md
此 SKILL.md 包含所有参考文档所依赖的全局规则(事实、身份不变量、路由、输出规则、时间格式、状态码、错误处理)。请始终先阅读此文件,再根据用户意图跳转到对应的参考文档。
关于每场 Agentic Wallet 竞赛的事实
用户询问竞赛运作方式时,请将以下内容视为事实依据。两个与链相关的字段各自承担不同且互不重叠的作用,切勿混为一谈:
chainId— 单个 ID。仅表示领取/奖励链(奖励将在此链上发放;合约地址也在此链上)。除非该链也出现在participateChainIds中,否则它不是交易链。participateChainIds— 由list和detail端点共同返回的 ID 数组。**表示交易链集合。**在此列表中任意链上的交易都会计入同一竞赛排名。
**交易链集合 = participateChainIds。领取链 = chainId。**这是两个独立概念;以下显示规则绝不会将它们合并。
- 链 ID → 显示名称映射。目前支持的竞赛链:
1 → Ethereum、196 → X Layer、501 → Solana。 - 未先检查
participateChainIds前,绝不要告诉用户“你的链不计入”。 myRankInfo.userTotal = 0表示用户尚未达到资格门槛,或者后端指标管道尚未纳入其交易数据——这不表示用户使用的链不受支持。competition_rank接受一个可选的wallet。查询自己的排名时省略此参数——工具会发送你的accountId(一次调用即可涵盖participateChainIds中的所有链,无需选择链)。仅在查询他人排名时传入明确地址;地址所属链类型(EVM0x...,否则为 Solana)必须与活动的主链一致,否则工具会拒绝调用(不会静默进行错误链查询)。
身份解析不变量
competition_rank 和 competition_user_status 的查询身份互斥:后端接受 accountId(本人)或 walletAddress(其他用户)其中之一,绝不会同时接受两者。对于“你使用了哪个身份?”这一问题,答案由调用形式确定。
| 调用形式 | 发送的身份 |
|---|---|
competition_user_status(任意情况) | accountId — 一次调用即可涵盖 participateChainIds 中的所有链 |
不带 wallet 的 competition_rank | accountId |
带 wallet=<addr> 的 competition_rank | walletAddress — 工具会验证地址所属链类型(EVM 0x...,否则为 Solana)是否与活动的 chainId 一致;不一致 → 拒绝调用 |
competition_claim(预检查) | accountId |
对于多活动的 competition_user_status(不带 activity_name),所有活动都会复用同一个 accountId——后端会按 accountId 进行关联。
必读顺序
**在发送任何有关竞赛的用户可见消息之前,你必须先在下方正确的参考文件中找到对应章节,并遵循其固定模板结构。**不要自行编排格式。不要缩短模板。不要删减章节或将其合并。模板是产品要求的文案(参与 / 技能质量措辞、免责声明),不得改写。
模板的结构固定;语言遵循用户使用的语言——请参阅下方的 ## Output Language 规则。用户使用中文时,将模板字符串翻译成自然的中文。用户使用英文时,按原文使用英文。占位符(包括 {supportedChains} 中的链显示名称)保持原样。
快速路由(用户意图 → 参考文件 + 章节):
| 用户意图 | 参考文件 | 章节 |
|---|---|---|
| “列出竞赛 / 显示可参加的竞赛” | references/participation.md | 步骤 1 — 发现 |
| “显示详情 / 显示规则 / 显示奖池” | references/details.md | 步骤 2 — 查看详情 |
| “注册 / 加入” | references/participation.md | 步骤 3 — 加入 |
| “替我交易” | references/participation.md | 步骤 4 — 交易(委托给 okx-agentic-wallet) |
| “排行榜 / 完整榜单 / 谁领先” | references/rank.md | 查看排行榜(完整榜单) |
| “我的排名 / 我排第几 / 我是否在获奖区间” | references/rank.md | 查看用户自己的排名(所有排行榜) |
| “显示已注册的钱包” | references/participation.md | 查询已注册的钱包 |
| “导出钱包” | references/participation.md | 钱包导出保护 |
| “查看我的状态 / 我赢了吗” | references/claim.md | 查看参与状态 |
| “领取奖励 / 领取我的奖品” | references/claim.md | 步骤 6 — 领取奖励 |
顶级获奖者联系跟进(领取后 needContact: true) | references/claim.md | 收集联系方式(仅限顶级获奖者) |
如果用户意图无法明确对应上述某一项,请先询问用户指的是哪一项,再作答——不要自行编造自由格式。
预检
阅读
../okx-agentic-wallet/_shared/preflight.md。如果文件不存在,则阅读_shared/preflight.md。
常见错误的跨技能路由:
not logged in→ 引导用户完成okx-agentic-wallet登录流程(运行onchainos wallet login),然后重试原操作。- 后端状态码(
--status筛选器 /status/joinStatus/rewardStatus)和错误码消息(11002/11003/11008/1860402/address limit reached/Sui-chain/ 地区限制 /not eligible):请参阅references/cli-reference.md。
命令索引
所有 MCP 工具均与 CLI 对应;MCP 变体接受 activity_name(由服务端解析 ID),并会根据当前会话自动解析 accountId / 钱包地址。完整标志表和返回结构:references/cli-reference.md。
| # | 命令 | 身份验证 | 描述 |
|---|---|---|---|
| 1 | onchainos competition list [--status 0|1|2] [--page-size N] [--page-num N] | 无 | 列出比赛(默认 status=0,仅限进行中的比赛) |
| 2 | onchainos competition detail --activity-id <id> | 无 | 规则、奖池、链、时间线 |
| 3 | onchainos competition rank --activity-id <id> [--wallet <addr>] --sort-type <type> [--limit N] | 无 | 排行榜 + 用户排名。关于本人/跨用户语义和 sort-type 的发现方式,请参阅 references/rank.md。 |
| 4 | onchainos competition user-status [--activity-id <id>] | 钱包登录 | 参与及奖励状态(省略 --activity-id 可查询所有活动) |
| 5 | onchainos competition join --activity-id <id> --evm-wallet <addr> --sol-wallet <addr> --chain-index <chain_id> | 钱包登录 | 为当前账户注册参加比赛 |
| 6 | onchainos competition claim --activity-id <id> --evm-wallet <addr> --sol-wallet <addr> | 钱包登录 | 原子领取——在调用过程中签名并广播。请参阅 references/claim.md。 |
| 7 | onchainos competition submit-contact --activity-id <id> --contact-type <Telegram|WeChat|Email|Twitter> --contact-value <text> | 钱包登录 | 为顶级获奖者记录联系方式;仅在使用 needContact: true 领取后可用。请参阅 references/claim.md。 |
--status(请求筛选条件):0=进行中,1=已结束,2=全部
activityStatus(响应字段):3=进行中,4=已结束——与请求筛选条件不同
输出规则
仅限内部使用的 ID 与面向用户的显示内容。 工具响应会特意返回内部数字 ID(
activityId、chainIndex、accountId),以便在工具之间串联调用(例如,调用competition_join后,可能需要使用活动 ID 调用competition_detail,以填充成功模板)。将它们保留在数据层;绝不要在面向用户的消息中显示。
绝不在面向用户的消息中包含任何内部 ID——无论在任何情况下、以任何格式。 仅使用 activityName(如果名称不可用,则使用 shortName)向用户标识活动。
禁止的面向用户模式(请勿生成此类输出):
Agentic Trading Contest (#107)#106 (agenticwallettest1)- 任何会暴露活动 ID 的列、行或行内引用(例如
competition 107、ID列、标注为Activity ID的行)——无论标签、形式或语言如何,均适用同一规则。
正确的面向用户模式:
Agentic Trading Contest- 当需要区分两个同名活动时,附加
chainName(例如Agentic Trading Contest (Solana)),绝不要附加 ID。
后台操作(允许且预期):
- 从
competition_user_status/competition_join响应中读取activityId,并将其传递给competition_detail,以获取填充固定模板所需的数据。 - 通过数字 ID 在工具之间串联调用——只要最终面向用户的消息不包含这些 ID。
当用户要求对特定活动执行操作时(例如“领取 Agentic Trading Contest 的奖励”),MCP 工具 competition_claim / competition_join 接受 activity_name 并在服务端解析 ID,因此也可以直接使用名称,无需自行查询。
输出语言
将每个固定模板都以用户对话所用语言呈现。 模板结构(各部分、顺序、编号项目、表格列数、占位符位置、{supportedChains} 占位符以及 [Disclaimer: ...] 区块)均为固定内容,绝不能更改。仅将其中的自然语言文本自然地翻译成用户所用语言。
绝不翻译占位符。 {supportedChains}、{chainName}、{rewardUnit}、{txHash}、{accountName} 等占位符会由 API 值原样填充,不要本地化。链的显示名称(例如 Solana、X Layer、Base)来自规范的 ID → 名称映射,在所有语言中都保持原样。
交付前检查清单
发送前进行最终检查,涵盖长篇回复后容易遗漏的参考文件 MUST 项。(前面部分已涵盖的规则——内部 ID、participateChainIds、*Formatted、语言/模板忠实度——此处不再重复;请按照这些规则所在章节进行核验。)
- 注册成功的响应中 →
[Disclaimer: Digital asset trading involves risk. ...]行存在,且单独位于末尾。(→participation.md→ 注册成功) - 领取在运行时失败(签名 / 广播 / 网络)时 → 附加 3 条建议的失败处理项目。预检查拒绝(rewardStatus 0/2/3/4、code 11002、code 11008)时 → 省略建议区块。(→
claim.md→ 固定失败建议区块) - 调用
competition_claim前 → 已呈现领取前预览行(You are about to claim {rewardAmount} {rewardUnit} on {chainName}. Reply "confirm" to proceed.),且用户已明确确认继续。(→claim.md→ 领取前预览)