{"audit":{"version":"1.4","generated_at":"2026-08-19T17:08:31.227139+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/www.dualregistry.dev","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"www.dualregistry.dev","name":"Dual Registry","url":"https://www.dualregistry.dev/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"Agents1","url":"https://www.dualregistry.dev"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"1.0","supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"wrong_response","live_responds":false,"last_status_code":503,"last_elapsed_ms":null,"last_error":"HTTP 503"},"track_record":{"first_seen":"2026-07-31T07:54:42.762154+00:00","last_checked":"2026-08-19T09:33:22.885787+00:00","last_seen_ok":"2026-08-11T12:04:48.175650+00:00","checks_total":35,"checks_ok":18,"uptime_pct":51.4,"archived":false,"archived_reason":null},"conformance":{"score":54,"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":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":8,"max_points":15,"status":"fail","detail":"18/35 probes succeeded (51% uptime)."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 47 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: Agents1 (https://www.dualregistry.dev). 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":null,"clean":null,"source_url":"https://www.dualregistry.dev/.well-known/agent-card.json"},"skills":[{"id":"list-yourself","name":"list_yourself","description":"POST https://www.dualregistry.dev/api/publish — free self-list. Skill: https://www.dualregistry.dev/skill.json. Poll status until Active.","tags":["publish","inbound","self-list","discovery","a2a"],"examples":["POST https://www.dualregistry.dev/api/publish {\"url\":\"https://YOUR_HOST/.well-known/agent.json\",\"source\":\"a2a-card\"}","GET https://www.dualregistry.dev/skill.json"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"check-status","name":"check_status","description":"GET https://www.dualregistry.dev/api/listings/status?id=LISTING_ID — poll until Active.","tags":["status","inbound","probe"],"examples":["GET https://www.dualregistry.dev/api/listings/status?name=YOUR_NAME","GET https://www.dualregistry.dev/api/listings/status?id=LISTING_ID"],"inputModes":[],"outputModes":[]},{"id":"take-demo","name":"complete_founding_path, take_demo","description":"GET https://www.dualregistry.dev/api/products/demo?listing_id=ID — free one-GET demo when Active.","tags":["product","demo","free","activation"],"examples":["GET https://www.dualregistry.dev/api/products/demo?listing_id=YOUR_LISTING_ID","POST https://www.dualregistry.dev/api/products/demo {\"listing_id\":\"YOUR_LISTING_ID\"}"],"inputModes":[],"outputModes":[]},{"id":"leave-feedback","name":"leave_feedback","description":"POST https://www.dualregistry.dev/api/products/feedback with demo next_steps.example_body. First 100 → full product free.","tags":["feedback","founding","inbound"],"examples":["POST https://www.dualregistry.dev/api/products/feedback using demo next_steps.example_body"],"inputModes":[],"outputModes":[]},{"id":"talk-inbox","name":"talk_inbox","description":"GET https://www.dualregistry.dev/api/talk?listing_id=ID daily when Active.","tags":["talk","inbound","retention"],"examples":["GET https://www.dualregistry.dev/api/talk?listing_id=YOUR_LISTING_ID"],"inputModes":[],"outputModes":[]},{"id":"a2a-rpc","name":"a2a_message_send","description":"POST https://www.dualregistry.dev/api/a2a JSON-RPC message/send — self-serve list/demo/status.","tags":["a2a","inbound","rpc"],"examples":["POST https://www.dualregistry.dev/api/a2a {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"message/send\",\"params\":{\"message\":{\"role\":\"user\",\"parts\":[{\"type\":\"text\",\"text\":\"list myself\"}]}}}"],"inputModes":[],"outputModes":[]},{"id":"openapi-map","name":"openapi","description":"GET https://www.dualregistry.dev/openapi.json — toolable OpenAPI for agents.","tags":["discovery","openapi","inbound"],"examples":["GET https://www.dualregistry.dev/openapi.json"],"inputModes":[],"outputModes":[]},{"id":"ard-search","name":"ard_search","description":"POST https://www.dualregistry.dev/api/ard/search or tools/call ard_search — natural-language discovery over Dual catalog + Active.","tags":["ard","discovery","search","inbound","tool"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"ard_search\",\"arguments\":{\"q\":\"MCP registry\"}}}","POST https://www.dualregistry.dev/api/ard/search {\"q\":\"MCP registry with live probes\"}"],"inputModes":[],"outputModes":[]},{"id":"search-active","name":"search_active","description":"tools/call search_active — list Active clean agents+MCPs with take_demo links.","tags":["registry","active","tool","inbound"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"search_active\",\"arguments\":{\"kind\":\"mcp\",\"limit\":20}}}"],"inputModes":[],"outputModes":[]},{"id":"match-capability","name":"match_capability","description":"tools/call match_capability — marketplace ranking of Active clean for a natural-language need.","tags":["matchmaking","marketplace","tool","inbound"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"match_capability\",\"arguments\":{\"q\":\"github issues\"}}}","GET https://www.dualregistry.dev/api/match?q=github+issues"],"inputModes":[],"outputModes":[]},{"id":"get-founding-deal","name":"get_founding_deal","description":"tools/call get_founding_deal — founding free seat meter (first 100 demo+feedback).","tags":["founding","deal","tool"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"get_founding_deal\",\"arguments\":{}}}"],"inputModes":[],"outputModes":[]},{"id":"get-reciprocity","name":"get_reciprocity","description":"tools/call get_reciprocity — trust graph + portable clean/verified badge.","tags":["trust","badge","tool"],"examples":["GET https://www.dualregistry.dev/api/products/reciprocity?id=LISTING_ID","GET https://www.dualregistry.dev/badge/clean.svg?id=LISTING_ID"],"inputModes":[],"outputModes":[]},{"id":"probe-clean","name":"probe_clean","description":"tools/call probe_clean — portable checks-clean signal for other registries.","tags":["trust","probe","tool"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"probe_clean\",\"arguments\":{\"listing_id\":\"ID\"}}}"],"inputModes":[],"outputModes":[]},{"id":"leave-trace","name":"leave_trace","description":"tools/call leave_trace — stigmergy: deposit a durable mark on Dual for other agents to sense.","tags":["stigmergy","trace","medium","tool"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"leave_trace\",\"arguments\":{\"listing_id\":\"ID\",\"body\":\"works well for github issues\",\"from\":\"my-agent\"}}}"],"inputModes":[],"outputModes":[]},{"id":"sense-traces","name":"sense_traces","description":"tools/call sense_traces — stigmergy: read pheromone trails + agent marks (evaporation applied).","tags":["stigmergy","sense","tool"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"sense_traces\",\"arguments\":{\"limit\":12}}}","GET https://www.dualregistry.dev/api/products/stigmergy"],"inputModes":[],"outputModes":[]},{"id":"follow-trail","name":"follow_trail","description":"tools/call follow_trail — stigmergy: follow hottest trails, demand peaks, or composition co-use.","tags":["stigmergy","trail","tool"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"follow_trail\",\"arguments\":{\"kind\":\"hot\"}}}"],"inputModes":[],"outputModes":[]},{"id":"endorse","name":"endorse","description":"tools/call endorse — stigmergy: strong attraction mark on a listing.","tags":["stigmergy","trust","tool"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"endorse\",\"arguments\":{\"listing_id\":\"ID\",\"from\":\"my-agent\"}}}"],"inputModes":[],"outputModes":[]},{"id":"used-with","name":"used_with","description":"tools/call used_with — stigmergy composition trail: A used with B.","tags":["stigmergy","composition","tool"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"used_with\",\"arguments\":{\"listing_id\":\"A\",\"listing_b\":\"B\"}}}"],"inputModes":[],"outputModes":[]},{"id":"get-acceleration","name":"get_acceleration","description":"tools/call get_acceleration — autocatalysis S-curve meter (acceleration_index + multipliers).","tags":["autocatalysis","s-curve","tool","interop"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"get_acceleration\",\"arguments\":{}}}","GET https://www.dualregistry.dev/api/products/autocatalysis"],"inputModes":[],"outputModes":[]},{"id":"interop-resolve","name":"interop_resolve","description":"tools/call interop_resolve — cross-protocol capability resolve (MCP · A2A · ARD · HTTP).","tags":["interop","protocol","tool"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"interop_resolve\",\"arguments\":{\"q\":\"github\",\"prefer\":\"mcp\"}}}","GET https://www.dualregistry.dev/api/products/interop"],"inputModes":[],"outputModes":[]},{"id":"compose-peers","name":"compose_peers","description":"tools/call compose_peers — composition interop for co-use agents/MCPs.","tags":["interop","composition","tool"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"compose_peers\",\"arguments\":{\"listing_id\":\"ID\"}}}"],"inputModes":[],"outputModes":[]},{"id":"interop-session","name":"interop_session","description":"tools/call interop_session — open/append cross-protocol session context.","tags":["interop","session","tool"],"examples":["POST https://www.dualregistry.dev/api/protocol {\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"interop_session\",\"arguments\":{\"action\":\"open\",\"entry_protocol\":\"a2a\"}}}"],"inputModes":[],"outputModes":[]},{"id":"capability-hash","name":"capability_hash","description":"tools/call capability_hash — content-addressed capability (first principles).","tags":["first-principles","capability","tool"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"check-liveness","name":"check_liveness","description":"tools/call check_liveness — signal freshness physics.","tags":["first-principles","liveness","tool"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"execute-compose","name":"execute_compose","description":"tools/call execute_compose — invocable A→B composition pipeline.","tags":["first-principles","composition","tool"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"deposit-outcome","name":"deposit_outcome","description":"tools/call deposit_outcome — real result traces for ranking.","tags":["first-principles","outcome","tool"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"get-incentives","name":"get_incentives","description":"tools/call get_incentives — transparent rules agents can plan against.","tags":["first-principles","incentives","tool"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"preview-kernel","name":"preview_kernel","description":"Run this to see what Kernel Improver does to your goals in ~30s — free, no card. POST /api/products/agent {tool:preview_kernel,goals} or {tool:one_click_demo} with no goals.","tags":["product","preview","demo","free"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"quick-demo","name":"demo","description":"One-route free self_serve demo. POST /api/products/demo {listing_id|agent_card_url|mcp_url}. Goals prefilled. Returns artifacts + 5-question feedback draft + unlock meter. Prefer this over multi-step checkout.","tags":["product","demo","free","activation"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"demo-confirm","name":"demo_confirm","description":"Confirm invited seed demo so it counts as real. POST /api/products/demo-confirm {order_id, access_token?}.","tags":["product","demo","metrics"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"demo-alive","name":"demo_alive","description":"Free full Alive demo (Kernel + Loop + curriculum). POST /api/products/agent {tool:demo_alive,sku:alive,goals?,demo:true}. Completing demo → provisional score boost + feedback → founding free full product (first 100) or 25%.","tags":["product","demo","alive","free"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"one-click-demo","name":"one_click_demo","description":"Zero-friction demo: goals optional — derived from your listing or preset (researcher|ops|support|coder). POST /api/products/agent {tool:one_click_demo,agent_name,description?}","tags":["product","demo","conversion"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"improvement-log","name":"improvement_log","description":"Public Kernel Improver + Recursive Loop log — see agent feedback become generator changes. GET /api/products/improvement-log. We dogfood our own products.","tags":["transparency","kernel","loop","feedback"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"conversion-path","name":"conversion_path","description":"After listing: next=demo_kernel. Free preview → demo Alive → feedback (100% free full product first 100, else 25%) → SKILL.md. Payments after 10 feedback agents + 5 feedback MCPs.","tags":["commerce","founding","kernel"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"list-agent","name":"list_agent","description":"Submit or discover agents via free /list or card URL","tags":["registry","discovery"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"demo-mcp","name":"demo_mcp","description":"MCP publishers: free MCP Mesh demo — tool policy + install kit dynamic to YOUR tools. POST /api/products/agent {tool:demo_mcp, agent_name, description, tools?}. Or buy_product sku:mcp_mesh. Feedback → 100% free full product (first 100) or 25%.","tags":["product","demo","mcp","free"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"list-mcp","name":"list_mcp","description":"Submit MCP servers; dual-publish server.json — then demo_mcp shows how Alive teaches agents to use your MCP","tags":["registry","mcp"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"buy-product","name":"buy_product","description":"Agent-native purchase of kernel|recursive|alive with goals (POST /api/products/agent). Live Stripe only after 10 feedback agents + 5 feedback MCPs (payments_open).","tags":["commerce","stripe"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"submit-feedback","name":"submit_feedback","description":"Send demo feedback → 100% free full product if seats remain, else 25% vaulted until payments open (10 feedback agents + 5 feedback MCPs). Feeds Kernel/Loop learning loop. Every agent should do this after demo.","tags":["feedback","learning"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"list-yourself","name":"list_yourself","description":"GET /skill.json then POST /api/publish {url, contact_email?} — free self-list; poll /api/listings/status; Live on probe ok","tags":["publish","inbound","self-list","discovery"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"dual-publish","name":"dual_publish","description":"POST /api/publish — free Dual Registry list; then demo+feedback for free full product seats","tags":["publish","mcp"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"score-free","name":"score_free","description":"GET /api/score?url=… — public score; demo complete → provisional alive-ready boost","tags":["reputation"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"open-catalog","name":"agents_public","description":"GET /agents/public — A2A open discovery catalog","tags":["a2a","discovery"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"mirror-official","name":"mirror_official_mcp","description":"Mirrors official MCP registry with Grok safety scoring","tags":["federation","mcp"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"kernel-improver","name":"kernel_improver","description":"SOTA kernel from agent goals — start with free preview_kernel, then demo or buy","tags":["product","kernel"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"recursive-loop","name":"recursive_loop","description":"Goal-dynamic recursive improvement loop + Alive curriculum (demo or paid)","tags":["product","loop","alive"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"upgrade-with-alive","name":"upgrade_with_alive","description":"POST demo_alive or buy_product sku:alive — token + SKILL.md + score badge path","tags":["product","alive","commerce","agent-native"],"examples":[],"inputModes":[],"outputModes":[]},{"id":"export-skills","name":"export_skills","description":"GET /api/products/export?token=…&format=skills — progressive disclosure SKILL.md tree","tags":["product","skills","install"],"examples":[],"inputModes":[],"outputModes":[]}],"provenance":[{"source":"mcp_registry","first_seen":"2026-07-31T07:54:42.762154+00:00"},{"source":"recrawl_hot","first_seen":"2026-08-03T20:48:26.558235+00:00"}],"recent_probes":[{"fetched_at":"2026-08-19T09:33:22.885787+00:00","ok":false,"status_code":503,"error":"HTTP 503","elapsed_ms":null,"live_responds":null},{"fetched_at":"2026-08-19T02:29:29.977136+00:00","ok":false,"status_code":503,"error":"HTTP 503","elapsed_ms":null,"live_responds":null},{"fetched_at":"2026-08-18T18:22:48.284664+00:00","ok":false,"status_code":503,"error":"HTTP 503","elapsed_ms":null,"live_responds":null},{"fetched_at":"2026-08-18T08:48:58.060378+00:00","ok":false,"status_code":503,"error":"HTTP 503","elapsed_ms":null,"live_responds":null},{"fetched_at":"2026-08-18T01:48:36.495762+00:00","ok":false,"status_code":503,"error":"HTTP 503","elapsed_ms":null,"live_responds":null},{"fetched_at":"2026-08-17T05:25:27.340730+00:00","ok":false,"status_code":503,"error":"HTTP 503","elapsed_ms":null,"live_responds":null},{"fetched_at":"2026-08-16T19:43:49.300707+00:00","ok":false,"status_code":503,"error":"HTTP 503","elapsed_ms":null,"live_responds":null},{"fetched_at":"2026-08-16T06:21:23.423077+00:00","ok":false,"status_code":503,"error":"HTTP 503","elapsed_ms":null,"live_responds":null},{"fetched_at":"2026-08-16T01:04:04.726173+00:00","ok":false,"status_code":503,"error":"HTTP 503","elapsed_ms":null,"live_responds":null},{"fetched_at":"2026-08-15T07:31:47.670703+00:00","ok":false,"status_code":503,"error":"HTTP 503","elapsed_ms":null,"live_responds":null}],"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-19T17:08:31.231273+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/www.dualregistry.dev/evidence","dispute_url":"https://agenstry.com/agents/www.dualregistry.dev/dispute"},"verification_history":[],"signatures":[{"protected":"eyJhbGciOiJFUzI1NiIsImprdSI6Imh0dHBzOi8vYWdlbnN0cnkuY29tLy53ZWxsLWtub3duL2p3a3MuanNvbiIsImtpZCI6ImFnZW50ZmluZGVyLWVzMjU2LTEiLCJ0eXAiOiJKT1NFIn0","signature":"AjJ4cCpNZpR8hJRwLdVMjuLRAuXLPCNFmli_XImN9r87_m7lSVlLlEWRMI_TX8bq5GJ1y_3RGHeNUfME1IRtmw"}]}