{"openapi": "3.0.3", "info": {"title": "Tool-Call Origin Attestation", "version": "1.0.0", "description": "Your dispatch layer executes anything shaped like a tool call \u2014 this service proves, per execution, that the call, the approval, and the control object were actually issued by the issuer they claim, for those exact arguments. Issuer signing at the source: the model-turn issuer, the human-approval service, and framework control issuers each sign a canonical digest of (kind, name, exact arguments, session, nonce, expiry) with Ed25519; the dispatch PEP holds only verification keys and refuses unsigned, argument-mismatched, expired, replayed, or wrong-class executions \u2014 an approval signed for $5 does not dispatch $5,000. Every check returns ATTESTED / UNATTESTED / FORGED-SHAPE with a signed, hash-chained receipt. The forged-shape probe suite runs five legs (legitimate control, injected tool-use block, forged approval with altered arguments, peer-supplied control object, replayed attestation) per target, reports every leg individually, binds verdicts to (framework, exact version, patch state) expiring on version change, and grades an unprobable target UNTESTED, never clean. Documented limits: a verdict is evidence about the attestation presented, not a guarantee about the call's intent \u2014 ATTESTED proves the named issuer signed those exact arguments; it does not prove the underlying model turn was benign. Probe verdicts are bound to the (framework, exact version, patch state) probed and are EXPIRED on version change; a surface the suite could not probe grades UNTESTED, and UNTESTED is never presented as clean. Willingness to pay is UNMEASURED \u2014 no external operator has paid for this at any price. Live-target grading runs against operator-supplied framework dispatch-surface endpoints and staged live targets implementing a dispatch surface; a surface that cannot be probed grades UNTESTED honestly.", "contact": {"email": "support@textforagents.com"}}, "servers": [{"url": "https://textforagents.com/products/tool-call-origin-attestation"}], "paths": {"/register": {"post": {"summary": "Self-serve credential issuance: {operator} -> {token}"}}, "/issuers": {"post": {"summary": "Register an issuer {issuer_id, issuer_class: model_turn|human_approval|framework_control, public_key (Ed25519 hex)} \u2014 re-register returns 409 and issues nothing"}}, "/check": {"post": {"summary": "Attestation check {execution, attestation} \u2014 $0.01 x402 / bundle credit / fleet-plan included; returns verdict + signed receipt"}}, "/dispatch": {"post": {"summary": "PEP dispatch {execution, attestation} \u2014 executes ONLY on ATTESTED; billed as a check"}}, "/probe": {"post": {"summary": "Forged-shape probe suite {framework, version, patch_state, surface, target_mode|target_url} \u2014 $4.99, first verdict free per operator ever"}}, "/verdict": {"get": {"summary": "Verdict lookup by framework, version, patch_state, surface \u2014 EXPIRED on version change, UNTESTED if never probed"}}, "/subscribe": {"post": {"summary": "x402 purchase: {tier: bundle|fleet} with X-PAYMENT header"}}, "/account": {"get": {"summary": "Account, plan, bundle credits, trial state (Bearer <redacted>)"}}, "/receipts": {"get": {"summary": "Own receipt chain + global chain validity"}}, "/receipts/verify": {"post": {"summary": "Verify one receipt {receipt} (hash recompute + Ed25519 sig)"}}, "/executions": {"get": {"summary": "Own executed dispatches (ATTESTED only)"}}, "/meter": {"get": {"summary": "Own meter {checks, probes, charged}"}}, "/health": {"get": {"summary": "Health + prices"}}, "/mcp": {"post": {"summary": "MCP JSON-RPC endpoint (tools mirror the HTTP surface, same billing)"}}}}