okx-growth-competition について
okx-growth-competitionは、Agentic Walletのトレーディングコンペを扱うスキルです。エージェント向けに、イベント確認、参加登録、順位照会、報酬請求を支援し、取引チェーンと報酬チェーンを区別して専用リファレンスと固定テンプレートに沿って応答します。
主な機能
- 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 - 詳細(ルール/賞金プール/4 つの報酬セクション)—
references/details.md - ランク(リーダーボード/CASE 1/2/3 のテンプレートを使った自分のランク確認)—
references/rank.md - 請求(報酬ステータスの確認/一括請求/連絡先の収集)—
references/claim.md - CLI リファレンス(コマンド、パラメーター、戻り値のスキーマ)—
references/cli-reference.md
この SKILL.md には、すべてのリファレンスが参照する全体ルール(事実、ID の不変条件、振り分け、出力ルール、時刻の書式、ステータスコード、エラー処理)が記載されています。まず必ずこのファイルを読み、次にユーザーの意図に合ったリファレンスを参照してください。
Agentic Wallet のすべてのコンペティションに関する事実
ユーザーからコンペティションの仕組みについて質問された場合、次の情報を事実として扱ってください。チェーンに関する 2 つのフィールドは、異なる役割を持ち、重複しません。決して混同しないでください。
chainId— 単一の ID です。請求/報酬のチェーンのみを示します(報酬はこのチェーンで支払われ、このチェーンにコントラクトアドレスがあります)。participateChainIdsにも含まれていない限り、取引チェーンではありません。participateChainIds—listとdetailの両方のエンドポイントが返す ID の配列です。取引チェーンの集合を示します。このリスト内のいずれかのチェーンで行った取引は、同じコンペティションの順位に反映されます。
取引チェーンの集合 = participateChainIds。請求チェーン = chainId。この 2 つは別の概念です。以下の表示ルールで両者をまとめて扱うことは決してありません。
- チェーン ID から表示名への対応。現在サポートされているコンペティションチェーン:
1 → Ethereum、196 → X Layer、501 → Solana。 participateChainIdsを確認する前に、「あなたのチェーンは対象外です」とユーザーに伝えないでください。myRankInfo.userTotal = 0は、ユーザーがまだ参加条件のしきい値に達していないか、バックエンドのメトリクスパイプラインがまだユーザーの取引を取り込んでいないことを意味します。ユーザーのチェーンがサポートされていないという意味ではありません。competition_rankのwalletは単一のオプションパラメーターです。自分のランクを確認する場合は省略してください。ツールがaccountIdを送信します(participateChainIds内のすべてのチェーンを 1 回の呼び出しで対象にするため、チェーンを選ぶ必要はありません)。他のユーザーのランクを確認する場合に限り、明示的なアドレスを指定してください。アドレスのチェーン種別(EVM は0x...、それ以外は Solana)は、アクティビティのプライマリチェーンと一致している必要があります。一致しない場合、ツールは呼び出しを拒否します(誤ったチェーンへのクエリが黙って実行されることはありません)。
ID 解決の不変条件
competition_rank と competition_user_status のクエリ ID は相互排他的です。バックエンドが受け付けるのは、accountId(自分)または walletAddress(他のユーザー)のどちらか一方のみです。両方を指定することはできません。「どの ID を使用しましたか?」への答えは、呼び出しの形式から一意に決まります。
| 呼び出し形式 | 送信される ID |
|---|---|
competition_user_status(任意) | accountId — participateChainIds 内のすべてのチェーンを 1 回の呼び出しで対象にします |
competition_rank(wallet なし) | accountId |
competition_rank(wallet=<addr> あり) | walletAddress — ツールはアドレスのチェーン種別(EVM は 0x...、それ以外は Solana)がアクティビティの chainId と一致するか検証します。一致しない場合は拒否されます |
competition_claim(事前確認) | accountId |
複数のアクティビティを対象とする competition_user_status(activity_name なし)では、すべてのアクティビティで同じ accountId が再利用され、バックエンドは accountId で結合します。
必ず読む順序
コンペティションについてユーザー向けのメッセージを作成する前に、必ず以下の適切なリファレンスファイルから該当するセクションを探し、指定されたテンプレート構成に従ってください。 形式を独自に変更してはいけません。テンプレートを短縮してはいけません。セクションを省略したり、統合したりしてはいけません。テンプレートはプロダクトで定められた文面(参加/スキル品質に関する文言、免責事項)であり、言い換えてはいけません。
テンプレートの構成は固定です。言語はユーザーに合わせます。下記の ## Output Language ルールを参照してください。ユーザーが中国語で書いた場合は、テンプレートの文言を自然な中国語に翻訳します。英語で書いた場合は、テンプレートを記載どおり英語で使用します。プレースホルダー({supportedChains} のチェーン表示名を含む)はそのままにします。
クイックルーター(ユーザーの意図 → リファレンスファイルとセクション):
| ユーザーの意図 | リファレンスファイル | セクション |
|---|---|---|
| 「コンペティションの一覧/参加可能なコンペティションを表示」 | references/participation.md | Step 1 — Discover |
| 「詳細/ルール/賞金プールを表示」 | references/details.md | Step 2 — View Details |
| 「登録/参加」 | references/participation.md | Step 3 — Join |
| 「代わりに取引して」 | references/participation.md | Step 4 — Trade(okx-agentic-wallet に委任) |
| 「リーダーボード/全体の順位表/誰が勝っているか」 | references/rank.md | リーダーボードを確認する(全体の順位表) |
| 「自分の順位/自分のランキングは?/賞金獲得圏内か」 | references/rank.md | ユーザー自身の順位を確認する(すべてのリーダーボード) |
| 「登録済みウォレットを表示」 | references/participation.md | Query Registered Wallet |
| 「ウォレットをエクスポート」 | references/participation.md | Wallet Export Guard |
| 「自分のステータスを確認/勝ったかどうか」 | references/claim.md | Check Participation Status |
| 「報酬を請求/賞金を請求」 | references/claim.md | Step 6 — Claim Reward |
上位入賞者への連絡フォローアップ(請求後に 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 → 名前のマッピングから取得し、すべての言語でそのまま使用してください。
送信前チェックリスト
送信前に最終確認してください。長い応答の後に見落としやすい、参照ファイルで必須とされている項目を確認します。(前のセクションですでに説明されているルール(内部 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→ 事前クレーム確認)