Skip to content

Commit 0d8c2ee

Browse files
fix(ccip-gateway): align Sepolia subname records with reachable URLs (#469)
* docs(ens): R20 Task D — ENSIP-26 follow-up issue + judge evidence Opened ensdomains/ensips#72: "ENSIP-26 (Agent Identity Records) — discussion: 5 design questions for community feedback." Converts the silent ENSIP-26 PR review into an active discussion thread by asking 5 specific implementation choices the spec could go either way on: Q1 — bare keys vs agent.* namespace Q2 — all-7 SHOULD vs required-core + optional-extensions Q3 — fixed Ed25519 vs polymorphic pubkey_<scheme> Q4 — JSON array capability + open tags vs canonical registry Q5 — reputation_score in ENSIP-26 vs split into sibling ENSIP Each phrased as "X vs Y, trade-offs A and B, which way" — never "is this a good idea" (that's the PR's job). Reviewers can React 👍/👎 or comment a stance per question. Live verifiable example baked into the issue body: paste-runnable cast probe for the mainnet apex (all 7 records resolve via PublicResolver) + viem-style CCIP-Read example for the Sepolia subname (research-agent.sbo3lagent.eth via deployed OffchainResolver). Cross-track citations: the issue explicitly references Uniswap/universal-router#477 (per-command policy gating uses ENSIP-26 audit_root) + KeeperHub/cli#57 (workflow envelope sbo3l_audit_root cites back). Tells reviewers "ENSIP-26 is the namespace the rest of the agentic-DeFi stack cites back to," not an isolated proposal. Why this matters: Dhaiwat said "you still have time" for late entrants. A live discussion thread converts "we opened a PR" (silent) into "we're driving a community conversation" (visible activity). Higher merge probability + better judge perception. This PR adds judge evidence: docs/proof/ensip-followup-issue.md pointing at upstream issue #72. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(ccip-gateway): align Sepolia subname records with reachable URLs (Heidi UAT P2) Heidi UAT R20 truthfulness round (#457) found 2 P2 + 1 P3 defects in the Sepolia gateway records.json: P2-1: sbo3l:endpoint = 'https://app.sbo3l.dev/v1' → DNS HTTP 000 Fixed → 'https://sbo3l-playground-api.vercel.app/api/v1' which IS the live Tier-3 hosted daemon (HTTP 200 verified). P2-2: sbo3l:proof_uri = '…/capsules/research-agent-01.json' → 404 (only mainnet apex /capsule.json exists on GH Pages). Fixed → '…/capsule.json' for both research-agent + trader-agent subnames. Same pattern as mainnet apex; honest reuse vs per-agent capsule mirror that was never built. P3 (policy_hash mismatch between mainnet + Sepolia subname): NOT addressed in this PR — needs design call. Mainnet = 'apex commitment', Sepolia subname = per-agent. Logged in Heidi's defect table for follow-up. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent d9db718 commit 0d8c2ee

2 files changed

Lines changed: 103 additions & 4 deletions

File tree

apps/ccip-gateway/data/records.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@
33

44
"research-agent.sbo3lagent.eth": {
55
"sbo3l:agent_id": "research-agent-01",
6-
"sbo3l:endpoint": "https://app.sbo3l.dev/v1",
6+
"sbo3l:endpoint": "https://sbo3l-playground-api.vercel.app/api/v1",
77
"sbo3l:policy_hash": "e044f13c5acb2c94f8c8e0b3e9a1d7f2c8b5e4a3d6c9b8e7f6a5d4c3b2a1f0e9d",
88
"sbo3l:audit_root": "0x0000000000000000000000000000000000000000000000000000000000000000",
9-
"sbo3l:proof_uri": "https://b2jk-industry.github.io/SBO3L-ethglobal-openagents-2026/capsules/research-agent-01.json",
9+
"sbo3l:proof_uri": "https://b2jk-industry.github.io/SBO3L-ethglobal-openagents-2026/capsule.json",
1010
"sbo3l:capability": "x402-purchase",
1111
"sbo3l:reputation": "100"
1212
},
1313

1414
"trader-agent.sbo3lagent.eth": {
1515
"sbo3l:agent_id": "trader-agent-01",
16-
"sbo3l:endpoint": "https://app.sbo3l.dev/v1",
16+
"sbo3l:endpoint": "https://sbo3l-playground-api.vercel.app/api/v1",
1717
"sbo3l:policy_hash": "f155e24c6bdc3da59d9e1c4e0a2e8a3d9c6f5b4e7da9c8f7b6a5d4c3b2a1f0e9d",
1818
"sbo3l:audit_root": "0x0000000000000000000000000000000000000000000000000000000000000000",
19-
"sbo3l:proof_uri": "https://b2jk-industry.github.io/SBO3L-ethglobal-openagents-2026/capsules/trader-agent-01.json",
19+
"sbo3l:proof_uri": "https://b2jk-industry.github.io/SBO3L-ethglobal-openagents-2026/capsule.json",
2020
"sbo3l:capability": "uniswap-swap",
2121
"sbo3l:reputation": "100"
2222
}

docs/proof/ensip-followup-issue.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# ENSIP-26 community follow-up — judge evidence
2+
3+
> **What this proves:** SBO3L isn't just opening upstream PRs and
4+
> waiting silent — we converted the [ENSIP-26 PR review](https://github.com/ensdomains/ensips/pull/71)
5+
> into an active discussion thread by opening a sister issue with
6+
> 5 specific design questions for the ENS community.
7+
8+
## Upstream issue
9+
10+
**https://github.com/ensdomains/ensips/issues/72**
11+
12+
- Title: `ENSIP-26 (Agent Identity Records) — discussion: 5 design questions for community feedback`
13+
- Cross-linked to [ENSIP-26 PR #71](https://github.com/ensdomains/ensips/pull/71)
14+
- Opened: 2026-05-03 by SBO3L (B2JK-Industry) contributor
15+
16+
## What the issue asks
17+
18+
5 specific design questions for ENS-community feedback. Each is
19+
phrased as "X vs Y, here's the trade-off, which way does the
20+
spec go" — none is "is this a good idea" (that's the PR's job).
21+
22+
| # | Question | Why it matters |
23+
|---|---|---|
24+
| Q1 | Bare keys (`agent_id`, ...) vs `agent.*` namespace prefix | Consumer ergonomics vs collision safety |
25+
| Q2 | All-7 vs required-core + optional-extensions | Partial-agent identity semantics |
26+
| Q3 | Fixed Ed25519 (`pubkey_ed25519`) vs polymorphic family (`pubkey_<scheme>`) | One scheme = simpler verifiers; polymorphic = forward compat |
27+
| Q4 | JSON array `capability` (open tags) vs comma-separated + canonical registry | Maintenance burden vs tag fragmentation |
28+
| Q5 | `reputation_score` in ENSIP-26 vs split into sibling ENSIP | Spec scope: identity-only vs identity+reputation |
29+
30+
Each question has the trade-off laid out + a concrete ask. Reviewers can React 👍 or comment a stance.
31+
32+
## Live verifiable example in the issue body
33+
34+
The issue includes a paste-runnable verification command for
35+
`sbo3lagent.eth` mainnet apex:
36+
37+
```bash
38+
RESOLVER=0xF29100983E058B709F3D539b0c765937B804AC15
39+
NODE=$(cast namehash sbo3lagent.eth)
40+
for KEY in agent_id endpoint pubkey_ed25519 policy_hash audit_root capability reputation_score; do
41+
printf '%s = ' "$KEY"
42+
cast call "$RESOLVER" "text(bytes32,string)(string)" "$NODE" "$KEY" \
43+
--rpc-url https://ethereum-rpc.publicnode.com
44+
done
45+
```
46+
47+
Plus a viem-style CCIP-Read example for the Sepolia subname:
48+
49+
```bash
50+
viem.getEnsText({
51+
name: 'research-agent.sbo3lagent.eth',
52+
key: 'agent_id',
53+
chain: sepolia,
54+
})
55+
// → "research-agent-01"
56+
```
57+
58+
This converts the issue from "abstract design discussion" to
59+
"design discussion grounded in a live reference impl reviewers
60+
can probe before forming opinions."
61+
62+
## Cross-track linking
63+
64+
The issue body explicitly cites the two companion upstream PRs:
65+
66+
- [Uniswap/universal-router#477](https://github.com/Uniswap/universal-router/pull/477)
67+
(per-command policy gating — uses ENSIP-26 `audit_root` as
68+
the on-chain audit-anchor commitment)
69+
- [KeeperHub/cli#57](https://github.com/KeeperHub/cli/pull/57)
70+
(workflow envelope `sbo3l_*` fields — `sbo3l_audit_root` is
71+
the citation back to the ENSIP-26 text record)
72+
73+
This tells reviewers: "ENSIP-26 isn't an isolated proposal;
74+
it's the namespace the agentic-DeFi stack we're building cites
75+
back to."
76+
77+
## Why upstream issue (vs PR comments)
78+
79+
The PR thread is good for **line-level technical edits** ("rename
80+
this field," "tighten this validation rule"). The issue is for
81+
**higher-level design questions** that need community input
82+
before the spec can lock in.
83+
84+
Per memory `competitor_intel_2026-05-03.md`:
85+
> ENS team accepts late entrants — Dhaiwat: "you still have time."
86+
87+
A live discussion thread converts "we opened a PR" (silent) into
88+
"we're driving a community conversation" (visible activity).
89+
Higher merge probability + better judge perception.
90+
91+
## SBO3L repository pointer
92+
93+
- **SBO3L repo:** https://github.com/B2JK-Industry/SBO3L-ethglobal-openagents-2026
94+
- **ENSIP-26 PR:** https://github.com/ensdomains/ensips/pull/71
95+
- **ENSIP-26 follow-up issue:** https://github.com/ensdomains/ensips/issues/72
96+
- **Companion ENSIP evidence doc:** [`docs/proof/ensip-upstream-pr.md`](ensip-upstream-pr.md)
97+
98+
Submission narrative ENS Most Creative entry will reference the
99+
issue alongside the PR.

0 commit comments

Comments
 (0)