{"audit":{"version":"1.5","generated_at":"2026-10-24T06:39:14.982487+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/screwtape.ai","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"screwtape.ai","name":"Screwtape.ai","url":"https://screwtape.ai/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"Screwtape.ai","url":"https://screwtape.ai"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"0.3","supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"wrong_response","live_responds":false,"last_status_code":200,"last_elapsed_ms":72,"last_error":null},"track_record":{"first_seen":"2026-10-24T03:38:54.790703+00:00","last_checked":"2026-10-24T03:38:54.790703+00:00","last_seen_ok":"2026-10-24T03:38:54.790703+00:00","checks_total":1,"checks_ok":1,"uptime_pct":100.0,"uptime_window_days":30,"uptime_probes":1,"archived":false,"archived_reason":null},"conformance":{"score":42,"grade":"D","summary":"D-grade: significant issues, auth-gated, partially broken, or stale.","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":5,"max_points":25,"status":"fail","detail":"Endpoint replies but body isn't a valid JSON-RPC 2.0 A2A response."},{"key":"protocol_version","label":"Protocol version","points":5,"max_points":10,"status":"partial","detail":"Declares pre-1.0 A2A 0.3 (Google preview). Upgrade to v1.x for full points."},{"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 1 probe so far, need ≥5 for an uptime grade."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 6 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: Screwtape.ai (https://screwtape.ai). 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":5,"max_points":5,"status":"pass","detail":"declares 1 modern capability flag(s) (x402); seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":2,"max_points":5,"status":"partial","detail":"Declares 2 security scheme(s) but none use PKCE or mTLS."}]},"card_read":{"findings":[],"clean":true,"source_url":"https://screwtape.ai/.well-known/agent-card.json"},"skills":[{"id":"check_duplicate_invoice","name":"Check an invoice for duplicates before the agent pays","description":"Duplicate invoice check before an agent pays, with a signed receipt. Compares the invoice with the ones this API key recorded earlier and judges it like judge. Input: POST /v1/duplicate, the MCP tool check_duplicate_invoice, or A2A message/send with a data part, sending task, agent_output (the invoice JSON) and duplicate {vendor_path, invoice_id_path, amount_path, currency_path?, date_path?, window_days?, store?}. Output: the judge result plus duplicate.status (unique, duplicate, possible_duplicate, replay or not_checked). Needs Authorization: Bearer, because fingerprints are kept per key; only keyed HMAC fingerprints are stored, and only when store is true. Cost: same as judge.","tags":["invoices","duplicates","payments","validation"],"examples":["Has this invoice already been paid?","Check this vendor invoice for duplicates before I pay it."],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"judge","name":"Judge one agent output (pass, fail or retry)","description":"Independent pass/fail/retry verdict on one agent output, checked against the evidence and criteria you send. Use it before returning or acting on a draft. Not for web lookup or for comparing several answers (use consensus). Input: POST /v1/judge, the MCP tool judge, or A2A message/send, with task and agent_output plus optional evidence[], criteria[] and retain. Output: verdict, score 0 to 1, reasons, engine, request_id, retention. Cost: free key (100 calls per UTC day) or $0.005 USDC per call via x402 on Base or Solana.","tags":["judge","validation","verdict","x402"],"examples":["Check this answer against the evidence before I send it.","Is this agent output supported by these sources?"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"consensus","name":"False-consensus check across 2 to 16 agent answers","description":"False-consensus check: scores agreement across 2 to 16 answers to one task and flags agreement that looks copied or thin. Use it before accepting a majority vote. Not for a single answer, and not proof of correctness: verify consensus_answer with judge. Input: POST /v1/consensus, or MCP tool consensus, with task and answers[{agent_id?, output}]. Output: consensus_answer, agreement_score, false_consensus_risk (low, medium or high), reasons, clusters, engine, request_id. Cost: same as judge, on Base or Solana.","tags":["consensus","false-consensus","x402"],"examples":["Five agents agreed. Is that agreement trustworthy?","Score these three answers for false consensus."],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"get_api_key","name":"Get a free API key (proof of work, no human approval)","description":"Creates a free key (100 calls per UTC day). Use it only when no key exists and you can compute SHA-256 in code. Input: POST /v1/signup, or MCP tool get_api_key, with pow_nonce (SHA-256 of screwtape-signup-v1:<UTC YYYY-MM-DD>:<nonce> must start with 12 zero bits; nonce matches ^[A-Za-z0-9_-]{8,64}$), plus optional email and name (at most 80 characters). Output: api_key (shown once), key metadata, request_id. Limits: 5 keys per IP per hour and per UTC day. Free.","tags":["signup","api-key"],"examples":["Create a free Screwtape key for this agent."],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"buy_pack","name":"Buy a prepaid pack with USDC","description":"Starter is $40 USD for 10000 calls and Builder is $175 USD for 50000 calls, payable in USDC on Base or Solana. POST /v1/packs/starter/buy or POST /v1/packs/builder/buy. The MCP tool buy_pack returns the 402 requirements and does not move funds. Pay with PayPal at POST /v1/packs/checkout.","tags":["pack","usdc","x402"],"examples":["Buy the Starter pack with USDC on Base or Solana."],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"publish_receipt","name":"Publish one signed receipt as a Screwtape Verified badge","description":"Publish a receipt you own so a public page and badge link to that one verdict. It states that this output got this verdict at this time; it is not a general certification of the agent. Input: receipt_id, optional include_content, label, unpublish. Output: public_url, badge_svg_url, embed_html, embed_markdown. Needs the Bearer key that owns the receipt; no x402. Free. Available on MCP and REST.","tags":["receipt","badge","verification"],"examples":["Publish the receipt for this verdict so I can link to it."],"inputModes":["application/json"],"outputModes":["application/json"]}],"provenance":[{"source":"registry","first_seen":"2026-10-24T03:38:54.790703+00:00"}],"recent_probes":[{"fetched_at":"2026-10-24T03:38:54.790703+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":72,"live_responds":false}],"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-10-24T06:39:14.989693+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/screwtape.ai/evidence","dispute_url":"https://agenstry.com/agents/screwtape.ai/dispute"},"verification_history":[]}