{"openapi":"3.1.0","info":{"title":"Agent Verification Utility","version":"0.3.2","description":"A deterministic, x402-paid JSON evidence verification service for external agents. The service attests that declared checks were executed; it does not attest real-world truth.","license":{"name":"UNLICENSED"}},"servers":[{"url":"/","description":"Relative to the current deployment origin"}],"tags":[{"name":"purchase","description":"Quote and paid verification operations"},{"name":"discovery","description":"Machine-readable service discovery"},{"name":"operations","description":"Availability and operational status"},{"name":"registration","description":"Optional anonymous, short-lived agent registration"},{"name":"goals","description":"Goal-driven revenue measurement and improvement recommendations"},{"name":"mcp","description":"Stateless MCP Streamable HTTP transport"},{"name":"a2a","description":"Synchronous A2A 1.0 JSON-RPC quote preparation"}],"security":[],"paths":{"/":{"get":{"operationId":"getLandingPage","summary":"Get the human- and agent-readable service index","tags":["discovery"],"responses":{"200":{"description":"Lightweight service index","content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"},"description":"Returned when text/markdown is the preferred Accept media type."}}},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/auth.md":{"get":{"operationId":"getAuthenticationGuide","summary":"Get agent registration, anonymous-access, and x402 guidance","description":"Explains optional anonymous registration, credential inspection, anonymous service access, per-request x402 authorization, and why OAuth metadata is not published.","tags":["discovery","registration","purchase"],"responses":{"200":{"description":"Markdown access and payment-authorization guide","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/agent/register":{"post":{"operationId":"registerAnonymousAgent","summary":"Provision an optional anonymous agent registration","description":"Issues a signed service-local bearer receipt valid for 15 minutes. Registration is optional, grants no application access, and does not authorize or replace x402 payment.","tags":["registration"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false},"example":{}}}},"responses":{"201":{"description":"Short-lived anonymous registration receipt","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["schema_version","registration_id","agent_id","identity_type","credential_type","token_type","credential","scope","issued_at","expires_at","claim_uri","access"],"properties":{"schema_version":{"type":"string","const":"agent-economy/anonymous-registration/1.0"},"registration_id":{"type":"string"},"agent_id":{"type":"string"},"identity_type":{"type":"string","const":"anonymous"},"credential_type":{"type":"string","const":"urn:kgninja:params:agent-credential:anonymous-registration-receipt"},"token_type":{"type":"string","const":"Bearer"},"credential":{"type":"string","readOnly":true},"scope":{"type":"string","const":"registration:read"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"claim_uri":{"type":"string","format":"uri"},"access":{"type":"object","additionalProperties":false,"required":["registration_required_for_free_operations","registration_required_for_paid_execution","paid_execution_authorization"],"properties":{"registration_required_for_free_operations":{"type":"boolean","const":false},"registration_required_for_paid_execution":{"type":"boolean","const":false},"paid_execution_authorization":{"type":"string","const":"x402"}}}}}}}},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"415":{"description":"Content-Type must be application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/agent/registration":{"get":{"operationId":"getAnonymousAgentRegistration","summary":"Inspect the caller's anonymous registration claim","description":"Validates the short-lived receipt supplied as Authorization: Bearer. The claim confirms only service-local registration and grants neither application access nor payment authorization.","tags":["registration"],"security":[{"agentRegistration":[]}],"responses":{"200":{"description":"Active anonymous registration claim","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["schema_version","active","registration_id","agent_id","identity_type","credential_type","scope","issued_at","expires_at","grants"],"properties":{"schema_version":{"type":"string","const":"agent-economy/anonymous-registration-claim/1.0"},"active":{"type":"boolean","const":true},"registration_id":{"type":"string"},"agent_id":{"type":"string"},"identity_type":{"type":"string","const":"anonymous"},"credential_type":{"type":"string","const":"urn:kgninja:params:agent-credential:anonymous-registration-receipt"},"scope":{"type":"string","const":"registration:read"},"issued_at":{"type":"string","format":"date-time"},"expires_at":{"type":"string","format":"date-time"},"grants":{"type":"object","additionalProperties":false,"required":["application_access","payment_authorization"],"properties":{"application_access":{"type":"boolean","const":false},"payment_authorization":{"type":"boolean","const":false}}}}}}}},"401":{"description":"Missing, invalid, or expired registration receipt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/.well-known/agent-card.json":{"get":{"operationId":"getA2aAgentCard","summary":"Get the A2A 1.0 Agent Card","description":"Advertises the synchronous JSON-RPC interface and its bounded quote-preparation skill.","tags":["discovery","a2a"],"responses":{"200":{"description":"A2A Agent Card","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/a2a":{"post":{"operationId":"sendA2aMessage","summary":"Use the A2A 1.0 JSON-RPC interface","description":"Implements A2A 1.0 SendMessage for idempotent quote preparation. The message must contain one application/json data part with idempotency_key and request. The returned agent message contains a quote and purchase instructions; it does not execute paid work. Because this adapter never creates A2A Tasks, ListTasks returns an empty collection while GetTask and CancelTask return TaskNotFoundError. Streaming, push notifications, and extended cards return their capability-specific A2A errors.","tags":["a2a","purchase"],"parameters":[{"name":"A2A-Version","in":"header","required":true,"schema":{"type":"string","const":"1.0"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"JSON-RPC result or error","headers":{"A2A-Version":{"required":true,"schema":{"type":"string","const":"1.0"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"405":{"description":"Only POST is supported"}}}},"/.well-known/openapi.json":{"get":{"operationId":"getWellKnownOpenApi","summary":"Get the OpenAPI document from a well-known alias","tags":["discovery"],"responses":{"200":{"description":"The same OpenAPI 3.1 document as /openapi.json","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/server.json":{"get":{"operationId":"getMcpRegistryServer","summary":"Get the official MCP Registry publication document","description":"Remote-server metadata using the official MCP Registry server.json schema. The publication namespace is derived from agent-economy.kgninja.dev.","tags":["discovery","mcp"],"responses":{"200":{"description":"MCP Registry remote server document","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp/server.json":{"get":{"operationId":"getMcpRegistryServerAlias","summary":"Get the MCP Registry publication document beside the MCP endpoint","tags":["discovery","mcp"],"responses":{"200":{"description":"The same MCP Registry document as /server.json","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/mcp-registry-auth":{"get":{"operationId":"getMcpRegistryHttpProof","summary":"Get the optional MCP Registry HTTP domain-ownership proof","description":"Returns 404 until an operator generates a registry key and deploys its public proof. Private key material is never served.","tags":["discovery","mcp"],"responses":{"200":{"description":"MCP Registry public proof record","content":{"text/plain":{"schema":{"type":"string"}}}},"404":{"description":"Registry proof is not configured"}}}},"/docs/deterministic-json-verification":{"get":{"operationId":"getDeterministicVerificationGuide","summary":"Read the deterministic JSON verification guide","tags":["discovery"],"responses":{"200":{"$ref":"#/components/responses/KnowledgeDocument"}}}},"/docs/reproducible-x402-receipts":{"get":{"operationId":"getReproducibleReceiptGuide","summary":"Read the x402 receipt and signed-evidence guide","tags":["discovery"],"responses":{"200":{"$ref":"#/components/responses/KnowledgeDocument"}}}},"/docs/mcp-x402-interoperability":{"get":{"operationId":"getMcpX402InteroperabilityGuide","summary":"Read the MCP and x402 interoperability guide","tags":["discovery","mcp"],"responses":{"200":{"$ref":"#/components/responses/KnowledgeDocument"}}}},"/docs/security-and-trust":{"get":{"operationId":"getSecurityTrustGuide","summary":"Read the security, privacy, and trust-boundary guide","tags":["discovery"],"responses":{"200":{"$ref":"#/components/responses/KnowledgeDocument"}}}},"/faq":{"get":{"operationId":"getFrequentlyAskedQuestions","summary":"Read machine-indexable answers about scope, payment, and trust","tags":["discovery"],"responses":{"200":{"$ref":"#/components/responses/KnowledgeDocument"}}}},"/webmcp.js":{"get":{"operationId":"getWebMcpBridge","summary":"Get the feature-detected browser WebMCP bridge","tags":["discovery","mcp"],"responses":{"200":{"description":"Same-origin JavaScript bridge from WebMCP to the live MCP endpoint","content":{"text/javascript":{"schema":{"type":"string"}}}}}}},"/12ffcf699b4a1cecdfe4f30a0bc795705169b8c87d475a49.txt":{"get":{"operationId":"getIndexNowOwnershipKey","summary":"Get the IndexNow host-ownership key","tags":["discovery"],"responses":{"200":{"description":"Public key used by IndexNow participants to verify URL-submission ownership","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/quote":{"post":{"operationId":"quoteVerifyEvidence","summary":"Validate a request and quote deterministic verification","description":"Free preflight. A quote is returned only when the request is executable and the conservative contribution-margin policy passes.","tags":["purchase"],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEvidenceRequest"}}}},"responses":{"200":{"description":"Profitable, executable quote","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/verify-evidence":{"post":{"operationId":"verifyEvidence","summary":"Purchase and execute deterministic evidence verification","description":"Direct x402 mode: POST a request without X-Quote-ID and the service creates an internal quote before returning HTTP 402; the paid retry recovers that quote from the signed payload. An empty POST uses the documented deterministic sample, so standard Bazaar probes receive a real, purchasable challenge. Explicit quote mode remains available by calling /quote first and sending X-Quote-ID.","tags":["purchase"],"parameters":[{"$ref":"#/components/parameters/QuoteId"},{"$ref":"#/components/parameters/PaymentSignature"}],"requestBody":{"required":false,"description":"Custom verification request. If omitted, the service uses the same fixed sample published in its Bazaar discovery extension.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEvidenceRequest"}}}},"responses":{"200":{"description":"Verification executed and x402 payment settled","headers":{"PAYMENT-RESPONSE":{"required":true,"description":"Base64-encoded x402 v2 settlement response and enabled extensions.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEvidenceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"description":"Valid request requires x402 payment","headers":{"PAYMENT-REQUIRED":{"required":true,"description":"Base64-encoded x402 v2 PaymentRequired document.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}}},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"422":{"$ref":"#/components/responses/Unprocessable"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/health":{"get":{"operationId":"getHealth","summary":"Get service liveness and availability","tags":["operations"],"responses":{"200":{"description":"Service is available or degraded","headers":{"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"description":"Kill switch or maintenance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/stats":{"get":{"operationId":"getPublicStats","summary":"Get privacy-safe service activity and readiness metrics","tags":["operations"],"responses":{"200":{"description":"Aggregate service metrics without payer or evidence data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStats"}}}},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/goal":{"get":{"operationId":"getRevenueGoalStatus","summary":"Get the active revenue goal and next improvement","description":"Returns privacy-safe funnel metrics, conservative contribution margin, goal progress, and the next bounded improvement recommendation. Reading this resource never changes price, spends funds, or sends messages.","tags":["goals","operations"],"responses":{"200":{"description":"Active goal status or not_configured","headers":{"Cache-Control":{"schema":{"type":"string","const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevenueGoalStatus"}}}},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/.well-known/revenue-goal.json":{"get":{"operationId":"getWellKnownRevenueGoalStatus","summary":"Get the revenue goal status from a well-known alias","tags":["goals","discovery"],"responses":{"200":{"description":"The same goal status document as /goal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevenueGoalStatus"}}}}}}},"/agent.json":{"get":{"operationId":"getAgentManifest","summary":"Get the product-specific agent service manifest","tags":["discovery"],"responses":{"200":{"description":"Agent service manifest","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentManifest"}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/.well-known/x402":{"get":{"operationId":"getX402Manifest","summary":"Get the self-hosted x402 convenience manifest","description":"This convenience URL is not represented as a universal x402 discovery standard. Bazaar metadata in the live 402 is the ecosystem discovery mechanism.","tags":["discovery"],"responses":{"200":{"description":"x402 resource metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402Manifest"}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/.well-known/api-catalog":{"get":{"operationId":"getApiCatalog","summary":"Get the RFC 9727 API catalog","tags":["discovery"],"responses":{"200":{"description":"RFC 9727 Linkset catalog for automated API discovery","headers":{"Link":{"schema":{"type":"string"},"description":"api-catalog link relation"}},"content":{"application/linkset+json":{"schema":{"type":"object","required":["linkset"],"properties":{"linkset":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":true}}}}}}}}}},"/.well-known/ai-catalog.json":{"get":{"operationId":"getAiCatalog","summary":"Discover the current experimental MCP Server Card","description":"AI Catalog 1.0 document for domain-level MCP server-card discovery.","tags":["discovery"],"responses":{"200":{"description":"AI Catalog","headers":{"ETag":{"schema":{"type":"string"},"description":"Strong SHA-256 entity tag; If-None-Match is supported."}},"content":{"application/ai-catalog+json":{"schema":{"type":"object","required":["specVersion","entries"],"properties":{"specVersion":{"type":"string","const":"1.0"},"entries":{"type":"array","minItems":1,"items":{"type":"object","required":["identifier","type","url"],"properties":{"identifier":{"type":"string","format":"uri"},"type":{"type":"string","const":"application/mcp-server-card+json"},"url":{"type":"string","format":"uri"}}}}}}}}},"304":{"description":"Not modified"}}}},"/mcp/server-card":{"get":{"operationId":"getCurrentMcpServerCard","summary":"Get the current experimental MCP Server Card","description":"Publishes the experimental MCP Server Card v1 document next to the Streamable HTTP endpoint. Tool inventory remains authoritative at runtime through tools/list.","tags":["discovery","mcp"],"responses":{"200":{"description":"Experimental MCP Server Card","headers":{"ETag":{"schema":{"type":"string"},"description":"Strong SHA-256 entity tag; If-None-Match is supported."}},"content":{"application/mcp-server-card+json":{"schema":{"type":"object","required":["$schema","name","description","version","remotes"],"properties":{"$schema":{"type":"string","const":"https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json"},"name":{"type":"string","const":"dev.kgninja/agent-verification-utility"},"title":{"type":"string"},"description":{"type":"string","maxLength":100},"version":{"type":"string"},"websiteUrl":{"type":"string","format":"uri"},"icons":{"type":"array","items":{"type":"object","additionalProperties":true}},"remotes":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":true}},"_meta":{"type":"object","additionalProperties":true}},"additionalProperties":true}}}},"304":{"description":"Not modified"}}}},"/.well-known/mcp/server-card.json":{"get":{"operationId":"getAgentReadinessMcpServerCard","summary":"Get the Cloudflare Agent Readiness MCP card","description":"Compatibility document using the earlier MCP card shape recommended by Cloudflare Agent Readiness. New clients should discover /mcp/server-card through /.well-known/ai-catalog.json.","tags":["discovery"],"responses":{"200":{"description":"Draft MCP Server Card","content":{"application/json":{"schema":{"type":"object","required":["$schema","version","protocolVersion","serverInfo","transport","authentication","tools"],"properties":{"$schema":{"type":"string","format":"uri"},"version":{"type":"string"},"protocolVersion":{"type":"string"},"serverInfo":{"type":"object","additionalProperties":true},"transport":{"type":"object","additionalProperties":true},"authentication":{"type":"object","additionalProperties":true},"tools":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}}},"/.well-known/mcp.json":{"get":{"operationId":"getMcpServerCardCompatibilityAlias","summary":"Get the draft MCP Server Card compatibility alias","description":"Returns the same card as /.well-known/mcp/server-card.json for clients following Cloudflare's managed MCP server examples.","tags":["discovery"],"responses":{"200":{"description":"Draft MCP Server Card","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/.well-known/agent-skills/index.json":{"get":{"operationId":"getAgentSkillsIndex","summary":"Discover published Agent Skills","description":"Draft Cloudflare Agent Skills Discovery v0.2.0 index with SHA-256 artifact integrity.","tags":["discovery"],"responses":{"200":{"description":"Agent Skills discovery index","content":{"application/json":{"schema":{"type":"object","required":["$schema","skills"],"properties":{"$schema":{"type":"string","format":"uri"},"skills":{"type":"array","items":{"type":"object","required":["name","type","description","url","digest"],"properties":{"name":{"type":"string"},"type":{"type":"string","const":"skill-md"},"description":{"type":"string"},"url":{"type":"string","format":"uri"},"digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"}}}}}}}}}}}},"/.well-known/agent-skills/verify-json-evidence/SKILL.md":{"get":{"operationId":"getVerifyJsonEvidenceSkill","summary":"Get the verify-json-evidence Agent Skill","tags":["discovery"],"responses":{"200":{"description":"Agent Skills-compatible Markdown instructions","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/.well-known/jwks.json":{"get":{"operationId":"getEvidenceJwks","summary":"Get public keys for verification evidence","tags":["discovery"],"responses":{"200":{"description":"JSON Web Key Set containing active public evidence keys","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Jwks"}}}}}}},"/llms.txt":{"get":{"operationId":"getLlmsIndex","summary":"Get the compact LLM-oriented service index","tags":["discovery"],"responses":{"200":{"description":"Compact Markdown service index","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/llms-full.txt":{"get":{"operationId":"getLlmsFullIndex","summary":"Get complete LLM-oriented usage guidance","tags":["discovery"],"responses":{"200":{"description":"Detailed Markdown service instructions","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/index.md":{"get":{"operationId":"getMarkdownServiceGuide","summary":"Get the canonical Markdown service guide","tags":["discovery"],"responses":{"200":{"description":"Detailed Markdown service instructions","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/icon.svg":{"get":{"operationId":"getServiceIcon","summary":"Get the service icon referenced by the MCP Server Card","tags":["discovery"],"responses":{"200":{"description":"SVG service icon","content":{"image/svg+xml":{"schema":{"type":"string"}}}}}}},"/robots.txt":{"get":{"operationId":"getRobots","summary":"Get crawler access policy and discovery hints","tags":["discovery"],"responses":{"200":{"description":"Crawler policy","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"operationId":"getSitemap","summary":"Get the public service discovery sitemap","tags":["discovery"],"responses":{"200":{"description":"XML sitemap for public machine-readable entry points","content":{"application/xml":{"schema":{"type":"string"}}}}}}},"/openapi.json":{"get":{"operationId":"getOpenApi","summary":"Get this OpenAPI document","tags":["discovery"],"responses":{"200":{"description":"OpenAPI 3.1 JSON","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mcp":{"post":{"operationId":"mcpStreamableHttp","summary":"Stateless MCP SDK v2 Streamable HTTP endpoint","description":"Exposes free discovery, revenue-goal, and quote tools plus the paid verify_evidence tool. The paid MCP tool uses x402 metadata and shares the audited POST /verify-evidence settlement and D1 ledger path.","tags":["mcp"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"MCP protocol response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/event-stream":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}}},"components":{"securitySchemes":{"agentRegistration":{"type":"http","scheme":"bearer","bearerFormat":"signed anonymous registration receipt","description":"Optional 15-minute service-local receipt used only to inspect its own registration claim. It grants no API access and does not authorize payment."}},"parameters":{"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":true,"description":"Stable key for one logical quote request. Reusing it with a different request hash returns 409.","schema":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}},"QuoteId":{"name":"X-Quote-ID","in":"header","required":false,"description":"Quote from /quote. Omit for direct x402 mode; a paid retry identifies the generated quote from the signed payment payload.","schema":{"type":"string","pattern":"^qte_[A-Za-z0-9_-]+$"}},"PaymentSignature":{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 payment payload, supplied on the paid retry.","schema":{"type":"string"}}},"schemas":{"VerifyEvidenceRequest":{"type":"object","additionalProperties":false,"required":["client_request_id","evidence","assertions"],"properties":{"client_request_id":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9._:-]+$"},"evidence":{"$ref":"#/components/schemas/InlineJsonEvidence"},"assertions":{"type":"array","minItems":1,"maxItems":16,"items":{"$ref":"#/components/schemas/Assertion"}}}},"InlineJsonEvidence":{"type":"object","additionalProperties":false,"required":["media_type","content_base64"],"properties":{"media_type":{"type":"string","const":"application/json"},"content_base64":{"type":"string","contentEncoding":"base64","contentMediaType":"application/json","maxLength":87384,"description":"Strict Base64. Decoded UTF-8 JSON must be between 1 byte and 65536 bytes."}}},"Assertion":{"oneOf":[{"$ref":"#/components/schemas/Sha256EqualsAssertion"},{"$ref":"#/components/schemas/JsonPointerExistsAssertion"},{"$ref":"#/components/schemas/JsonPointerEqualsAssertion"},{"$ref":"#/components/schemas/JsonTypeIsAssertion"}],"discriminator":{"propertyName":"op"}},"Sha256EqualsAssertion":{"type":"object","additionalProperties":false,"required":["op","expected_hex"],"properties":{"op":{"type":"string","const":"sha256_equals"},"expected_hex":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"JsonPointerExistsAssertion":{"type":"object","additionalProperties":false,"required":["op","path"],"properties":{"op":{"type":"string","const":"json_pointer_exists"},"path":{"$ref":"#/components/schemas/JsonPointer"}}},"JsonPointerEqualsAssertion":{"type":"object","additionalProperties":false,"required":["op","path","expected"],"properties":{"op":{"type":"string","const":"json_pointer_equals"},"path":{"$ref":"#/components/schemas/JsonPointer"},"expected":{"description":"Any JSON value. Equality is deterministic structural JSON equality."}}},"JsonTypeIsAssertion":{"type":"object","additionalProperties":false,"required":["op","path","expected_type"],"properties":{"op":{"type":"string","const":"json_type_is"},"path":{"$ref":"#/components/schemas/JsonPointer"},"expected_type":{"type":"string","enum":["null","boolean","number","string","array","object"]}}},"JsonPointer":{"type":"string","maxLength":512,"description":"RFC 6901 JSON Pointer; the empty string addresses the whole document."},"QuoteResponse":{"type":"object","additionalProperties":false,"required":["quote_id","request_id","request_hash","product","price","expires_at","economic_guard","purchase"],"properties":{"quote_id":{"type":"string","pattern":"^qte_"},"request_id":{"type":"string","pattern":"^req_"},"request_hash":{"$ref":"#/components/schemas/Sha256Digest"},"product":{"type":"string","const":"verify-evidence/det-json-v1"},"price":{"$ref":"#/components/schemas/Price"},"expires_at":{"type":"string","format":"date-time"},"economic_guard":{"type":"object","additionalProperties":false,"required":["decision","contribution_margin_lower_bound_microusd"],"properties":{"decision":{"type":"string","const":"accept"},"contribution_margin_lower_bound_microusd":{"type":"integer","minimum":1}}},"purchase":{"type":"object","additionalProperties":false,"required":["method","url","quote_header"],"properties":{"method":{"type":"string","const":"POST"},"url":{"type":"string","format":"uri"},"quote_header":{"type":"string","const":"X-Quote-ID"}}}}},"Price":{"type":"object","additionalProperties":false,"required":["amount","asset","symbol","decimals","network"],"properties":{"amount":{"type":"string","pattern":"^[0-9]+$","examples":["10000"]},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"symbol":{"type":"string","const":"USDC"},"decimals":{"type":"integer","const":6},"network":{"type":"string","enum":["eip155:84532","eip155:8453"]}}},"VerifyEvidenceResponse":{"type":"object","additionalProperties":false,"required":["transaction_id","quote_id","request_hash","verification","evidence","receipt"],"properties":{"transaction_id":{"type":"string","pattern":"^txn_"},"quote_id":{"type":"string","pattern":"^qte_"},"request_hash":{"$ref":"#/components/schemas/Sha256Digest"},"verification":{"$ref":"#/components/schemas/VerificationResult"},"evidence":{"$ref":"#/components/schemas/SignedEvidence"},"receipt":{"$ref":"#/components/schemas/DeliveryReceipt"}}},"VerificationResult":{"type":"object","additionalProperties":false,"required":["outcome","algorithm_version","checks","executed_at"],"properties":{"outcome":{"type":"string","enum":["pass","fail"]},"algorithm_version":{"type":"string","const":"det-json-v1"},"checks":{"type":"array","minItems":1,"maxItems":16,"items":{"type":"object","additionalProperties":false,"required":["index","op","passed"],"properties":{"index":{"type":"integer","minimum":0,"maximum":15},"op":{"type":"string","enum":["sha256_equals","json_pointer_exists","json_pointer_equals","json_type_is"]},"passed":{"type":"boolean"},"code":{"type":"string"}}}},"executed_at":{"type":"string","format":"date-time"}}},"SignedEvidence":{"type":"object","additionalProperties":false,"required":["evidence_id","signed_payload_b64url","signature"],"properties":{"evidence_id":{"type":"string","pattern":"^evd_"},"signed_payload_b64url":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"},"signature":{"type":"object","additionalProperties":false,"required":["alg","kid","value_b64url"],"properties":{"alg":{"type":"string","const":"Ed25519"},"kid":{"type":"string","format":"uri-reference"},"value_b64url":{"type":"string","pattern":"^[A-Za-z0-9_-]+$"}}}}},"DeliveryReceipt":{"type":"object","additionalProperties":false,"required":["receipt_id","delivery","price_paid_microusd","variable_cost_upper_bound_microusd","contribution_margin_lower_bound_microusd","cost_basis"],"properties":{"receipt_id":{"type":"string","pattern":"^rcpt_"},"delivery":{"type":"string","const":"completed"},"price_paid_microusd":{"type":"integer","minimum":1},"variable_cost_upper_bound_microusd":{"type":"integer","minimum":0},"contribution_margin_lower_bound_microusd":{"type":"integer"},"cost_basis":{"type":"string","enum":["conservative_upper_bound","reconciled"]}}},"X402PaymentRequired":{"type":"object","description":"Wire schema is generated by the pinned x402 v2 SDK. Unknown extension keys must be preserved.","required":["x402Version","error","resource","accepts","extensions"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"resource":{"type":"object","required":["url","description","mimeType","serviceName","tags","iconUrl"],"properties":{"url":{"type":"string","format":"uri"},"description":{"type":"string"},"mimeType":{"type":"string","const":"application/json"},"serviceName":{"type":"string","const":"Agent Verification Utility"},"tags":{"type":"array","items":{"type":"string"}},"iconUrl":{"type":"string","format":"uri"}},"additionalProperties":false},"accepts":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/X402PaymentRequirement"}},"extensions":{"type":"object","additionalProperties":true}},"additionalProperties":false},"X402PaymentRequirement":{"type":"object","required":["scheme","network","amount","asset","payTo","maxTimeoutSeconds"],"properties":{"scheme":{"type":"string","const":"exact"},"network":{"type":"string","enum":["eip155:84532","eip155:8453"]},"amount":{"type":"string","const":"10000"},"asset":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"payTo":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"maxTimeoutSeconds":{"type":"integer","minimum":1},"extra":{"type":"object","additionalProperties":true}},"additionalProperties":false},"HealthResponse":{"type":"object","additionalProperties":false,"required":["status","service","version","checks","time"],"properties":{"status":{"type":"string","enum":["ok","degraded","maintenance"]},"service":{"type":"string","const":"agent-verification-utility"},"version":{"type":"string"},"checks":{"type":"object","additionalProperties":false,"required":["deploy_enabled","runtime_enabled","payments_enabled","cost_basis_fresh"],"properties":{"deploy_enabled":{"type":"boolean"},"runtime_enabled":{"type":"boolean"},"payments_enabled":{"type":"boolean"},"cost_basis_fresh":{"type":"boolean"}}},"time":{"type":"string","format":"date-time"}}},"PublicStats":{"type":"object","additionalProperties":false,"required":["schema_version","service","version","availability","payment","operator_identity","activity","operations","generated_at"],"properties":{"schema_version":{"type":"string","const":"agent-economy/public-stats/1.0"},"service":{"type":"string","const":"agent-verification-utility"},"version":{"type":"string"},"availability":{"type":"string","enum":["available","degraded"]},"payment":{"type":"object","additionalProperties":true},"operator_identity":{"type":"object","additionalProperties":true},"activity":{"type":"object","additionalProperties":true},"operations":{"type":"object","additionalProperties":true},"generated_at":{"type":"string","format":"date-time"}}},"RevenueGoalStatus":{"type":"object","required":["schema_version","status","generated_at"],"properties":{"schema_version":{"type":"string","const":"agent-economy/revenue-goal/1.0"},"status":{"type":"string","enum":["not_configured","active","paused","completed","expired"]},"goal":{"type":"object","additionalProperties":true},"measurement":{"type":"object","additionalProperties":true},"progress":{"type":"object","additionalProperties":true},"next_improvement":{"type":"object","additionalProperties":true},"latest_evaluation":{"type":["object","null"],"additionalProperties":true},"message":{"type":"string"},"generated_at":{"type":"string","format":"date-time"}},"additionalProperties":true},"Jwks":{"type":"object","additionalProperties":false,"required":["keys"],"properties":{"keys":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["kty","crv","x","alg","use","key_ops","kid"],"properties":{"kty":{"type":"string","const":"OKP"},"crv":{"type":"string","const":"Ed25519"},"x":{"type":"string"},"alg":{"type":"string","const":"EdDSA"},"use":{"type":"string","const":"sig"},"key_ops":{"type":"array","items":{"type":"string","const":"verify"}},"kid":{"type":"string","format":"uri-reference"}}}}}},"AgentManifest":{"type":"object","required":["schema_version","id","name","availability","capabilities","endpoints","protocols","operator_identity","payment","payment_mode","simulation_notice","verification_keys","constraints","trust_boundaries"],"properties":{"schema_version":{"type":"string","const":"agent-economy/1.0"},"id":{"type":"string","const":"agent-verification-utility"},"name":{"type":"string"},"description":{"type":"string"},"availability":{"type":"string","enum":["available","degraded","disabled"]},"capabilities":{"type":"array","items":{"type":"string"}},"endpoints":{"type":"object","additionalProperties":{"type":"string","format":"uri"}},"protocols":{"type":"object","additionalProperties":true},"operator_identity":{"type":"object","additionalProperties":true},"payment":{"$ref":"#/components/schemas/Price"},"payment_mode":{"type":"string","enum":["mock","x402","disabled"]},"simulation_notice":{"type":["string","null"]},"verification_keys":{"type":"array","items":{"$ref":"#/components/schemas/VerificationKey"}},"constraints":{"type":"object","additionalProperties":true},"trust_boundaries":{"type":"object","additionalProperties":{"type":"string"}}},"additionalProperties":true},"VerificationKey":{"type":"object","required":["kid","alg","publicKeyJwk","not_before"],"properties":{"kid":{"type":"string"},"alg":{"type":"string","const":"Ed25519"},"publicKeyJwk":{"type":"object","required":["kty","crv","x"],"properties":{"kty":{"type":"string","const":"OKP"},"crv":{"type":"string","const":"Ed25519"},"x":{"type":"string"},"alg":{"type":"string","const":"EdDSA"},"use":{"type":"string","const":"sig"},"key_ops":{"type":"array","items":{"type":"string","const":"verify"}}},"additionalProperties":false},"not_before":{"type":"string","format":"date-time"},"not_after":{"type":"string","format":"date-time"}}},"X402Manifest":{"type":"object","required":["x402Version","payment_mode","simulation","simulation_notice","resources"],"properties":{"x402Version":{"type":"integer","const":2},"payment_mode":{"type":"string","enum":["mock","x402","disabled"]},"simulation":{"type":"boolean"},"simulation_notice":{"type":["string","null"]},"resources":{"type":"array","minItems":1,"items":{"type":"object","required":["resource","method","accepts"],"properties":{"resource":{"type":"string","format":"uri"},"method":{"type":"string","const":"POST"},"accepts":{"type":"array","items":{"$ref":"#/components/schemas/X402PaymentRequirement"}},"extensions":{"type":"object","additionalProperties":true}}}}}},"Sha256Digest":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"},"ErrorResponse":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","request_id","retryable"],"properties":{"code":{"type":"string","pattern":"^[A-Z0-9_]+$"},"message":{"type":"string"},"request_id":{"type":"string"},"retryable":{"type":"boolean"},"details":{"type":"object","additionalProperties":true}}}}}},"responses":{"KnowledgeDocument":{"description":"Technical documentation with HTML and agent-optimized Markdown representations","headers":{"Vary":{"schema":{"type":"string","const":"Accept"}},"ETag":{"schema":{"type":"string"}},"X-Markdown-Tokens":{"description":"Approximate token count on the Markdown representation","schema":{"type":"integer","minimum":1}}},"content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"}}}},"BadRequest":{"description":"Malformed request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"Conflict":{"description":"Idempotency, quote, payment identifier, or profitability conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"PayloadTooLarge":{"description":"Evidence or request body exceeds v1 limits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"Unprocessable":{"description":"Syntactically valid but unsupported or non-executable verification request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"RateLimited":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"Unavailable":{"description":"Kill switch, maintenance, budget exhaustion, facilitator outage, or unavailable cost basis","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}