internal/embed/skills/discovery/SKILL.md
Discover AI agents registered on the ERC-8004 Identity Registry. Search for agents by querying on-chain registration events, look up agent details (URI, owner, wallet), and fetch agent metadata. Read-only queries routed through the in-cluster eRPC gateway.
npx skillsauth add obolnetwork/obol-stack discoveryInstall 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.
Discover AI agents registered on the ERC-8004 Identity Registry. Query on-chain data to find agents, inspect their registration metadata, and fetch their service endpoints.
sell (ServiceOffer with ERC-8004 registration stage)ethereum-local-walletethereum-networksobol-stack# Search for recently registered agents on Base mainnet (default)
python3 scripts/discovery.py search
# Search on mainnet with a limit
python3 scripts/discovery.py search --chain mainnet --limit 5
# Get details for a specific agent by ID
python3 scripts/discovery.py agent 42
# Fetch and display the agent's registration JSON from their URI
python3 scripts/discovery.py uri 42
# Count total registered agents
python3 scripts/discovery.py count
# Look up agent on mainnet
python3 scripts/discovery.py agent 1 --chain mainnet
| Command | Description |
|---------|-------------|
| search [--chain <network>] [--limit N] | List recently registered agents from on-chain events |
| agent <id> [--chain <network>] | Get agent details: tokenURI, owner, wallet |
| uri <id> [--chain <network>] | Fetch the agent's registration JSON from their URI |
| count [--chain <network>] | Total number of registered agents |
The ERC-8004 Identity Registry is deployed at the same address on 20+ chains via CREATE2:
| Chain | Network Name | Registry Address |
|-------|-------------|-----------------|
| Base (default) | base | 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 |
| Base Sepolia | base-sepolia | 0x8004A818BFB912233c491871b3d84c89A494BD9e |
| Sepolia | sepolia | 0x8004A818BFB912233c491871b3d84c89A494BD9e |
| Mainnet | mainnet | 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 |
| Base | base | 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 |
| Arbitrum | arbitrum | 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 |
| Optimism | optimism | 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 |
Use --chain <network> to query a specific chain. The network name is passed to eRPC for routing.
| Variable | Default | Description |
|----------|---------|-------------|
| ERPC_URL | http://erpc.erpc.svc.cluster.local/rpc | eRPC gateway base URL |
| ERPC_NETWORK | base | Default chain for queries |
discovery.py
|
v
eRPC gateway (cluster-internal)
|
+-- eth_call (tokenURI, ownerOf, getAgentWallet)
+-- eth_getLogs (Registered events)
|
v
ERC-8004 Identity Registry (on-chain)
When you fetch an agent's URI, the registration JSON follows this schema:
{
"type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
"name": "AgentName",
"description": "What the agent does",
"services": [
{ "name": "A2A", "endpoint": "https://agent.example/.well-known/agent-card.json", "version": "0.3.0" },
{ "name": "MCP", "endpoint": "https://mcp.agent.example/", "version": "2025-06-18" }
],
"x402Support": true,
"active": true,
"supportedTrust": ["reputation", "tee-attestation"]
}
references/erc8004-registry.md -- Contract addresses, function signatures, event signaturesstandards skill for full ERC-8004 spec detailsaddresses skill for verified contract addresses across chainsOnce you find an agent with "x402Support": true and a service endpoint, use the buy-x402 skill to purchase access:
# 1. Probe the endpoint for pricing
python3 ${OBOL_SKILLS_DIR:-/data/.openclaw/skills}/buy-x402/scripts/buy.py probe <service-endpoint> --model <model-name>
# 2. Buy access (pre-signs payment auths, configures sidecar)
python3 ${OBOL_SKILLS_DIR:-/data/.openclaw/skills}/buy-x402/scripts/buy.py buy <name> \
--endpoint <service-endpoint> --model <model-name>
# 3. Use via LiteLLM as paid/<model-name>
See the buy-x402 skill for the full buy flow.
data-ai
Spawn durable child Hermes agents from inside Obol Stack. Creates child namespaces, optional profile/env Secrets, Agent CRDs, and optional ServiceOffers for x402-paid child services.
data-ai
Buy from any x402-gated endpoint. Two flows: `pay` for one-shot HTTP services (single authorization, no sidecar), and `buy` for long-running paid inference (pre-authorized batch via PurchaseRequest, exposed as `paid/<remote-model>`). Supports USDC (EIP-3009) and OBOL (Permit2). Zero signer access at runtime — spending is capped by design and nothing moves on-chain until a voucher is spent.
testing
Sell access to services via x402 payment gating. Create ServiceOffer CRDs that automatically health-check upstreams, create payment-gated routes, and optionally pull models and register on ERC-8004. Supports inference, HTTP, and fine-tuning service types.
testing
End-to-end guide for monetizing GPU resources or HTTP services through obol-stack. Covers pre-flight checks, model detection, pricing research, selling via x402, ERC-8004 registration, and verification. Use this skill when the user wants to monetize their machine.