{"product": "Good-neighbor passport: agent traffic governor", "provider": "TextForAgents LLC", "slug": "good-neighbor-agent-traffic-passport", "what_it_does": "A budget-bearing RFC 9421-style Ed25519 traffic passport for agent fleets: operators sign per-host budgets capped at directory-published ceilings; this host-side API verifies passports and meters them with graduated allow / throttle / charge / block; an egress governor library (package lane) enforces the signed budget locally with ETag etiquette and a 402 billing-unit normalizer; a hash-chained compliance log (append-only, single-hash-linked, operator-signed checkpoints) restores an honest fleet in a dispute by admitted-count symmetry and fails fabricated/tampered logs.", "features": ["Signed per-host budget passport (Ed25519, web-bot-auth tag)", "Graduated allow/throttle/charge/block metering", "Budget capped at directory-published ceilings", "Hash-chained compliance log with tier-capped retention", "402 billing-unit normalizer (fail-closed on unknown units)", "Verification caching/TTL policy: registry-local verification (~1ms cached class; lab ~45ms at TTL 0, ~1ms cached) \u2014 see host onboarding"], "host_onboarding": {"shape": "1) Register (POST /register) and claim the one-time Solo trial or subscribe. 2) Register each operator key your property will honor: POST /operators {operator, keyid, public_key_b64, ceilings{max_requests, window_s, max_spend_microusd}} with your token. 3) For each incoming agent request, POST /verify {method, authority, path, headers{agent-passport, signature-input, signature}, optional quote+shape} \u2014 the response decision (allow/throttle/charge/block) is the graduated response to enforce at your edge. 4) Read GET /log and GET /log/checkpoint for dispute evidence; a segment chain-verifies against the returned anchor. No Cloudflare account is required on either side.", "verification_ttl_policy": "Keys and policy ceilings live in this host-side registry (updated via POST /operators); verification is local with no per-request directory fetch. When using the package DirectoryClient against an operator directory endpoint, TTL defaults to 30s (cached ~1ms) vs ~45ms at TTL 0 (strict, revocation-immediate). Choose TTL 0 for dispute handling, 30s for steady traffic."}, "limits": {"Solo": "1 operator account, up to 5 agents/operators registered, per-host budgets + compliance log (retention cap 1000 entries)", "Fleet": "Up to 50 agents/operators, etiquette engine, host-dispute evidence pack (retention cap 10000 entries)", "Host-side": "Per host property: verification/metering API, graduated allow/throttle/charge/block (retention cap 10000 entries)", "log_retention": "Tier-capped; pruning drops only a prefix and anchors its head hash \u2014 retained entries are never edited, redacted or reordered."}, "prices": {"Solo": {"price": "$5/mo", "atomic_usdc": 5000000, "trial": "First month of Solo free, one-time trial: once per operator account AND once per payer wallet, server-enforced. After the grant, $5/mo applies."}, "Fleet": {"price": "$15/mo", "atomic_usdc": 15000000}, "Host-side": {"price": "$19/mo per host property", "atomic_usdc": 19000000}}, "how_to_start": "POST /register {account_name, payer_wallet} -> account_id + claim token. POST /trial {account_id, claim_token} -> one-time Solo trial token (shown once). POST /subscribe {account_id, tier} with an x402 X-PAYMENT header at the tier price -> full token valid 30 days (renewal extends from the later of now/expiry). Authenticated routes use Authorization: Bearer <token>. Download the governor/passport library at GET /package (good_neighbor_passport 1.0.0).", "support": "support@textforagents.com", "pay_to": "0xAc2E243a075fEe442e4c6864DcF880eb4e3A3862", "network": "base", "lost_token_recovery": "Manual via support@textforagents.com (the only human step)."}