mcpField
O
okx-growth-competition

okx-growth-competition

github.com/okx其他34510.9k 次安装1 天前更新
代码仓库

关于 okx-growth-competition

okx-growth-competition 是面向 Agentic Wallet 交易竞赛流程的技能,供 Agent 按固定规则处理赛事查询、参赛、排名和领奖。它区分交易链与领奖链,并要求按专门参考文件和模板回应。

主要功能

  1. 01赛事发现与详情查询
  2. 02报名和注册钱包查询
  3. 03排行榜及个人排名
  4. 04奖励状态、领奖与联系信息
  5. 05链规则、身份与输出约束

适用场景

  1. 01查找赛事并了解规则和奖池
  2. 02报名参加竞赛并查询排名
  3. 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.md
cli-reference.md
details.md
participation.md
rank.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。**这是两个独立概念;以下显示规则绝不会将它们合并。

  1. 链 ID → 显示名称映射。目前支持的竞赛链:1 → Ethereum、196 → X Layer、501 → Solana。
  2. 未先检查 participateChainIds 前,绝不要告诉用户“你的链不计入”。
  3. myRankInfo.userTotal = 0 表示用户尚未达到资格门槛,或者后端指标管道尚未纳入其交易数据——这不表示用户使用的链不受支持。
  4. competition_rank 接受一个可选的 wallet。查询自己的排名时省略此参数——工具会发送你的 accountId(一次调用即可涵盖 participateChainIds 中的所有链,无需选择链)。仅在查询他人排名时传入明确地址;地址所属链类型(EVM 0x...,否则为 Solana)必须与活动的主链一致,否则工具会拒绝调用(不会静默进行错误链查询)。

身份解析不变量

competition_rank 和 competition_user_status 的查询身份互斥:后端接受 accountId(本人)或 walletAddress(其他用户)其中之一,绝不会同时接受两者。对于“你使用了哪个身份?”这一问题,答案由调用形式确定。

调用形式发送的身份
competition_user_status(任意情况)accountId — 一次调用即可涵盖 participateChainIds 中的所有链
不带 wallet 的 competition_rankaccountId
带 wallet=<addr> 的 competition_rankwalletAddress — 工具会验证地址所属链类型(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。

#命令身份验证描述
1onchainos competition list [--status 0|1|2] [--page-size N] [--page-num N]无列出比赛(默认 status=0,仅限进行中的比赛)
2onchainos competition detail --activity-id <id>无规则、奖池、链、时间线
3onchainos competition rank --activity-id <id> [--wallet <addr>] --sort-type <type> [--limit N]无排行榜 + 用户排名。关于本人/跨用户语义和 sort-type 的发现方式,请参阅 references/rank.md。
4onchainos competition user-status [--activity-id <id>]钱包登录参与及奖励状态(省略 --activity-id 可查询所有活动)
5onchainos competition join --activity-id <id> --evm-wallet <addr> --sol-wallet <addr> --chain-index <chain_id>钱包登录为当前账户注册参加比赛
6onchainos competition claim --activity-id <id> --evm-wallet <addr> --sol-wallet <addr>钱包登录原子领取——在调用过程中签名并广播。请参阅 references/claim.md。
7onchainos 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 → 领取前预览)

评论

支持 Markdown