{"service":"agent-store","version":"0.1.0","merchant":{"id":"mrc_kalaakar_streetwear","name":"Kalaakar Streetwear"},"money":{"currency":"INR","unit":"paise","note":"Every amount is an integer number of paise: 129900 means ₹1,299.00. Never send rupees or decimals."},"purchaseFlow":["Browse the catalog (public).","Register once, declaring your Cap (spend ceiling, integer paise) — returns the agentToken every later call requires.","Declare an Intent mandate: what you want plus your budgetPaise for this purchase — returns an intentHash.","Create the immutable Cart mandate from that intentHash and your items — returns a cartHash.","Submit the Payment mandate with the cartHash and a fresh buyer-minted idempotency key — the server verifies the whole signed chain and returns a Razorpay-hosted payment link.","A human approves the payment link; that approval is the only way money moves.","Poll order status until \"paid\" — the response then carries the merchant-signed Receipt."],"faces":{"mcp":{"protocol":"mcp","transport":"streamable-http","endpoint":"https://agentstore.antideploy.com/mcp","authentication":"None at the transport. Identity lives in-protocol: register_agent mints an agentToken passed as a tool argument on every call.","tools":["get_product","register_agent","declare_intent","create_cart","submit_payment","get_order_status"]},"rest":{"protocol":"rest","flavor":"acp","baseUrl":"https://agentstore.antideploy.com/acp","authentication":"Authorization: Bearer <agentToken> (minted by POST /acp/agents). POST bodies may carry agentToken instead. GET /acp/products is public.","endpoints":[{"method":"GET","path":"/acp/products","mirrors":"get_product","description":"List published Variants — the sellable unit — with price (integer paise) and stock."},{"method":"POST","path":"/acp/agents","mirrors":"register_agent","body":{"capPaise":"integer paise","publicKey?":"base64 SPKI DER Ed25519 (client custody)"},"description":"Register an Agent and declare its immutable Cap. Returns the agentToken."},{"method":"POST","path":"/acp/intents","mirrors":"declare_intent","body":{"want":"plain-language description","budgetPaise":"integer paise","createdAt?":"client custody: ISO-8601 timestamp you signed","signature?":"client custody: base64 Ed25519 over the canonical Intent payload"},"description":"Declare the signed Intent mandate. Returns the intentHash."},{"method":"POST","path":"/acp/carts","mirrors":"create_cart","body":{"intentHash":"from POST /acp/intents","items":"[{variantId, quantity}]"},"description":"One-shot: turn an Intent into a priced, immutable Cart mandate (no cart editing — POST again to change items). Returns the cartHash."},{"method":"POST","path":"/acp/payments","mirrors":"submit_payment","headers":{"Idempotency-Key":"fresh buyer-minted UUID per attempt (or idempotencyKey in the body)"},"body":{"cartHash":"from POST /acp/carts","cartSignature?":"client custody: your signature over the Cart payload","paymentCreatedAt?":"client custody: ISO-8601 timestamp you signed","paymentSignature?":"client custody: base64 Ed25519 over the canonical Payment payload"},"description":"Verify the whole Intent → Cart → Payment chain and return the Order plus the Razorpay-hosted payment link a human approves."},{"method":"GET","path":"/acp/orders/{orderId}","mirrors":"get_order_status","description":"Order status; once \"paid\" the body carries the merchant-signed Receipt (payload, signature, merchant public key)."}],"errors":{"refusal":{"status":403,"shape":{"refusal":{"code":"…","reason":"…","recoverable":"boolean","retryAfter?":"seconds"}},"note":"The trust layer saying no, on policy, before money moves. Identical body on both faces."},"validationError":{"status":"400 (404 for ORDER_NOT_FOUND)","shape":{"validationError":{"code":"…","message":"…"}},"note":"Malformed or unsatisfiable input. Identical body on both faces."},"invalidRequest":{"status":400,"shape":{"error":"invalid_request","issues":"[{path, message}]"},"note":"The transport rejecting a malformed body — the REST counterpart of an MCP schema rejection."}}}},"audit":{"directory":"https://agentstore.antideploy.com/audit","order":"https://agentstore.antideploy.com/audit/{orderId}","refusal":"https://agentstore.antideploy.com/audit/refusals/{seq}","viewer":"https://agentstore.antideploy.com/viewer"}}