# DATA-DICTIONARY — ERC-8004 Arbitrum One cohort census (public RPC) — 2026-10-07

Column-by-column reader's map for `dataset.csv` (25 rows, 4 columns) and the top-level sections of `summary.json`.

## dataset.csv

Columns: `metric`, `value`, `unit`, `note`. One row per published metric.

| metric | type | note |
|---|---|---|
| `chain` | identifier | always `arbitrum-one` for this dataset |
| `chain_id` | integer | EVM chain id (42161) |
| `rpc_endpoint` | url | public RPC used — non-archive |
| `identity_registry` | hex-address | ERC-8004 IdentityRegistry deterministic address |
| `reputation_registry` | hex-address | ERC-8004 ReputationRegistry deterministic address |
| `deploy_block` | block-number | seeded from the 0656 freeze (node is non-archive) |
| `head_block_at_run` | block-number | head at measurement time |
| `scan_range_blocks` | count | deploy_block → head_block, inclusive; coverage_complete=true |
| `distinct_agent_ids` | count | Transfer(from=0x0) events on IdentityRegistry — **registry mints, not live agents** |
| `distinct_owners` | count | distinct owners (lower bound on operators if any owner transferred post-mint) |
| `top1_share_pct` | percent | share held by the single largest owner — not share of live agents |
| `top10_share_pct` | percent | share held by the top-10 owners — not share of live agents |
| `feedback_events` | count | NewFeedback events on ReputationRegistry (full history) |
| `distinct_feedback_agents` | count | full-cohort full-history count — not an extrapolation |
| `distinct_feedback_clients` | count | distinct NewFeedback senders |
| `tokenuri_sample_n` | count | evenly spaced across agent-id space, cap=200 |
| `tokenuri_with_uri_pct` | percent | share of sample that returned a tokenURI |
| `tokenuri_metadata_resolved_pct` | percent | share of sample resolved to parseable JSON |
| `tokenuri_has_signal_pct` | percent | share of sample with services/capabilities/x402/payment |
| `tokenuri_http_live_pct` | percent | share of sample's first endpoint that returned a 2xx/3xx/4xx — **HTTP reachability, not agent liveness** |
| `prior_0656_registrations` | count | 2026-09-17 freeze from task 0656 |
| `delta_registrations` | count | current − prior |
| `rpc_calls_total` | count | errors=0, backoffs=0 for this run |
| `envelope_sha256` | hex | SHA-256 of the source envelope — pins this dataset to that exact measurement |

## summary.json

| Section | Purpose |
|---|---|
| `source` | task id, envelope path + sha256, markdown report path, measurement script path |
| `generated_at` | ISO-8601 UTC of the measurement run |
| `measurement_window` | chain id, RPC endpoints, archive-ness, deploy/head block, scan coverage, RPC-call accounting |
| `registry_contracts` | deterministic ERC-8004 addresses — same on every EVM chain |
| `identity_registrations` | distinct agents + distinct owners + top-1/top-10 shares + top-10 owner table |
| `reputation_feedback` | feedback_events, distinct_feedback_agents, distinct_feedback_clients, scope_note |
| `tokenuri_sample` | sample size, with-uri/resolved/signal/http-live rates, extrapolated-to-cohort figures, liveness caveat, top endpoint-host clusters |
| `prior_measurement_delta` | reconciliation with the 2026-09-17 (task 0656) Alchemy-archive measurement |
| `coverage_disclosure` | explicit statement that this is MEASURED, not INDEXED — paid API covers Base + Ethereum |
| `claim_traps` | seven read-with-care notes, including the HTTP-vs-agent-liveness distinction |

## Field types in summary.json

- All percentages are 0-100 (not 0-1).
- `distinct_feedback_agents` is NOT a share — read it against `identity_registrations.distinct_agent_ids` (1,604) with the understanding that reputation is a different cohort than registration.
- `top10_owners[]` carries `owner`, `count`, `share_pct` per entry.
- `tokenuri_sample.top_clusters[]` carries endpoint-host clusters observed in the sample (publisher-concentration signal, small-n).

## Not published

See `METHOD.md` → "What this dataset does NOT publish". In short: no Arbitrum-cohort live rate, no Base/Arbitrum ratio, no Arbitrum trust scores. The paid `/v1/intel/*` API indexes Base and Ethereum; Arbitrum is measured here as a research datapoint.
