Skip to content

Write real ERC-8004 facts into featured.json (stream C) — consume A's handoff (#20/#22), reconcile the shared-provider state from #23 #26

Description

@fercodes

TL;DR — Four agents are deployed and ERC-8004-registered on BSC testnet (PRs #20/#22), but featured.json still shows Day-0 fake ids/endpoints, and since #23 all eight records share one unrelated wallet. Stream C: swap in the real facts, probe endpoints before live: true, and never write invented values.

Requested by: stream S. Owner: stream C (Catalog). Sources of truth already on main: agents/LISTING-HANDOFF.md and openspec/changes/deploy-register-remaining-agents/ (PRs #20 and #22).

  1. Why this matters
  • Every judge-visible agent card should match what the chain says — right now the catalog contradicts the ERC-8004 registry.
  • PR feat(web): connect API over LAN and update featured agents #23 set all eight records to one owner/erc8183Provider (0x638592bfdd792AE59A4B5892e971e1A79F8F517d), a wallet that belongs to none of the registered agents — ownership misattributed, and escrow for real hires routed to a single unrelated wallet.
  • The Day-0 placeholders (token ids 80041–80048, https://agents.local/... endpoints) can now finally be replaced by actual facts.
  1. Facts to write (verified on main)
    Write these four records now. Record id values stay unchanged; chainId stays 97.
  • hf-watch (health_factor) — ERC-8004 token id 2292; owner and erc8183Provider = 0x6d07BBc31ea6A9d05B323123470Ae2a7955FfCad
  • range-keeper (rebalancing) — token id 2300; wallet 0xCC2abE29F43EAb530a6b5D93E3C41bc0E7622b47
  • yield-router (yield) — token id 2301; wallet 0xe1D07be03DDE2C292f842AdE4f34782FDf9176c5
  • grid-runner (grid_trading) — token id 2302; wallet 0x78f800FBA857Ae0a33eEa55f62a68ddA20b27185
    Endpoint fields (endpoints.a2a, endpoints.mcp) are blocked on the companion stream-A issue: the Cloudflare account subdomain is only known to the deployer, and the URLs will be posted there as JSON. Until they arrive, keep existing endpoint values (or null) and live: false. Contract from agents/LISTING-HANDOFF.md: a2a = /.well-known/agent-card.json, mcp = /mcp, both absolute URLs (packages/domain rejects anything else and allows null).
  1. Steps
  2. Write now — the token ids and per-agent wallets listed above (facts already on main).
  3. Endpoints — wait for stream A's posted JSON and copy it verbatim, per agent.
  4. Probe before live: true — curl /.well-known/agent-card.json must return 200 with the agent card; /mcp must respond as an MCP endpoint. No probe ⇒ no live: true. Never invent or template-fill a URL.
  5. Leave the four comparison records alone (lp-sentinel, band-bot, apr-hopper, liq-guard) — their invented identity values stay; changing them is stream H's rail decision, not this issue.
  6. Validate — pnpm -r typecheck green (the fixture parses through packages/domain schemas at import; a bad shape fails the build).
  7. Acceptance criteria
  • Four records carry the real token ids (2292 / 2300 / 2301 / 2302) and the per-agent wallets listed above
  • Endpoints come only from stream A's posted JSON (or remain as-is/null until then); live: true only behind a passing probe
  • Equal depth kept: 8 records, 2 per category, same id values as before
  • pnpm -r typecheck green; API boots; browse → detail renders with fallback signals
  • Only packages/indexer/fixtures/featured.json changed (no apps/web, apps/api, packages/signals; no packages/domain — that one needs its own Platform-reviewed PR)
  1. What this unblocks
  • Stream S — marketplace-hired agent legs for TermiX tasks 1–3 (the 30% "proven agent advantage" criterion and the mandatory trading-class row) for the Agent Advantage Report in evidence/.
  • Stream H — real hire receipts against registered agents for Wed 9 (escrow actually routed to agent wallets).
  • Judges — card metadata a registry cross-check will confirm instead of contradict.
  1. For AI agents reading this
  • You may apply the token ids + wallets for the four registered agents now — those facts live on main (agents/LISTING-HANDOFF.md, openspec/changes/deploy-register-remaining-agents/tasks.md).
  • Do not derive, guess, or fill endpoint URLs — the Cloudflare subdomain is not in the repository. They arrive only via the companion stream-A issue; until then live: false.
  • Only packages/indexer/fixtures/featured.json may be edited. apps/web, apps/api, packages/signals are other streams' trees; packages/domain needs its own Platform-reviewed PR.
  • Do not touch the four comparison records' identity fields — fixture placeholders by design.
  • Verify before reporting success: pnpm -r typecheck green, fixture loads without Zod failure, categories still 2/2/2/2 (curl :3001/agents?category= while the API runs locally).
  • Read in order: agents/LISTING-HANDOFF.md → openspec/changes/deploy-register-remaining-agents/tasks.md → packages/domain/src/index.ts → packages/indexer/fixtures/featured.json.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions