2004/erc-8004/SKILL.md
ERC-8004 Trustless Agents — register agent identity on-chain, publish reputation, discover other agents. Standardized agent infra for the open agent economy (Ethereum Foundation dAI team).
npx skillsauth add starchild-ai-agent/community-skills @2004/erc-8004Install this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Community edition — updated for Starchild skill marketplace.
Implementation of the ERC-8004 Trustless Agents standard — the Ethereum Foundation dAI team's on-chain Identity + Reputation + Validation layer for AI agents.
| Layer | Status | |---|---| | Identity Registry (ERC-721 agent identity) | ✅ Full read + write | | Reputation Registry (feedback + summary) | ✅ Full read + write | | Validation Registry | ⏸ Skipped — official README marks it as under active TEE-community revision |
Tx broadcasting goes through the Starchild wallet skill backend
(tools.wallet._wallet_request → POST /agent/transfer), so the agent's Privy wallet
signs and gas is platform-sponsored when available.
Singleton deployments per chain (same address triple across testnets, separate triple across mainnets):
| Chain | chainId | Identity | Reputation |
|---|---|---|---|
| base-sepolia (default) | 84532 | 0x8004A818…BD9e | 0x8004B663…8713 |
| base | 8453 | 0x8004A169…a432 | 0x8004BAa1…9b63 |
| ethereum | 1 | same as base | same as base |
| ethereum-sepolia | 11155111 | same as base-sepolia | same as base-sepolia |
Pass chain="base" etc. to any function. Default is base-sepolia.
from core.skill_tools import erc_8004
# 1. Register this agent
r = erc_8004.register_agent(
name="Crypto Research Agent",
description="On-chain analyst — funding rates, OI, social sentiment, on demand.",
services=[
{"name": "web", "endpoint": "https://my-agent.com/"},
{"name": "A2A", "endpoint": "https://my-agent.com/.well-known/agent-card.json", "version": "0.3.0"},
],
x402_support=True,
supported_trust=["reputation"],
)
print(r["agent_id"], r["explorer_url"], r["nft_url"])
# 2. Discover other agents
others = erc_8004.discover_agents(limit=20, filter_tag="reputation")
# 3. Fetch one agent's full registration
agent = erc_8004.get_agent(agent_id=42)
print(agent["registration_file"]["name"])
# 4. Leave feedback (caller MUST NOT be the agent's owner)
erc_8004.give_feedback(
agent_id=42,
value=5, # 5/5 stars
tag1="rating",
endpoint="https://my-agent.com/research",
feedback_uri="ipfs://Qm.../review.json",
)
# 5. Aggregate reputation (auto-fetches all reviewers if not specified)
rep = erc_8004.get_reputation(agent_id=42)
print(rep["count"], rep["avg"])
# 6. Pull individual feedback entries
for f in erc_8004.list_feedback(agent_id=42):
print(f["client_address"], f["human_value"], f["tag1"])
eip155:{chainId}:{identityRegistryAddress}:{agentId}.tokenURI. By default
this skill encodes it as a data:application/json;base64,… URI — fully on-chain,
no IPFS / HTTPS hosting required.getSummary requires non-empty client_addresses. Pass the
reviewer set you trust. get_reputation(...) defaults to "all reviewers ever" if
you don't specify, which is convenient but not Sybil-resistant — pick a reviewer
allowlist for high-stakes decisions.msg.sender is the
agent's owner or operator. Use a separate wallet for testing.Calls go through wallet_transfer which uses platform gas sponsorship by default
(verified working on Base Sepolia via Alchemy paymaster, ERC-4337 EntryPoint v0.7
at 0x0000000071727De22E5E9d8BAf0edAc6f37da032). Sponsored txs come back from the
wallet backend as:
{"data": {"hash": "", "user_operation_hash": "0x…", "sponsorship_provider": "alchemy", ...}}
The skill resolves user_operation_hash → real tx_hash by scanning EntryPoint
UserOperationEvent logs — not by polling a public bundler. This is critical:
Alchemy / Pimlico / Stackup / Biconomy don't share bundler mempools, so a Pimlico
eth_getUserOperationReceipt for an Alchemy-submitted op will return null forever.
Log scan is bundler-agnostic. See _resolve_user_op_hash in _utils.py.
If you ever see No tx_hash in wallet response, it means the EntryPoint scan
timed out (default 90s, scanning latest 500 blocks) — increase timeout= on
send_contract_tx or widen lookback_blocks.
If gas sponsorship is unavailable on the chain you target, fund the agent wallet from the corresponding faucet first (Base Sepolia: coinbase / alchemy / quicknode).
See output/eth-hk-demo/ for a full scripted demo combining this skill with:
tools
TQX (tqx.trade) HK/US stock quant workflow via tqx-cli: cross-sectional factor analysis, event-driven strategy backtests on the panda_backtest engine, and agent-driven automated paper trading. Use when the user wants to run factor IC/IR analysis, backtest a Python trading strategy on Hong Kong or US stocks, or set up agent-automated trading (e.g. "backtest a moving-average strategy on AAPL", "analyze a momentum factor on HK stocks", "let the agent trade my paper account").
tools
中学物理实验教学参赛方案套件。包含四个完整实验(单摆测g、声悬浮测声速、向心力定量演示仪、电磁阻尼定量研究),每套含固件源码、3D打印图纸、教学PPT、教学文稿、采购清单、调试手册、视频分镜脚本、模拟器。Use when a teacher/student needs a complete, classroom-ready physics experiment package for competition or teaching.
development
End-to-end blog management for AI agents. Write, import, build, preview, and publish articles using the blog template. Covers draft workflow, article import, SEO, OG images, and deployment.
development
ESP8266/ESP32 + 磁簧开关/霍尔传感器 单摆测重力加速度实验套件。 硬件搭建→固件烧录→数据采集→Web仪表盘→g值计算→教学文档,一站式完成。 Use when the user wants to build a pendulum g-measurement experiment, measure gravity with a micro-controller, or needs a complete physics experiment package with hardware + firmware + dashboard + teaching materials.