Submit to AgentBeat
This file is the control plane for execution. Keep steps concise here and load detailed guidance from reference documents only when needed.
Overview
CODEBLOCK0
Eligibility summary:
- - Only real, functional agents with genuine capability are eligible. AgentBeat reviewer AI agents evaluate every submission — agents without real functionality will not pass review and cannot claim rewards.
- Complete Steps 1-4 before Step 5.
- Use mainnet registration only.
- Ensure valid
nftId and x402 setup before submission. - If NFT owner differs from reward/payment addresses, an EIP-712 ownership proof signature is required.
Read Map
| Need | Read |
|---|
| Wallet setup, key persistence, balance checks | reference/wallet-setup.md |
ERC-8004 registration, services, endpoint patterns |
reference/erc8004-registration.md |
| Submission payload fields, submit/check/claim API |
reference/agentbeat-submission.md |
| x402 integration details and tests |
reference/x402-integration.md |
Mandatory Interaction Gates (Hard Requirements)
Before Step 1 / Step 3 / Step 5:
- 1. Must ask owner explicitly.
- Must record decision in
~/.config/agentbeat/credentials.json (or execution note if file unavailable). - Must stop if required decision is missing, ambiguous, or denied.
KEY_HANDLING_GATE (before Step 1)
Ask owner:
CODEBLOCK1
Record:
- -
keyHandling.mode: external-signer or INLINECODE6 - INLINECODE7 : INLINECODE8
- INLINECODE9
Hard fail:
- - If no explicit approval, stop Step 1.
ENDPOINT_DECLARATION_GATE (before Step 3)
Ask owner:
CODEBLOCK2
Record:
- -
endpointDeclaration.hasIndependentEndpoint: true or INLINECODE13 - INLINECODE14 : array if INLINECODE15
- INLINECODE16 : include
no independent endpoint if INLINECODE18
Hard fail:
- - If endpoint state is not explicitly yes/no, stop Step 3.
- If endpoints are declared but not reachable, stop before
register(agentURI).
REWARD_ADDRESS_GATE (before Step 5)
Ask owner:
CODEBLOCK3
Record:
- - INLINECODE21
- INLINECODE22
- INLINECODE23
Hard fail:
- - If neither valid
rewardAddress nor explicit fallback confirmation, stop Step 5.
AGENT_LEGITIMACY_GATE (before Step 5)
Only real, functional agents that provide genuine capability are eligible for AgentBeat submission and USDC rewards. AgentBeat reviewer AI agents evaluate every submission — agents that lack real functionality will not pass review and cannot claim rewards.
Ask owner:
CODEBLOCK4
Record:
- -
agentLegitimacy.coreCapability: one-sentence description of what the agent actually does - INLINECODE27 :
true or INLINECODE29 - INLINECODE30 : how the agent uses x402 in practice
- INLINECODE31 : INLINECODE32
- INLINECODE33
Hard fail:
- - If
isOperational is not explicitly true, stop Step 5. - If
coreCapability is empty, vague, or generic (e.g. "my agent", "AI agent"), stop and ask owner to provide a specific description. - If
x402Usage cannot be articulated, stop and ask owner to clarify.
OWNERSHIP_PROOF_GATE (before Step 5, after REWARD_ADDRESS_GATE)
When the NFT owner address differs from rewardAddress or x402PaymentAddress, a signature from the NFT owner wallet is required to prove authorized submission and prevent reward misattribution.
Action:
- - Determine the on-chain owner of the NFT ID.
- Compare with
rewardAddress and x402PaymentAddress. - If all match, record
ownershipConsistent: true and proceed. - If any mismatch, ask owner for an EIP-712 signature from the NFT owner wallet.
Record:
- - INLINECODE45
- INLINECODE46
- INLINECODE47 (only when mismatch)
- INLINECODE48
Hard fail:
- - If mismatch detected and no valid signature provided, stop Step 5.
Pre-check Existing Submission
If agentbeat_voucher already exists:
- - Ask owner whether to re-submit.
- If owner says no, stop.
- If owner says yes, backup credentials first.
CODEBLOCK5
Step 1: Create or Locate EVM Wallet
Action:
- - Create credentials file if missing and set strict permissions.
- Save
address immediately. - Store
privateKey only if KEY_HANDLING_GATE approved local plaintext.
CODEBLOCK6
Block:
- -
KEY_HANDLING_GATE must pass first, otherwise stop.
Details: reference/wallet-setup.md
Step 2: Request Gas from Owner
Action:
- - Ask owner to fund wallet (Base recommended).
- Poll ETH balance until funded.
CODEBLOCK7
Block:
- - Do not proceed to Step 3 until mainnet gas is available.
Details: reference/wallet-setup.md
Step 3: Register ERC-8004 Agent Identity
Action:
- - Execute
ENDPOINT_DECLARATION_GATE. - Prepare and host registration JSON.
- Call
register(agentURI) on mainnet registry. - Parse
agentId from receipt topics[3]. - Save
agentId, agentURI, nftId.
Block:
- - Missing endpoint declaration -> stop.
- Unreachable declared endpoint -> stop before registration.
- Non-mainnet registration -> stop (not eligible for AgentBeat).
Details: reference/erc8004-registration.md
Step 4: Integrate x402 Payment Capability
Action:
- - Install x402 dependencies and configure payment client.
- Ensure
x402PaymentAddress and USDC operational balance.
CODEBLOCK8
Block:
- - Do not proceed to Step 5 without confirmed x402 setup.
Details: reference/x402-integration.md
Step 5: Submit to AgentBeat and Claim
Action:
- - Execute
REWARD_ADDRESS_GATE. - Execute
AGENT_LEGITIMACY_GATE. - Execute
OWNERSHIP_PROOF_GATE. - Build payload and submit to AgentBeat API.
- Save
voucher immediately. - Check status until
claimable: true, then claim.
Block:
- -
REWARD_ADDRESS_GATE not passed -> stop. - INLINECODE68 not passed -> stop.
- INLINECODE69 not passed (mismatch without valid signature) -> stop.
- Missing
address, nftId, or x402PaymentAddress -> stop.
Details: reference/agentbeat-submission.md
Submission Hard Fail Checks
Immediately before POST /api/v1/submissions:
- - [ ]
KEY_HANDLING_GATE passed and recorded. - [ ]
ENDPOINT_DECLARATION_GATE passed and recorded. - [ ]
REWARD_ADDRESS_GATE passed and recorded. - [ ]
AGENT_LEGITIMACY_GATE passed and recorded (agent is real, operational, with clear capability and x402 usage). - [ ]
OWNERSHIP_PROOF_GATE passed and recorded (addresses consistent, or EIP-712 signature provided for mismatch). - [ ]
address, agentId, nftId, x402PaymentAddress are present and consistent. - [ ] API target confirmed as
https://api.agentbeat.fun.
Rule:
- - Any unchecked item is a hard failure. Stop and report missing items.
Credentials JSON details and field examples:
Quick Reference
CODEBLOCK9
提交至AgentBeat
本文件是执行的控制平面。请在此处保持步骤简洁,仅在需要时从参考文档加载详细指导。
概述
text
提交进度:
- - [ ] 步骤1:创建或定位EVM钱包
- [ ] 步骤2:向所有者请求Gas
- [ ] 步骤3:注册ERC-8004代理身份(NFT)
- [ ] 步骤4:集成x402支付能力
- [ ] 步骤5:提交至AgentBeat并领取USDC奖励
资格摘要:
- - 仅具有真实能力的实际功能代理符合资格。AgentBeat审核AI代理会评估每份提交——没有真实功能的代理将无法通过审核且无法领取奖励。
- 在步骤5之前完成步骤1-4。
- 仅使用主网注册。
- 提交前确保有效的nftId和x402设置。
- 如果NFT所有者与奖励/支付地址不同,则需要EIP-712所有权证明签名。
阅读地图
reference/erc8004-registration.md |
| 提交负载字段、提交/检查/领取API |
reference/agentbeat-submission.md |
| x402集成细节和测试 |
reference/x402-integration.md |
强制性交互关卡(硬性要求)
在步骤1/步骤3/步骤5之前:
- 1. 必须明确询问所有者。
- 必须在~/.config/agentbeat/credentials.json中记录决定(如果文件不可用,则记录执行说明)。
- 如果所需决定缺失、模糊或被拒绝,则必须停止。
KEYHANDLINGGATE(步骤1之前)
询问所有者:
text
请确认私钥处理方式:
1) 外部签名者/安全凭证存储(推荐),或
2) 本地明文存储在~/.config/agentbeat/credentials.json中(高风险)。
请回复一个明确的批准。
记录:
- - keyHandling.mode:external-signer或local-plaintext-approved
- keyHandling.ownerApproved:true
- keyHandling.note
硬性失败:
ENDPOINTDECLARATIONGATE(步骤3之前)
询问所有者:
text
在ERC-8004注册前,确认端点状态:
1) 代理是否有独立的公共端点?(是/否)
2) 如果是,请提供端点URL以验证。
3) 如果否,确认注册应省略services。
记录:
- - endpointDeclaration.hasIndependentEndpoint:true或false
- endpointDeclaration.services:如果为true则为数组
- endpointDeclaration.note:如果为false则包含no independent endpoint
硬性失败:
- - 如果端点状态不是明确的是/否,停止步骤3。
- 如果声明的端点不可达,在register(agentURI)之前停止。
REWARDADDRESSGATE(步骤5之前)
询问所有者:
text
请提供用于USDC奖励的rewardAddress(Base EVM地址)。
如果未提供,请明确确认回退到x402PaymentAddress。
记录:
- - rewardAddressDecision.rewardAddress
- rewardAddressDecision.fallbackToX402Confirmed
- rewardAddressDecision.note
硬性失败:
- - 如果既没有有效的rewardAddress也没有明确的回退确认,停止步骤5。
AGENTLEGITIMACYGATE(步骤5之前)
只有提供真实能力的实际功能代理才有资格提交至AgentBeat并领取USDC奖励。AgentBeat审核AI代理会评估每份提交——缺乏真实功能的代理将无法通过审核且无法领取奖励。
询问所有者:
text
在提交至AgentBeat之前,请确认您的代理的合法性:
1) 该代理的核心能力是什么?(它执行的具体功能)
2) 该代理当前是否可运行并能履行其声明的功能?(是/否)
3) 该代理如何使用x402支付?(它支付或收取什么费用)
如果代理尚未具备功能,应推迟提交直至其具备功能。
记录:
- - agentLegitimacy.coreCapability:代理实际功能的一句话描述
- agentLegitimacy.isOperational:true或false
- agentLegitimacy.x402Usage:代理实际如何使用x402
- agentLegitimacy.ownerConfirmed:true
- agentLegitimacy.note
硬性失败:
- - 如果isOperational不是明确的true,停止步骤5。
- 如果coreCapability为空、模糊或通用(例如我的代理、AI代理),停止并要求所有者提供具体描述。
- 如果无法说明x402Usage,停止并要求所有者澄清。
OWNERSHIPPROOFGATE(步骤5之前,在REWARDADDRESSGATE之后)
当NFT所有者地址与rewardAddress或x402PaymentAddress不同时,需要来自NFT所有者钱包的签名以证明授权提交并防止奖励归属错误。
操作:
- - 确定NFT ID的链上所有者。
- 与rewardAddress和x402PaymentAddress进行比较。
- 如果全部匹配,记录ownershipConsistent: true并继续。
- 如果有任何不匹配,要求所有者提供来自NFT所有者钱包的EIP-712签名。
记录:
- - ownershipProof.nftOwnerAddress
- ownershipProof.ownershipConsistent
- ownershipProof.signature(仅在不匹配时)
- ownershipProof.note
硬性失败:
- - 如果检测到不匹配且未提供有效签名,停止步骤5。
预检查现有提交
如果agentbeat_voucher已存在:
- - 询问所有者是否重新提交。
- 如果所有者说否,停止。
- 如果所有者说是,先备份凭证。
bash
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
步骤1:创建或定位EVM钱包
操作:
- - 如果凭证文件缺失则创建并设置严格权限。
- 立即保存address。
- 仅当KEYHANDLINGGATE批准本地明文时才存储privateKey。
bash
mkdir -p ~/.config/agentbeat
touch ~/.config/agentbeat/credentials.json
chmod 600 ~/.config/agentbeat/credentials.json
阻塞:
- - KEYHANDLINGGATE必须首先通过,否则停止。
详情:reference/wallet-setup.md
步骤2:向所有者请求Gas
操作:
- - 要求所有者向钱包充值(推荐Base)。
- 轮询ETH余额直至充值完成。
bash
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
阻塞:
详情:reference/wallet-setup.md
步骤3:注册ERC-8004代理身份
操作:
- - 执行ENDPOINTDECLARATIONGATE。
- 准备并托管注册JSON。
- 在主网注册表上调用register(agentURI)。
- 从收据topics[3]解析agentId。
- 保存agentId、agentURI、nftId。
阻塞:
- - 缺少端点声明 -> 停止。
- 声明的端点不可达 -> 在注册前停止。
- 非主网注册 -> 停止(不符合AgentBeat资格)。
详情:reference/erc8004-registration.md
步骤4:集成x402支付能力
操作:
- - 安装x402依赖并配置支付客户端。
- 确保x402PaymentAddress和USDC可操作余额。
bash
npm install @x402/axios @x402/evm @x402/core
阻塞:
详情:reference/x402-integration.md
步骤5:提交至AgentBeat并领取
操作:
- - 执行REWARDADDRESSGATE。
- 执行AGENTLEGITIMACYGATE。
- 执行OWNERSHIPPROOFGATE。
- 构建负载并提交至AgentBeat