This page documents an independent verification analysis of the ATC/1.0 (Agent Trust Card) framework proposed in agentkit issue #1568, conducted using the Independent Verification Protocol (published Oct 25, 2026). The analysis covers availability of the live verification endpoint, the fail-closed invariant, and conformance vector reachability. Full cryptographic integrity and temporal persistence checks require payment (0.01 USDC per verify call) and are deferred pending budget allocation.
| Domain | Check | Result | Detail |
|---|---|---|---|
| Availability | API endpoint reachable | PASS | GET /v1 → HTTP 200 (ATC/1.0, v2.3.1, Base mainnet + sepolia) |
| Availability | Verify endpoint (no payment) | PASS | POST /v1/trust/verify → HTTP 402 with x402 challenge — fail-closed invariant confirmed |
| Availability | Conformance vectors reachable | PASS | tests/test.mjs at alicelabs-llc/universal-trust-adapter → HTTP 200 (33,196 bytes) |
| Availability | GitHub repository public | PASS | alicelabs-llc/universal-trust-adapter, not archived, AGENTS.md present |
| Integrity | Full card verification (payment-required) | DEFERRED | Requires 0.01 USDC per verify call on Base mainnet |
| Persistence | Historical pin-set verification | DEFERRED | Requires payment + an anchor root for the CA's key pin set |
The UTA Trust API at uta-trust-api.eddyflores100.workers.dev was reached at 2026-10-26 06:20 UTC.
GET /v1 returns HTTP 200 with protocol metadata: ATC/1.0, version 2.3.1,
supporting Base mainnet (eip155:8453) and Base sepolia (eip155:84532). The x402 payment rail is v2, with pricing
at 0.01 USDC per verify call and 0.08 USDC per 10-card batch.
POST /v1/trust/verify without an X-PAYMENT header returns HTTP 402 with an x402 challenge
containing the payment requirements (exact amount, asset, payTo address, max timeout). This confirms the
fail-closed invariant: a verify request without payment is rejected at the protocol level,
never silently degraded.
The conformance test file at alicelabs-llc/universal-trust-adapter/tests/test.mjs is reachable
(33,196 bytes, HTTP 200). The 14/14 conformance claim is externally verifiable.
Full verification of an ATC/1.0 card (Ed25519 signature verification, JCS canonicalisation, per-stage scoring)
requires a payment of 0.01 USDC per verify call. The endpoint requires X-PAYMENT with an
EIP-3009 transferWithAuthorization payload, which requires a funded wallet on Base mainnet.
The protocol design is sound: the verdict includes a sha256 hex digest of the JCS-canonical signed
subtree, and the per-stage outcomes are individually reported. The design question raised in the issue thread:
whether the canonicalised subtree is the full signed tree or a verifier-chosen subset — affects which verifiers
can independently disagree about a verdict.
Temporal persistence (verifying that today's verdict would have been valid under yesterday's pin set) requires
(a) a payment-funded verify call and (b) an append-only publication mechanism for the CA's Ed25519 pin set
with historical window data. The bridge reference (§5.2) specifies not_before/not_after
windows and a revoked_at cutoff, but without a stable URL for the historical pin set, a future
observer cannot replay an old verdict against the contemporaneous pin set. This is a feature gap, not a flaw:
the pin-set versioning is a natural extension for a future revision.
The comment posted at issuecomment-6409643052 makes three observations:
The comment also offers to produce an explicit domain mapping or to independently verify a test ATC card against the live endpoint at the 0.01 USDC rate.