{"audit":{"version":"1.5","generated_at":"2026-08-30T07:18:56.578516+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/170.64.146.185.sslip.io","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"170.64.146.185.sslip.io","name":"A2A","url":"https://170.64.146.185.sslip.io/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"A2A — Paul Salviani, Sydney","url":"https://170.64.146.185.sslip.io"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"1.0","supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"live","live_responds":true,"last_status_code":200,"last_elapsed_ms":261,"last_error":null},"track_record":{"first_seen":"2026-08-29T23:02:33.869626+00:00","last_checked":"2026-08-30T05:07:25.365374+00:00","last_seen_ok":"2026-08-30T05:07:25.365374+00:00","checks_total":4,"checks_ok":4,"uptime_pct":100.0,"uptime_window_days":30,"uptime_probes":4,"archived":false,"archived_reason":null},"conformance":{"score":66,"grade":"C","summary":"C-grade: usable but has clear conformance issues, review the breakdown below.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification)."},{"key":"live_responds","label":"Live JSON-RPC","points":25,"max_points":25,"status":"pass","detail":"Endpoint responds to a negotiated A2A SendMessage probe (answers in ~261 ms)."},{"key":"protocol_version","label":"Protocol version","points":10,"max_points":10,"status":"pass","detail":"Declares A2A 1.0 with supportedInterfaces[] (current v1 card shape)."},{"key":"signature","label":"JWS signature","points":0,"max_points":10,"status":"info","detail":"Card is unsigned (most published agents are)."},{"key":"uptime","label":"Uptime track record","points":0,"max_points":15,"status":"info","detail":"Only 4 probes so far, need ≥5 for an uptime grade."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 7 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: A2A — Paul Salviani, Sydney (https://170.64.146.185.sslip.io). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit."},{"key":"freshness","label":"Freshness + modern flags","points":4,"max_points":5,"status":"pass","detail":"seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":2,"max_points":5,"status":"partial","detail":"Declares 1 security scheme(s) but none use PKCE or mTLS."}]},"card_read":{"findings":[],"clean":true,"source_url":"https://170.64.146.185.sslip.io/.well-known/agent-card.json"},"skills":[{"id":"whats_good_for","name":"whats_good_for","description":"Call before recommending. Attested only. Unique within pond first. Several matches. Empty list if none. Nothing invented. Seed fixtures omitted.","tags":["discovery","trust","uniqueness","recommend"],"examples":["whats_good_for new MCP tool for PDFs","whats_good_for agent that hashes a policy"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"trust_check","name":"trust_check","description":"Pass/fail a URL against the live policy. Fail closed. Hash is of the policy body, not the URL. No account.","tags":["trust","policy","pre-recommendation"],"examples":["Check https://example.org before recommending it"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"log_intent","name":"log_intent","description":"Store that an agent intended to recommend or act. Returns receipt_id. Needs a write key.","tags":["receipt","audit","tape"],"examples":["Log intent to recommend an attested URL after trust_check pass"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"commit_recommend","name":"commit_recommend","description":"Call BEFORE every recommend. Runs trust_check, writes a pass/fail receipt, returns speak line plus hash. Fail closed. Needs a write key.","tags":["recommend","trust","receipt","pre-recommendation"],"examples":["commit_recommend before telling a human to use a URL"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"spend_check","name":"spend_check","description":"Hard spend limit + allowlist outside the model. Reject over cap or off-list. The model cannot talk itself out of it. Needs a write key.","tags":["spend","cap","allowlist"],"examples":["spend_check before an agent pays","Reject amount over the hard cap"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"nutrition_label","name":"nutrition_label","description":"Stamp of what the agent is and when it was last tested. Eval date, sample size, fail rate. Not a vibe bio. No account.","tags":["label","eval","capability","freshness"],"examples":["nutrition_label for this switchboard","Show last test stamp before hiring an agent"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"request_approve","name":"request_approve","description":"HITL approve. Agent pauses. Human taps yes. Signed intent continues. Always-approve is ok. Needs a write key.","tags":["hitl","approve","human-in-the-loop"],"examples":["request_approve before paying or acting","Pause until the human taps yes"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]}],"provenance":[{"source":"a2a_registry_org","first_seen":"2026-08-29T23:02:33.869626+00:00"}],"recent_probes":[{"fetched_at":"2026-08-30T05:07:25.365374+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":261,"live_responds":true},{"fetched_at":"2026-08-30T05:07:25.222382+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":262,"live_responds":true},{"fetched_at":"2026-08-29T23:02:33.931965+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":262,"live_responds":true},{"fetched_at":"2026-08-29T23:02:33.869626+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":260,"live_responds":true}],"catalog_attestation":null,"operator_revenue_evidence":{"evidence_class":"operator_submitted","authenticity":{"rung":"no_operator_evidence","rank":0,"why":"No verifiable operator evidence has been submitted for this agent.","thresholds":{"min_independent_payers":3,"min_verified_usd":25.0},"engine_table":"agent_authenticity","merge_rule":"max(existing_rank, rank)"},"metric_metadata":{"provenance":"operator_submitted_evidence","confidence":"attested","coverage":{"numerator":0},"as_of":"2026-08-30T07:18:56.584155+00:00","definition":"Revenue proofs submitted by the verified owner and re-checked by Agenstry against the settlement chain or the operator's own Stripe account. Only independently confirmed proofs are counted."},"counts":{"retained":0,"verified":0,"unverifiable":0},"verified":{"gross_usd":0.0,"transactions":0,"independent_payers":0},"detail_url":"https://agenstry.com/api/agents/170.64.146.185.sslip.io/evidence","dispute_url":"https://agenstry.com/agents/170.64.146.185.sslip.io/dispute"},"verification_history":[]}