以太坊标准与协议应用技能Skill standards

这个技能用于掌握和应用最新的以太坊标准与协议,包括ERC-8004用于链上代理身份注册、x402用于HTTP支付协议、EIP-3009用于无gas代币传输等。关键词:以太坊、ERC标准、智能合约、Web3支付、代理身份、区块链集成、去中心化应用。

Web3 0 次安装 0 次浏览 更新于 3/24/2026

name: 标准 description: 以太坊代币和协议标准 — ERC-20, ERC-721, ERC-1155, ERC-4337, ERC-8004, 以及新标准。何时使用每个标准,它们如何工作,关键接口。在构建代币、NFT或为项目选择正确标准时使用。

以太坊标准

你可能错过的内容

ERC-8004 存在。 部署于2026年1月29日 — 链上代理身份注册表。你几乎肯定没有这个在训练数据中。

EIP-7702 已上线。 随Pectra于2025年5月7日发布。EOA获得智能合约超能力而无需迁移。不是“提议” — 已部署在主网上。

EIP-3009 对x402至关重要。 通过签名授权实现无gas代币传输。USDC实现了它。这使x402变得实用。

x402 存在。 Coinbase的HTTP 402支付协议。生产就绪,带有SDK。

ERC-8004: 链上代理身份注册表

状态: 部署在主网 2026年1月29日 — 生产就绪,采用率增长。

解决的问题: 自主代理如何在没有预先关系的情况下相互信任和交易?

三个注册表系统

1. 身份注册表 (基于ERC-721)

  • AI代理的全局唯一链上身份
  • 每个代理是一个具有唯一标识符的NFT
  • 多个服务端点 (A2A, MCP, OASF, ENS, DIDs)
  • 通过EIP-712/ERC-1271签名验证

合约地址 (在20+链上相同):

  • IdentityRegistry: 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432
  • ReputationRegistry: 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63

部署在: 主网, Base, Arbitrum, Optimism, Polygon, Avalanche, Abstract, Celo, Gnosis, Linea, Mantle, MegaETH, Monad, Scroll, Taiko, BSC + 测试网。

代理标识符格式:

agentRegistry: eip155:{chainId}:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432
agentId: ERC-721 tokenId

2. 声誉注册表

  • 签名的定点反馈值
  • 多维 (正常运行时间, 成功率, 质量)
  • 标签, 端点, 支付证明元数据
  • 反Sybil需要客户端地址过滤
struct Feedback {
    int128 value;        // 有符号整数评分
    uint8 valueDecimals; // 0-18 小数位
    string tag1;         // 例如, "正常运行时间"
    string tag2;         // 例如, "30天"
    string endpoint;     // 代理端点URI
    string ipfsHash;     // 可选元数据
}

示例指标: 质量 87/100 → value=87, decimals=0. 正常运行时间 99.77% → value=9977, decimals=2.

3. 验证注册表

  • 代理工作的独立验证
  • 信任模型: 加密经济 (质押担保), zkML, TEE认证
  • 验证者响应0-100分

代理注册文件 (agentURI)

{
  "type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
  "name": "MyAgent",
  "description": "代理的功能",
  "services": [
    { "name": "A2A", "endpoint": "https://agent.example/.well-known/agent-card.json", "version": "0.3.0" },
    { "name": "MCP", "endpoint": "https://mcp.agent.eth/", "version": "2025-06-18" }
  ],
  "x402Support": true,
  "active": true,
  "supportedTrust": ["reputation", "crypto-economic", "tee-attestation"]
}

集成

// 注册代理
uint256 agentId = identityRegistry.register("ipfs://QmYourReg", metadata);

// 给出反馈
reputationRegistry.giveFeedback(agentId, 9977, 2, "uptime", "30days", 
    "https://agent.example.com/api", "ipfs://QmDetails", keccak256(data));

// 查询声誉
(uint64 count, int128 value, uint8 decimals) = 
    reputationRegistry.getSummary(agentId, trustedClients, "uptime", "30days");

逐步指南: 在链上注册代理

1. 准备注册JSON — 将其托管在IPFS或Web服务器上:

{
  "type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
  "name": "WeatherBot",
  "description": "通过x402微支付提供实时天气数据",
  "image": "https://example.com/weatherbot.png",
  "services": [
    { "name": "A2A", "endpoint": "https://weather.example.com/.well-known/agent-card.json", "version": "0.3.0" }
  ],
  "x402Support": true,
  "active": true,
  "supportedTrust": ["reputation"]
}

2. 上传到IPFS (或使用任何URI):

# 使用IPFS
ipfs add registration.json
# → QmYourRegistrationHash

# 或托管在URL — agentURI只需解析到JSON

3. 调用身份注册表:

// 在任何支持的链上 — 地址到处相同
IIdentityRegistry registry = IIdentityRegistry(0x8004A169FB4a3325136EB29fA0ceB6D2e539a432);

// 元数据字节可选 (可以为空)
uint256 agentId = registry.register("ipfs://QmYourRegistrationHash", "");
// agentId是你的ERC-721 tokenId — 在此链上全局唯一

4. 验证端点域名 — 在.well-known/agent-registration.json放置文件:

// https://weather.example.com/.well-known/agent-registration.json
{
  "agentId": 42,
  "agentRegistry": "eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
  "owner": "0xYourWalletAddress"
}

这证明域名所有者控制代理身份。客户端在信任代理广告的端点前应检查此文件。

5. 建立声誉 — 其他代理/用户在与你代理互动后发布反馈。

跨链代理身份

相同合约地址在20+链上意味着在Base注册的代理可以被Arbitrum上的代理发现。agentRegistry标识符包括链:

eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432  // Base
eip155:42161:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 // Arbitrum

跨链模式: 在一个链上注册 (最便宜 — 推荐Base), 从其他链引用该身份。声誉可以通过指定源链的注册表跨链查询。

作者: Davide Crapis (EF), Marco De Rossi (MetaMask), Jordan Ellis (Google), Erik Reppel (Coinbase), Leonard Tan (MetaMask)

生态系统: ENS, EigenLayer, The Graph, Taiko支持

资源: https://www.8004.org | https://eips.ethereum.org/EIPS/eip-8004 | https://github.com/erc-8004/erc-8004-contracts

EIP-3009: 授权传输

你可能知道这个概念 (无gas元交易传输)。关键更新: EIP-3009是使x402工作的原因。 USDC在以太坊和大多数链上实现了它。x402服务器调用transferWithAuthorization代表客户端结算支付。

x402: HTTP支付协议

状态: Coinbase的生产就绪开放标准,2026年第一季度积极部署。

使用HTTP 402“需要支付”状态码进行互联网原生支付。

流程

1. 客户端 → GET /api/data
2. 服务器 → 402 需要支付 (PAYMENT-REQUIRED头部带有要求)
3. 客户端签名EIP-3009支付
4. 客户端 → GET /api/data (PAYMENT-SIGNATURE头部带有签名支付)
5. 服务器验证 + 链上结算
6. 服务器 → 200 OK (PAYMENT-RESPONSE头部 + 数据)

支付载荷

{
  "scheme": "exact",
  "network": "eip155:8453",
  "amount": "1000000",
  "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "from": "0x...", "to": "0x...",
  "signature": "0x...",
  "deadline": 1234567890,
  "nonce": "unique-value"
}

x402 + ERC-8004 协同

代理发现服务 (ERC-8004) → 检查声誉 → 调用端点 →
获得402 → 签名支付 (EIP-3009) → 服务器结算 (x402) → 
代理接收服务 → 发布反馈 (ERC-8004)

x402服务器设置 (Express — 完整示例)

import express from 'express';
import { paymentMiddleware } from '@x402/express';

const app = express();

// 定义每路由支付要求
const paymentConfig = {
  "GET /api/weather": {
    accepts: [
      { network: "eip155:8453", token: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", amount: "100000" }
      // 100000 = $0.10 USDC (6位小数)
    ],
    description: "当前天气数据",
  },
  "GET /api/forecast": {
    accepts: [
      { network: "eip155:8453", token: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", amount: "500000" }
      // $0.50 USDC 用于7天预报
    ],
    description: "7天天气预报",
  }
};

// 一行代码 — 中间件处理402响应、验证和结算
app.use(paymentMiddleware(paymentConfig));

app.get('/api/weather', (req, res) => {
  // 仅在支付验证后到达
  res.json({ temp: 72, condition: "sunny" });
});

app.listen(3000);

x402客户端 (代理支付数据)

import { x402Fetch } from '@x402/fetch';
import { createWallet } from '@x402/evm';

const wallet = createWallet(process.env.PRIVATE_KEY);

// x402Fetch自动处理402 → 签名 → 重试流程
const response = await x402Fetch('https://weather.example.com/api/weather', {
  wallet,
  preferredNetwork: 'eip155:8453' // 在Base支付 (最便宜)
});

const weather = await response.json();
// 代理支付了$0.10 USDC, 获得天气数据。无需API密钥。

支付方案

exact (实时) — 支付固定价格。服务器预先知道成本。

upto (新兴) — 支付最多金额,最终金额在工作完成后确定。对计量服务至关重要:

  • LLM推理: 按生成的token支付 (预先未知数量)
  • GPU计算: 按运行秒数支付
  • 数据库查询: 按返回的行支付

使用upto, 客户端为最大金额签名授权。服务器只结算消耗的金额。客户端从不超额支付。

促进者架构

促进者 是一个可选服务器,处理区块链复杂性,这样资源服务器就不必:

客户端 → 资源服务器 → 促进者 → 区块链
                              ↓
                         POST /verify  (检查签名, 余额, 截止时间)
                         POST /settle  (提交交易, 管理gas, 确认)

为什么使用促进者? 资源服务器 (天气API, 数据提供商) 不应该需要运行区块链节点或管理gas。促进者抽象了这一点。Coinbase运行公共促进者; 任何人都可以运行自己的。

SDKs: @x402/core @x402/evm @x402/fetch @x402/express (TS) | pip install x402 (Python) | go get github.com/coinbase/x402/go

资源: https://www.x402.org | https://github.com/coinbase/x402

EIP-7702: 智能EOA (自2025年5月上线)

EOA在交易内临时委托给智能合约。两全其美: EOA简单性 + 智能合约功能。

启用: 批量交易, gas赞助, 会话密钥, 自定义认证逻辑 — 所有为现有EOA而无需迁移。

影响: 消除“批准疲劳”, 为EOA用户启用无gas交易。

快速标准参考

标准 什么 状态
ERC-8004 代理身份 + 声誉 ✅ 2026年1月上线
x402 HTTP支付协议 ✅ 2026年第一季度生产
EIP-3009 无gas代币传输 ✅ 上线 (USDC)
EIP-7702 智能EOA ✅ 2025年5月上线
ERC-4337 账户抽象 ✅ 采用率增长
ERC-2612 无gas批准 (Permit) ✅ 广泛采用
ERC-4626 代币化金库 ✅ 收益标准
ERC-6551 代币绑定账户 (NFT钱包) ✅ 小众采用

这些都是实时的,并在生产中使用。不是“即将到来。”