{"schema_version":"datoka.agent.catalog.v1","service":"Datoka Agent","version":"0.8.6","access":"public_x402","operations":[{"id":"verify_proof_receipt","description":"Free verification of a common Datoka proof against an independently obtained caller-supplied public trust registry and explicit issuer/scope/chain. Send only the proof, never raw documents. receiptVerified concerns signature, context and dates; status remains incomplete because the artifact is checked locally. No payment, factual accuracy or parent signatures are verified.","http":{"method":"POST","path":"/v1/operations/verify_proof_receipt"},"mcp":"verify_proof_receipt","read_only":true,"requires_authentication":false,"idempotent":true,"available":true,"payment_enabled":false,"price":{"kind":"free"},"input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"proof":{"type":"object","properties":{"statement":{"type":"object","properties":{"version":{"type":"string","const":"datoka.proof.v0.1"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"validUntil":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"artifact":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256"},"encoding":{"type":"string","enum":["bytes","jcs"]},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mediaType":{"type":"string","minLength":1,"maxLength":512}},"required":["algorithm","encoding","digest","mediaType"],"additionalProperties":false},"sources":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"uri":{"type":"string","maxLength":2048,"format":"uri"},"retrievedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"snapshot":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256"},"encoding":{"type":"string","enum":["bytes","jcs"]},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["algorithm","encoding","digest"],"additionalProperties":false},"description":{"type":"string","minLength":1,"maxLength":512}},"required":["uri","retrievedAt"],"additionalProperties":false}},"transformations":{"maxItems":32,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":512},"version":{"type":"string","minLength":1,"maxLength":512}},"required":["id"],"additionalProperties":false}},"parentReceipts":{"maxItems":64,"type":"array","items":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"attestation":{"type":"string","const":"signed_declaration"},"independentlyVerified":{"type":"boolean","const":false},"references":{"maxItems":16,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["payment","authorization","anchor"]},"protocol":{"type":"string","minLength":1,"maxLength":512},"reference":{"type":"string","minLength":1,"maxLength":512}},"required":["kind","protocol","reference"],"additionalProperties":false}}},"required":["version","createdAt","artifact","sources","transformations","parentReceipts","attestation","independentlyVerified","references"],"additionalProperties":false},"receipt":{"type":"object","properties":{"body":{"type":"object","properties":{"version":{"type":"string","const":"datoka.receipt.v1"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"issuer":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"keyId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"issuedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"request":{"type":"object","properties":{"scope":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"chain":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"eventType":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"subject":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256"},"encoding":{"type":"string","enum":["jcs","bytes"]},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["algorithm","encoding","digest"],"additionalProperties":false}},"required":["scope","chain","eventType","subject"],"additionalProperties":false},"sequence":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"previous":{"anyOf":[{"type":"string","pattern":"^[a-f0-9]{64}$"},{"type":"null"}]}},"required":["version","id","issuer","keyId","issuedAt","request","sequence","previous"],"additionalProperties":false},"algorithm":{"type":"string","const":"Ed25519"},"signature":{"type":"string","pattern":"^[A-Za-z0-9_-]{86}$"}},"required":["body","algorithm","signature"],"additionalProperties":false}},"required":["statement","receipt"],"additionalProperties":false,"description":"Unmodified common Datoka proof envelope; do not send its raw artifact."},"trust":{"type":"object","properties":{"version":{"type":"string","const":"datoka.trust.v0.1"},"keys":{"minItems":1,"maxItems":64,"type":"array","items":{"type":"object","properties":{"issuer":{"type":"string","minLength":1},"keyId":{"type":"string","minLength":1},"scopes":{"minItems":1,"type":"array","items":{"type":"string","minLength":1}},"revoked":{"type":"boolean"},"notBefore":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"notAfter":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"jwk":{"type":"object","properties":{"kty":{"type":"string","const":"OKP"},"crv":{"type":"string","const":"Ed25519"},"x":{"type":"string","pattern":"^[A-Za-z0-9_-]{43}$"}},"required":["kty","crv","x"],"additionalProperties":false}},"required":["issuer","keyId","scopes","revoked","notBefore","notAfter","jwk"],"additionalProperties":false}}},"required":["version","keys"],"additionalProperties":false,"description":"Public trust registry obtained independently from a trusted source, not accepted merely because it accompanies this proof."},"issuer":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Expected trusted issuer identifier; must match the trust registry and proof."},"scope":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Expected scope authorized by the caller-supplied trust registry."},"chain":{"description":"Optional expected logical chain identifier. Omit only when no chain restriction is required.","type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"}},"required":["proof","trust","issuer","scope"],"additionalProperties":false},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","enum":["verified_integrity","incomplete","invalid"]},"code":{"type":"string"},"receiptId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"receiptVerified":{"type":"boolean"},"trustSource":{"type":"string","const":"caller_supplied"},"artifactHandling":{"type":"string","const":"not_received"},"checks":{"type":"object","properties":{"signature":{"type":"string","enum":["verified","not_provided","not_checked"]},"statement":{"type":"string","enum":["verified","not_provided","not_checked"]},"validity":{"type":"string","enum":["verified","not_provided","not_checked"]},"artifact":{"type":"string","enum":["verified","not_provided","not_checked"]},"sourceSnapshots":{"type":"array","items":{"type":"string","enum":["verified","not_provided","not_checked"]}},"parentReceipts":{"type":"array","items":{"type":"string","enum":["verified","not_provided","not_checked"]}},"factualAccuracy":{"type":"string","const":"not_checked"},"payment":{"type":"string","const":"not_checked"},"authorization":{"type":"string","const":"not_checked"},"anchor":{"type":"string","const":"not_checked"},"chainContinuity":{"type":"string","const":"not_checked"}},"required":["signature","statement","validity","artifact","sourceSnapshots","parentReceipts","factualAccuracy","payment","authorization","anchor","chainContinuity"],"additionalProperties":false}},"required":["status","receiptVerified","trustSource","artifactHandling","checks"],"additionalProperties":false}},{"id":"issue_proof_receipt","description":"Issue a Datoka Proof Receipt v0.1 from a commitment-only statement. Authenticated non-production pilot only; not sold through x402 in this release. Never send raw prompts or artifacts.","http":{"method":"POST","path":"/v1/operations/issue_proof_receipt"},"mcp":"issue_proof_receipt","read_only":false,"requires_authentication":true,"idempotent":true,"available":false,"payment_enabled":false,"price":{"kind":"pilot","commercially_available":false},"input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"statement":{"type":"object","properties":{"version":{"type":"string","const":"datoka.proof.v0.1"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"validUntil":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"artifact":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256"},"encoding":{"type":"string","enum":["bytes","jcs"]},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mediaType":{"type":"string","minLength":1,"maxLength":512}},"required":["algorithm","encoding","digest","mediaType"],"additionalProperties":false},"sources":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"uri":{"type":"string","maxLength":2048,"format":"uri"},"retrievedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"snapshot":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256"},"encoding":{"type":"string","enum":["bytes","jcs"]},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["algorithm","encoding","digest"],"additionalProperties":false},"description":{"type":"string","minLength":1,"maxLength":512}},"required":["uri","retrievedAt"],"additionalProperties":false}},"transformations":{"maxItems":32,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":512},"version":{"type":"string","minLength":1,"maxLength":512}},"required":["id"],"additionalProperties":false}},"parentReceipts":{"maxItems":64,"type":"array","items":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"attestation":{"type":"string","const":"signed_declaration"},"independentlyVerified":{"type":"boolean","const":false},"references":{"maxItems":16,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["payment","authorization","anchor"]},"protocol":{"type":"string","minLength":1,"maxLength":512},"reference":{"type":"string","minLength":1,"maxLength":512}},"required":["kind","protocol","reference"],"additionalProperties":false}}},"required":["version","createdAt","artifact","sources","transformations","parentReceipts","attestation","independentlyVerified","references"],"additionalProperties":false,"description":"Commitment-only proof statement; compute artifact and source hashes locally. Preserve dates and unique parent receipt identifiers."},"chain":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Logical proof-chain identifier within the authenticated pilot scope; not a blockchain network."},"idempotencyKey":{"type":"string","pattern":"^[\\x21-\\x7e]{16,200}$","description":"Persist this unique key before purchase. Reuse unchanged with the same input and payment authorization after interruption."}},"required":["statement","chain","idempotencyKey"],"additionalProperties":false},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"statement":{"type":"object","properties":{"version":{"type":"string","const":"datoka.proof.v0.1"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"validUntil":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"artifact":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256"},"encoding":{"type":"string","enum":["bytes","jcs"]},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mediaType":{"type":"string","minLength":1,"maxLength":512}},"required":["algorithm","encoding","digest","mediaType"],"additionalProperties":false},"sources":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"uri":{"type":"string","maxLength":2048,"format":"uri"},"retrievedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"snapshot":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256"},"encoding":{"type":"string","enum":["bytes","jcs"]},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["algorithm","encoding","digest"],"additionalProperties":false},"description":{"type":"string","minLength":1,"maxLength":512}},"required":["uri","retrievedAt"],"additionalProperties":false}},"transformations":{"maxItems":32,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":512},"version":{"type":"string","minLength":1,"maxLength":512}},"required":["id"],"additionalProperties":false}},"parentReceipts":{"maxItems":64,"type":"array","items":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"attestation":{"type":"string","const":"signed_declaration"},"independentlyVerified":{"type":"boolean","const":false},"references":{"maxItems":16,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["payment","authorization","anchor"]},"protocol":{"type":"string","minLength":1,"maxLength":512},"reference":{"type":"string","minLength":1,"maxLength":512}},"required":["kind","protocol","reference"],"additionalProperties":false}}},"required":["version","createdAt","artifact","sources","transformations","parentReceipts","attestation","independentlyVerified","references"],"additionalProperties":false},"receipt":{"type":"object","properties":{"body":{"type":"object","properties":{"version":{"type":"string","const":"datoka.receipt.v1"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"issuer":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"keyId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"issuedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"request":{"type":"object","properties":{"scope":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"chain":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"eventType":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"subject":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256"},"encoding":{"type":"string","enum":["jcs","bytes"]},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["algorithm","encoding","digest"],"additionalProperties":false}},"required":["scope","chain","eventType","subject"],"additionalProperties":false},"sequence":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"previous":{"anyOf":[{"type":"string","pattern":"^[a-f0-9]{64}$"},{"type":"null"}]}},"required":["version","id","issuer","keyId","issuedAt","request","sequence","previous"],"additionalProperties":false},"algorithm":{"type":"string","const":"Ed25519"},"signature":{"type":"string","pattern":"^[A-Za-z0-9_-]{86}$"}},"required":["body","algorithm","signature"],"additionalProperties":false}},"required":["statement","receipt"],"additionalProperties":false}},{"id":"prepare_agent_event","description":"Free validation of a locally built execution declaration before issuance. Hash exact input and output bytes locally; supply identifiers and UTC timestamps with milliseconds. Returns the validated event, commitment and logical chain without creating or purchasing a receipt. Use issue_agent_receipt only if a portable signed declaration is needed.","http":{"method":"POST","path":"/v1/operations/prepare_agent_event"},"mcp":"prepare_agent_event","read_only":true,"requires_authentication":false,"idempotent":true,"available":true,"payment_enabled":false,"price":{"kind":"free"},"input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"event":{"type":"object","properties":{"version":{"type":"string","const":"datoka.agent.execution.v1","description":"Declaration format version; preserve this literal."},"agentId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Identifier of the declaring agent, not an independently verified identity."},"runId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Stable identifier for this execution run."},"stepId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Stable identifier of the step within the run."},"tool":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Tool or operation identifier declared by the caller."},"outcome":{"type":"string","enum":["success","error"],"description":"Outcome declared by the caller; Datoka does not observe execution."},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"Declared start time in UTC, with milliseconds."},"completedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"Declared completion in UTC with milliseconds, at or after start."},"inputHash":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256","description":"Hash algorithm."},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"64 lowercase hexadecimal characters; SHA-256 of exact bytes."}},"required":["algorithm","digest"],"additionalProperties":false,"description":"SHA-256 of the exact input bytes, computed locally. Never send raw input."},"outputHash":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256","description":"Hash algorithm."},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"64 lowercase hexadecimal characters; SHA-256 of exact bytes."}},"required":["algorithm","digest"],"additionalProperties":false,"description":"SHA-256 of exact output bytes, computed locally. Never send raw output."}},"required":["version","agentId","runId","stepId","tool","outcome","startedAt","completedAt","inputHash","outputHash"],"additionalProperties":false,"description":"Commitment-only declaration of one execution step."}},"required":["event"],"additionalProperties":false},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"event":{"type":"object","properties":{"version":{"type":"string","const":"datoka.agent.execution.v1","description":"Declaration format version; preserve this literal."},"agentId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Identifier of the declaring agent, not an independently verified identity."},"runId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Stable identifier for this execution run."},"stepId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Stable identifier of the step within the run."},"tool":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Tool or operation identifier declared by the caller."},"outcome":{"type":"string","enum":["success","error"],"description":"Outcome declared by the caller; Datoka does not observe execution."},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"Declared start time in UTC, with milliseconds."},"completedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"Declared completion in UTC with milliseconds, at or after start."},"inputHash":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256","description":"Hash algorithm."},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"64 lowercase hexadecimal characters; SHA-256 of exact bytes."}},"required":["algorithm","digest"],"additionalProperties":false,"description":"SHA-256 of the exact input bytes, computed locally. Never send raw input."},"outputHash":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256","description":"Hash algorithm."},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"64 lowercase hexadecimal characters; SHA-256 of exact bytes."}},"required":["algorithm","digest"],"additionalProperties":false,"description":"SHA-256 of exact output bytes, computed locally. Never send raw output."}},"required":["version","agentId","runId","stepId","tool","outcome","startedAt","completedAt","inputHash","outputHash"],"additionalProperties":false,"description":"Commitment-only declaration of one execution step."},"commitment":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256"},"encoding":{"type":"string","const":"jcs"},"digest":{"type":"string"}},"required":["algorithm","encoding","digest"],"additionalProperties":false},"chain":{"type":"string"}},"required":["event","commitment","chain"],"additionalProperties":false}},{"id":"issue_agent_receipt","description":"Persist a signed execution declaration receipt. Public price: 0.002 USDC via x402 on the advertised network. Preserve event, idempotencyKey and payment authorization on retries. Signed declarations do not independently prove execution.","http":{"method":"POST","path":"/v1/operations/issue_agent_receipt"},"mcp":"issue_agent_receipt","read_only":false,"requires_authentication":false,"idempotent":true,"available":true,"payment_enabled":true,"price":{"kind":"x402","model":"per_receipt","amount":"0.002","currency":"USDC","network":"eip155:8453","pilot_only":false},"input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"event":{"type":"object","properties":{"version":{"type":"string","const":"datoka.agent.execution.v1","description":"Declaration format version; preserve this literal."},"agentId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Identifier of the declaring agent, not an independently verified identity."},"runId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Stable identifier for this execution run."},"stepId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Stable identifier of the step within the run."},"tool":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Tool or operation identifier declared by the caller."},"outcome":{"type":"string","enum":["success","error"],"description":"Outcome declared by the caller; Datoka does not observe execution."},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"Declared start time in UTC, with milliseconds."},"completedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"Declared completion in UTC with milliseconds, at or after start."},"inputHash":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256","description":"Hash algorithm."},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"64 lowercase hexadecimal characters; SHA-256 of exact bytes."}},"required":["algorithm","digest"],"additionalProperties":false,"description":"SHA-256 of the exact input bytes, computed locally. Never send raw input."},"outputHash":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256","description":"Hash algorithm."},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"64 lowercase hexadecimal characters; SHA-256 of exact bytes."}},"required":["algorithm","digest"],"additionalProperties":false,"description":"SHA-256 of exact output bytes, computed locally. Never send raw output."}},"required":["version","agentId","runId","stepId","tool","outcome","startedAt","completedAt","inputHash","outputHash"],"additionalProperties":false,"description":"Commitment-only declaration of one execution step."},"idempotencyKey":{"type":"string","pattern":"^[\\x21-\\x7e]{16,200}$","description":"Persist this unique key before purchase. Reuse unchanged with the same input and payment authorization after interruption."}},"required":["event","idempotencyKey"],"additionalProperties":false},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"event":{"type":"object","properties":{"version":{"type":"string","const":"datoka.agent.execution.v1","description":"Declaration format version; preserve this literal."},"agentId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Identifier of the declaring agent, not an independently verified identity."},"runId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Stable identifier for this execution run."},"stepId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Stable identifier of the step within the run."},"tool":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Tool or operation identifier declared by the caller."},"outcome":{"type":"string","enum":["success","error"],"description":"Outcome declared by the caller; Datoka does not observe execution."},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"Declared start time in UTC, with milliseconds."},"completedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"Declared completion in UTC with milliseconds, at or after start."},"inputHash":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256","description":"Hash algorithm."},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"64 lowercase hexadecimal characters; SHA-256 of exact bytes."}},"required":["algorithm","digest"],"additionalProperties":false,"description":"SHA-256 of the exact input bytes, computed locally. Never send raw input."},"outputHash":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256","description":"Hash algorithm."},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"64 lowercase hexadecimal characters; SHA-256 of exact bytes."}},"required":["algorithm","digest"],"additionalProperties":false,"description":"SHA-256 of exact output bytes, computed locally. Never send raw output."}},"required":["version","agentId","runId","stepId","tool","outcome","startedAt","completedAt","inputHash","outputHash"],"additionalProperties":false,"description":"Commitment-only declaration of one execution step."},"receipt":{"type":"object","properties":{"body":{"type":"object","properties":{"version":{"type":"string","const":"datoka.receipt.v1"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"issuer":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"keyId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"issuedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"request":{"type":"object","properties":{"scope":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"chain":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"eventType":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"subject":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256"},"encoding":{"type":"string","enum":["jcs","bytes"]},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["algorithm","encoding","digest"],"additionalProperties":false}},"required":["scope","chain","eventType","subject"],"additionalProperties":false},"sequence":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"previous":{"anyOf":[{"type":"string","pattern":"^[a-f0-9]{64}$"},{"type":"null"}]}},"required":["version","id","issuer","keyId","issuedAt","request","sequence","previous"],"additionalProperties":false},"algorithm":{"type":"string","const":"Ed25519"},"signature":{"type":"string","pattern":"^[A-Za-z0-9_-]{86}$"}},"required":["body","algorithm","signature"],"additionalProperties":false,"description":"Signed Datoka receipt; verify against independently trusted keys."}},"required":["event","receipt"],"additionalProperties":false}},{"id":"verify_agent_receipt","description":"Free verification of an execution event and its unchanged receipt returned by issue_agent_receipt. Checks signature, scope and event commitment against this issuer. No wallet or new issuance required. Use verify_proof_receipt for the distinct common proof-envelope format. A valid signature does not independently prove execution; compare original bytes locally.","http":{"method":"POST","path":"/v1/operations/verify_agent_receipt"},"mcp":"verify_agent_receipt","read_only":true,"requires_authentication":false,"idempotent":true,"available":true,"payment_enabled":false,"price":{"kind":"free"},"input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"event":{"type":"object","properties":{"version":{"type":"string","const":"datoka.agent.execution.v1","description":"Declaration format version; preserve this literal."},"agentId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Identifier of the declaring agent, not an independently verified identity."},"runId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Stable identifier for this execution run."},"stepId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Stable identifier of the step within the run."},"tool":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Tool or operation identifier declared by the caller."},"outcome":{"type":"string","enum":["success","error"],"description":"Outcome declared by the caller; Datoka does not observe execution."},"startedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"Declared start time in UTC, with milliseconds."},"completedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$","description":"Declared completion in UTC with milliseconds, at or after start."},"inputHash":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256","description":"Hash algorithm."},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"64 lowercase hexadecimal characters; SHA-256 of exact bytes."}},"required":["algorithm","digest"],"additionalProperties":false,"description":"SHA-256 of the exact input bytes, computed locally. Never send raw input."},"outputHash":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256","description":"Hash algorithm."},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"64 lowercase hexadecimal characters; SHA-256 of exact bytes."}},"required":["algorithm","digest"],"additionalProperties":false,"description":"SHA-256 of exact output bytes, computed locally. Never send raw output."}},"required":["version","agentId","runId","stepId","tool","outcome","startedAt","completedAt","inputHash","outputHash"],"additionalProperties":false,"description":"Commitment-only declaration of one execution step."},"receipt":{"type":"object","properties":{"body":{"type":"object","properties":{"version":{"type":"string","const":"datoka.receipt.v1"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"issuer":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"keyId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"issuedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$"},"request":{"type":"object","properties":{"scope":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"chain":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"eventType":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"subject":{"type":"object","properties":{"algorithm":{"type":"string","const":"sha256"},"encoding":{"type":"string","enum":["jcs","bytes"]},"digest":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["algorithm","encoding","digest"],"additionalProperties":false}},"required":["scope","chain","eventType","subject"],"additionalProperties":false},"sequence":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"previous":{"anyOf":[{"type":"string","pattern":"^[a-f0-9]{64}$"},{"type":"null"}]}},"required":["version","id","issuer","keyId","issuedAt","request","sequence","previous"],"additionalProperties":false},"algorithm":{"type":"string","const":"Ed25519"},"signature":{"type":"string","pattern":"^[A-Za-z0-9_-]{86}$"}},"required":["body","algorithm","signature"],"additionalProperties":false,"description":"Signed Datoka receipt; verify against independently trusted keys."}},"required":["event","receipt"],"additionalProperties":false},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"valid":{"type":"boolean","const":true},"receiptId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"scope":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"agentId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Identifier of the declaring agent, not an independently verified identity."},"runId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Stable identifier for this execution run."},"stepId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$","description":"Stable identifier of the step within the run."},"attestation":{"type":"string","const":"signed_declaration"}},"required":["valid","receiptId","scope","agentId","runId","stepId","attestation"],"additionalProperties":false}},{"id":"get_agent_public_keys","description":"Return public keys of this issuer. The operator must establish trust in this issuer independently.","http":{"method":"POST","path":"/v1/operations/get_agent_public_keys"},"mcp":"get_agent_public_keys","read_only":true,"requires_authentication":false,"idempotent":true,"available":true,"payment_enabled":false,"price":{"kind":"free"},"input_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"issuer":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"keys":{"type":"array","items":{"type":"object","properties":{"keyId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"jwk":{"type":"object","properties":{"kty":{"type":"string","const":"OKP"},"crv":{"type":"string","const":"Ed25519"},"x":{"type":"string"},"key_ops":{"type":"array","items":{"type":"string"}},"ext":{"type":"boolean"}},"required":["kty","crv","x"],"additionalProperties":false}},"required":["keyId","jwk"],"additionalProperties":false}}},"required":["issuer","keys"],"additionalProperties":false}}]}