# Datoka Agent A2A 1.0 — 0.8.6 JSON-RPC endpoint: https://datoka-agent.bhazarstudio.workers.dev/a2a Signed Agent Card: https://datoka-agent.bhazarstudio.workers.dev/.well-known/agent-card.json Public keys: https://datoka-agent.bhazarstudio.workers.dev/.well-known/jwks.json Public access: generate 32 random bytes locally and encode as dka_public_<64 lowercase hex characters>. Save this secret before the first request; reuse it to retrieve your private tasks. No registration or manual approval. A lost secret cannot be recovered. This is possession-based access, not a verified identity. Public sessions can never issue free pilot proofs. Rate limits return HTTP 429; preserve your original purchase on retries. Send Authorization: Bearer , Content-Type: application/json and A2A-Version: 1.0. Use SendMessage with message.role=ROLE_USER, a stable messageId and one data part: {"operation":"get_agent_public_keys","input":{}}. The response is result.task; output is in task.artifacts[0].parts[0].data. GetTask, ListTasks and CancelTask are supported. returnImmediately supports background execution. No raw prompts or artifacts accepted. Only typed Datoka operation inputs are supported. Tasks are private to the authenticated scope. Free-form metadata/history are not retained. Terminal tasks and unpaid quotes are pruned after seven days during task creation; at most 1000 tasks per scope. Reuse messageId for transport retries; preserve idempotencyKey for issuance retries. No streaming, push notifications, extended card or general multi-turn chat. issue_proof_receipt remains an authorized non-production pilot operation. ## Payment extension issue_agent_receipt supports x402 v2 for authorized bearer clients. Explicitly activate https://github.com/google-a2a/a2a-x402/v0.1 with A2A-Extensions (X-A2A-Extensions also accepted). The initial typed operation returns TASK_STATE_INPUT_REQUIRED with x402.payment.required in status.message.metadata. Check the actual network, asset, amount and recipient in that quote before signing. To pay, send a new SendMessage with the same operation/input, the returned taskId and metadata {"x402.payment.status":"payment-submitted","x402.payment.payload":}. Persist taskId, input, idempotencyKey and authorization before submission. No automatic replacement signature or new purchase after an interruption. Working tasks with payment_pending are unresolved, not failed purchases. GetTask reads the current result; background recovery reuses the same authorization. A pending task has no artifact. Completion contains the execution receipt artifact and x402.payment.receipts. A confirmed settlement is delivered once; retries retrieve it. The artifact is scoped to the signing wallet, the A2A task to the bearer client. CancelTask or payment-rejected is possible before authorization acceptance only. The payment payload is private and erased from the task after completion; the payment ledger retains its recovery record. Configured payment network: eip155:8453. Public sessions are available without registration. Read the current quote before signing; the Agent Card does not itself certify a settlement.