feat(discovery): ERC-8004 v1 discovery — plan + Phase 1 implementation#46
feat(discovery): ERC-8004 v1 discovery — plan + Phase 1 implementation#46eoskl wants to merge 4 commits into
Conversation
Adds docs/roadmap/erc-8004-discovery.md — Phase 1 off-chain registration file (v2.1.0) + Phase 2 Base Sepolia mint (v2.2.0) using the ChaosChain reference Identity Registry contract. Per CLAUDE.md Agent-Native Development §2 (Plans before PRs) this PR is documentation only. Implementation lands separately after plan approval. Implements: RFC 9315 §4 Principle 5 (Capability Exposure) — agent-level TMF921: advertises /tmf-api/intentManagement/v5 as the standards surface Paper: supports cross-organisational discovery claim for Paper 2 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
… Conditions Adds docs/compliance/arb-reviews/erc-8004-discovery-2026-06-03/ — board-ready ARB Review Report, Action Register, ATT&CK Navigator layer, Architecture Repository delta note, and directory README. Decision: Approved with Conditions (5 conditions, max residual risk 6, no escalation to Executive Risk Committee required). Closes TOGAF G Non-Compliance on Security Architecture Viewpoint via C1. Status: Provisional — MITRE ATT&CK MCP unavailable; reconcile against live KB v15+ before final sign-off. Decision is robust to reconciliation. Implements: CLAUDE.md Agent-Native Development §4 (Evidence as versioned artefacts) — ARB output lands under docs/compliance/. Paper: provides the threat-informed defence viewpoint for the ERC-8004 discovery workstream cited in Paper 2. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
ARB Review — Approved with ConditionsThreat-informed Architecture Review Board review of this plan has been completed and committed to the same branch (commit DecisionApproved with Conditions — 5 conditions, max residual risk 6, no Critical × High. No escalation to Executive Risk Committee required.
TOGAF posture
Threat overlay8 in-scope ATT&CK tactics, 17 prioritised techniques across the union of four threat profiles (telecom-infrastructure, DeFi/crypto-key, generic enterprise, academic/supply-chain). The standout finding:
Provisional caveatMITRE ATT&CK MCP was not connected during review. Technique IDs (especially T1565.002 and T1657 Financial Theft) need reconciliation against Recommended next steps
🤖 Generated with Claude Code |
…CK MCP — Final
Promotes the 2026-06-03 ARB Review for ERC-8004 Discovery from Provisional
to Final via same-day reconciliation against the live MITRE ATT&CK MCP
(enterprise domain). Decision (Approved with Conditions, 5 conditions
C1-C5) stands; substance of all five conditions unchanged.
Material findings, recorded in arb-review-report.md §11:
- Technique ID correction: T1565.002 ("Transmitted Data Manipulation")
→ T1565.001 ("Stored Data Manipulation") — the highest-impact
technique was correctly described but cited the v15 ID for the wrong
sub-technique. Applied throughout report, navigator JSON, and action
register.
- Six M/DS attribution refinements: C2 drops M1031 (not canonical for
T1499); C3 drops M1041 + M1018 from legs where not canonical, adds
M1022 + M1026, replaces DS0022 with DS0002 + DS0028 for the cloud-
account leg; C4 confirms M1041 + M1022 and notes M1029 inapplicable;
C5 unchanged (all M/DS confirmed canonical).
- Risk #1 (T1190 detection gap) likelihood Medium → High based on live
group attributions (Volt Typhoon, Salt Typhoon, HAFNIUM, ~50+ groups
with active telecom-infrastructure campaigns). Residual 4 → 6;
accepting authority uplifted Domain Architect → Chief Architect /
CISO delegate. Two risks now sit at residual 6; max residual still
6, no Executive Risk Committee escalation.
- Phase 1 progress audit: branch feat/erc-8004-discovery-phase-1
contains only the plan + ARB docs; no implementation code yet. All
five conditions remain ⬜ Open. C1 is doc-only and closable now via
plan amendment before the Phase 1 impl PR.
Implements: CLAUDE.md Agent-Native Development §4 (Evidence as
versioned artefacts) — reconciliation lands under docs/compliance/ as
an addendum, not as a rewrite of the historical record.
Paper: tightens the threat-informed defence viewpoint for the ERC-8004
discovery workstream cited in Paper 2 — provisional caveat removed,
ATT&CK IDs and M/DS attributions now match the live KB.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…e 1) Serve GET /.well-known/agent-registration.json from a curated, config-driven allow-list (src/config/agent-public.yaml), built and validated by src/discovery/AgentRegistration.ts. Phase 1 is off-chain only: registrations[] is [] and supportedTrust is ["reputation"] (TMF921 IntentReport.reportState is the feedback source; crypto-economic/tee-attestation would be unbacked claims). Per plan §D5 the services[] surface is NOT derived from McpAdapter.getCapabilities() — it is the agent-communication-endpoint surface, distinct from that network-service-capability interface. ARB conditions (review 2026-06-03, Approved with Conditions) closed in this PR: - C1: Security Architecture Viewpoint added as plan §11. - C2: dedicated wellKnownLimiter on the route (outside the /api/ limiter so an /api/ DoS cannot block discovery) — M1037 vs T1499. - C5: structured logger.error on 5xx (DS0015 Application Log) for T1190 rate-spike detection. C3/C4 are Phase 2, tracked open in the ARB action register. Route is mounted after metrics middleware so each request is observed, and the Istio VirtualService gets an exact-match URI for the well-known path. Verification: - 355/355 jest tests pass (15 new: 9 unit + 6 integration covering AC1.2-1.5, C2 limiter 429, C5 structured 5xx log); tsc --noEmit clean. - Live: GET returns 200 application/json with the valid v1 body via both the pod and the Istio ingress gateway (Host: ibn-core.vpnet.cloud). - O2C canonical regression could not return "fulfilled": the Anthropic API is out of credits (external billing, invalid_request_error). The pipeline reaches the API correctly; this additive route does not touch the intent path, so it is not a regression. Implements: RFC 9315 §4 Principle 5 (Capability Exposure) TMF921: advertises /tmf-api/intentManagement/v5 Paper: supports Paper 2 cross-organisational discovery claim Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
ERC-8004 discovery workstream: the plan + ARB review plus the Phase 1 implementation. Phase 1 serves the ERC-8004 v1 off-chain registration file at
GET /.well-known/agent-registration.json, built from a curated, config-driven allow-list. Off-chain only —registrations[]is[](Phase 2 mints on Base Sepolia) andsupportedTrustis["reputation"].Plan:
docs/roadmap/erc-8004-discovery.md· Mapping:docs/standards/ERC-8004-mapping.md· ARB:docs/compliance/arb-reviews/erc-8004-discovery-2026-06-03/Commits
plan(discovery)— ERC-8004 identity-registry discovery planarb(discovery)— ARB review (Approved with Conditions)arb(discovery)— reconcile against live MITRE ATT&CK MCP (Final)feat(discovery)— Phase 1 implementation (this is the code)Phase 1 — what's in it
src/discovery/types.ts— ERC-8004 v1 types + versionedtypeURLsrc/discovery/AgentRegistration.ts— builder; readssrc/config/agent-public.yaml, validates + refuses unsafe shapes, cachessrc/config/agent-public.yaml— curated source of truth (TMF921 v5 + web;reputationonly)src/index.ts— route wiring (after metrics, outside the/api/limiter) with a dedicatedwellKnownLimiter+ structured 5xx loggingVirtualService— exact-match URI for the well-known pathNOTICE/CLAUDE.md— ERC-8004 (CC0) + ChaosChain ref-impl (Apache 2.0) + js-yaml attribution; Standards Implementation Map rowpackage.json—js-yamldep; build copiesconfig/*.yamltodist/Architectural note (plan §D5)
services[]is not derived fromMcpAdapter.getCapabilities(). ERC-8004 is the agent-communication-endpoint surface;McpAdapteris the network-service-capability surface. Distinct layers.ARB conditions (review 2026-06-03 — Approved with Conditions)
wellKnownLimiter+ integration testlogger.error+ integration testVerification
tsc --noEmitclean.ibn-core:erc-8004-phase-1):GETreturns200 application/jsonwith the valid v1 body via both the pod and the Istio ingress gateway (Host: ibn-core.vpnet.cloud) — closes AC1.1.fulfilled: the Anthropic API is out of credits (external billing —invalid_request_error). The pipeline reaches the API correctly; this additive discovery route does not touch the intent path, so this is not a regression. Re-run once credits are restored.Acceptance criteria (plan §4.6)
AC1.1 ✅ live · AC1.2–1.5 ✅ tests · AC1.6 (p95) not a CI gate · AC1.7 ✅ mapping doc · AC1.8 ✅ NOTICE · AC1.9 ✅ headers
Implements: RFC 9315 §4 Principle 5 (Capability Exposure)
TMF921: advertises
/tmf-api/intentManagement/v5🤖 Generated with Claude Code