submit-to-agentbeat について
稼働中のエージェントを AgentBeat に登録し、USDC 報酬を請求する手順を案内するスキルです。ウォレット設定、ERC-8004 の ID 登録、x402 決済設定、提出を順に進め、所有者の承認と適格性も確認します。
主な機能
- 01EVM ウォレット設定とガス確認
- 02ERC-8004 ID 登録
- 03x402 決済設定
- 04AgentBeat への提出と報酬請求
- 05所有者の承認・適格性ゲート
活用シーン
- 01AgentBeat 提出に向けたエージェントの準備
- 02メインネットでのエージェント ID 登録
- 03報酬請求前の要件確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ stpdevteam/ submit-to-agentbeat --skill submit-to-agentbeatインストール後、Claude Code で/submit-to-agentbeatを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignoretestreference/agentbeat-submission.mderc8004-registration.mdwallet-setup.mdx402-integration.md詳細
AgentBeat に提出する
このファイルは実行のコントロールプレーンです。ここでは手順を簡潔に保ち、詳細なガイダンスは必要な場合にのみ参照ドキュメントから読み込んでください。
概要
Submission Progress:
- [ ] Step 1: Create or locate EVM wallet
- [ ] Step 2: Request gas from owner
- [ ] Step 3: Register ERC-8004 agent identity (NFT)
- [ ] Step 4: Integrate x402 payment capability
- [ ] Step 5: Submit to AgentBeat and claim USDC rewards
対象条件の概要:
- 実際に機能し、真の能力を備えたエージェントのみが対象です。AgentBeat の審査用 AI エージェントがすべての提出物を評価します。実際の機能がないエージェントは審査に合格せず、報酬を請求できません。
- ステップ 5 に進む前に、ステップ 1〜4 を完了してください。
- メインネットでのみ登録してください。
- 提出前に、有効な
nftIdと x402 の設定が整っていることを確認してください。 - NFT の所有者と報酬/支払いアドレスが異なる場合は、EIP-712 所有権証明の署名が必要です。
参照マップ
| 必要な情報 | 参照先 |
|---|---|
| ウォレットの設定、キーの永続化、残高の確認 | reference/wallet-setup.md |
ERC-8004 の登録、services、エンドポイントのパターン | reference/erc8004-registration.md |
| 提出ペイロードのフィールド、提出/確認/請求 API | reference/agentbeat-submission.md |
| x402 の統合の詳細とテスト | reference/x402-integration.md |
必須の確認ゲート(必須要件)
ステップ 1/ステップ 3/ステップ 5 の前に:
- 所有者に明示的に確認する必要があります。
- 決定内容を
~/.config/agentbeat/credentials.jsonに記録します(ファイルを利用できない場合は実行メモに記録します)。 - 必要な決定が未確認、曖昧、または拒否された場合は停止します。
KEY_HANDLING_GATE(ステップ 1 の前)
所有者に確認します:
Please confirm private key handling:
1) external signer / secure credential store (preferred), or
2) local plaintext storage in ~/.config/agentbeat/credentials.json (high risk).
Reply with one explicit approval.
記録する項目:
keyHandling.mode:external-signerまたはlocal-plaintext-approvedkeyHandling.ownerApproved:truekeyHandling.note
失敗条件:
- 明示的な承認がない場合は、ステップ 1 を停止します。
ENDPOINT_DECLARATION_GATE(ステップ 3 の前)
所有者に確認します:
Before ERC-8004 registration, confirm endpoint state:
1) Does the agent have an independent public endpoint? (yes/no)
2) If yes, provide endpoint URLs to verify.
3) If no, confirm registration should omit services.
記録する項目:
endpointDeclaration.hasIndependentEndpoint:trueまたはfalseendpointDeclaration.services:trueの場合は配列endpointDeclaration.note:falseの場合はno independent endpointを含めます
失敗条件:
- エンドポイントの状態が「はい」または「いいえ」と明示されていない場合は、ステップ 3 を停止します。
- エンドポイントを申告しているものの到達できない場合は、
register(agentURI)の前に停止します。
REWARD_ADDRESS_GATE(ステップ 5 の前)
所有者に確認します:
Please provide rewardAddress (Base EVM address) for USDC rewards.
If not provided, explicitly confirm fallback to x402PaymentAddress.
記録する項目:
rewardAddressDecision.rewardAddressrewardAddressDecision.fallbackToX402ConfirmedrewardAddressDecision.note
失敗条件:
- 有効な
rewardAddressも明示的なフォールバック確認もない場合は、ステップ 5 を停止します。
AGENT_LEGITIMACY_GATE(ステップ 5 の前)
真の能力を提供する、実際に機能するエージェントのみが、AgentBeat への提出および USDC 報酬の対象です。AgentBeat の審査用 AI エージェントがすべての提出物を評価します。実際の機能がないエージェントは審査に合格せず、報酬を請求できません。
所有者に確認します:
Before submitting to AgentBeat, confirm your agent's legitimacy:
1) What is this agent's core capability? (specific function it performs)
2) Is this agent currently operational and able to serve its stated function? (yes/no)
3) How does this agent use x402 payments? (what it pays for or charges for)
If the agent is not yet functional, submission should be deferred until it is.
記録する項目:
agentLegitimacy.coreCapability:エージェントが実際に行うことを一文で説明しますagentLegitimacy.isOperational:trueまたはfalseagentLegitimacy.x402Usage:エージェントが実際に x402 をどのように使用するかagentLegitimacy.ownerConfirmed:trueagentLegitimacy.note
失敗条件:
isOperationalが明示的にtrueでない場合は、ステップ 5 を停止します。coreCapabilityが空、曖昧、または一般的すぎる場合(例:「私のエージェント」、「AI エージェント」)は停止し、所有者に具体的な説明を求めます。x402Usageを明確に説明できない場合は停止し、所有者に詳細を確認します。
OWNERSHIP_PROOF_GATE(Step 5 の前、REWARD_ADDRESS_GATE の後)
NFT の所有者アドレスが rewardAddress または x402PaymentAddress と異なる場合、正当な送信であることを証明し、報酬の誤帰属を防ぐために、NFT 所有者のウォレットによる署名が必要です。
アクション:
- NFT ID のオンチェーン上の所有者を確認します。
rewardAddressおよびx402PaymentAddressと照合します。- すべて一致する場合は、
ownershipConsistent: trueを記録して続行します。 - いずれかが一致しない場合は、NFT 所有者に NFT 所有者のウォレットからの EIP-712 署名を求めます。
記録する項目:
ownershipProof.nftOwnerAddressownershipProof.ownershipConsistentownershipProof.signature(不一致の場合のみ)ownershipProof.note
ハードフェイル:
- 不一致が検出され、有効な署名が提供されない場合は、Step 5 を中止します。
既存の送信を事前確認する
agentbeat_voucher がすでに存在する場合:
- 再送信するかどうかを所有者に確認します。
- 所有者が「いいえ」と答えた場合は、中止します。
- 所有者が「はい」と答えた場合は、まず認証情報をバックアップします。
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
cp ~/.config/agentbeat/credentials.json ~/.config/agentbeat/credentials.backup.${TIMESTAMP}.json
chmod 600 ~/.config/agentbeat/credentials.backup.${TIMESTAMP}.json
Step 1:EVM ウォレットを作成または特定する
アクション:
- 存在しない場合は認証情報ファイルを作成し、厳格なアクセス権を設定します。
addressをすぐに保存します。KEY_HANDLING_GATEでローカルの平文保存が承認された場合に限り、privateKeyを保存します。
mkdir -p ~/.config/agentbeat
touch ~/.config/agentbeat/credentials.json
chmod 600 ~/.config/agentbeat/credentials.json
ブロック条件:
- まず
KEY_HANDLING_GATEを通過する必要があります。通過しない場合は中止します。
Step 2:所有者にガス代を依頼する
アクション:
- ウォレットへの入金を所有者に依頼します(Base を推奨)。
- 入金されるまで ETH 残高を確認します。
curl -s -X POST https://mainnet.base.org \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["{address}","latest"],"id":1}' \
| jq -r '.result'
ブロック条件:
- メインネットのガス代が利用可能になるまで Step 3 に進まないでください。
Step 3:ERC-8004 エージェント ID を登録する
アクション:
ENDPOINT_DECLARATION_GATEを実行します。- 登録用 JSON を準備してホストします。
- メインネットのレジストリで
register(agentURI)を呼び出します。 - レシートの
topics[3]からagentIdを解析します。 agentId、agentURI、nftIdを保存します。
ブロック条件:
- エンドポイントの宣言がない場合は中止します。
- 宣言されたエンドポイントに到達できない場合は、登録前に中止します。
- メインネット以外での登録は中止します(AgentBeat の対象外です)。
詳細:reference/erc8004-registration.md
Step 4:x402 決済機能を統合する
アクション:
- x402 の依存関係をインストールし、決済クライアントを設定します。
x402PaymentAddressと USDC の運用残高を確保します。
npm install @x402/axios @x402/evm @x402/core
ブロック条件:
- x402 のセットアップが確認されるまで Step 5 に進まないでください。
詳細:reference/x402-integration.md
Step 5:AgentBeat に送信して請求する
アクション:
REWARD_ADDRESS_GATEを実行します。AGENT_LEGITIMACY_GATEを実行します。OWNERSHIP_PROOF_GATEを実行します。- ペイロードを作成して AgentBeat API に送信します。
voucherをすぐに保存します。claimable: trueになるまでステータスを確認してから、請求します。
ブロック条件:
REWARD_ADDRESS_GATEを通過していない場合は中止します。AGENT_LEGITIMACY_GATEを通過していない場合は中止します。OWNERSHIP_PROOF_GATEを通過していない場合(有効な署名のない不一致)は中止します。address、nftId、x402PaymentAddressのいずれかが欠落している場合は中止します。
詳細:reference/agentbeat-submission.md
送信時のハードフェイルチェック
POST /api/v1/submissions の直前に確認します:
-
KEY_HANDLING_GATEを通過し、記録済みである。 -
ENDPOINT_DECLARATION_GATEを通過し、記録済みである。 -
REWARD_ADDRESS_GATEを通過し、記録済みである。 -
AGENT_LEGITIMACY_GATEを通過し、記録済みである(エージェントが実在し、稼働しており、能力と x402 の利用が明確である)。 -
OWNERSHIP_PROOF_GATEを通過し、記録済みである(アドレスが一致しているか、不一致の場合は EIP-712 署名が提供されている)。 -
address、agentId、nftId、x402PaymentAddressが存在し、整合している。 - API の送信先が
https://api.agentbeat.funであることを確認済みである。
ルール:
- 未チェックの項目がある場合はハードフェイルです。中止し、不足項目を報告します。
認証情報 JSON の詳細とフィールド例:
Quick Reference
Flow: Wallet -> Gas -> ERC-8004 -> x402 -> Submit/Claim
Gates: KEY_HANDLING_GATE, ENDPOINT_DECLARATION_GATE, REWARD_ADDRESS_GATE, AGENT_LEGITIMACY_GATE, OWNERSHIP_PROOF_GATE
Credentials: ~/.config/agentbeat/credentials.json