{"openapi":"3.1.0","info":{"title":"Quietstore","description":"Live x402 store for coding agents. Free first: POST /v1/tools/x402-bazaar-audit/preview with a 402 JSON to check Bazaar indexing. Paid: full audit ($0.01), other metered tools, and knowledge packs. USDC on Base, exact scheme. Start: GET /v1/catalog, /v1/tools, /llms.txt.","version":"1.0.0","termsOfService":"https://quietstore-production.edge-7e13f.workers.dev/"},"servers":[{"url":"https://quietstore-production.edge-7e13f.workers.dev","description":"This deployment"}],"externalDocs":{"description":"Agent brief (llms.txt)","url":"https://quietstore-production.edge-7e13f.workers.dev/llms.txt"},"tags":[{"name":"discovery","description":"Free machine-readable discovery"},{"name":"packs","description":"Paid pack delivery (x402 exact)"},{"name":"mcp","description":"Remote MCP adapter over the same HTTP API"}],"paths":{"/health":{"get":{"tags":["discovery"],"summary":"Liveness probe","operationId":"getHealth","responses":{"200":{"description":"Service is up","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/v1/catalog":{"get":{"tags":["discovery"],"summary":"List published packs and payment terms","description":"Free. Returns pack ids, prices, content hashes, and the pay_to address. Prefer this over scraping HTML.","operationId":"getCatalog","responses":{"200":{"description":"Catalog","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Catalog"}}}},"500":{"$ref":"#/components/responses/AppError"}}}},"/v1/tools":{"get":{"tags":["discovery"],"summary":"List metered loop tools","operationId":"getToolsCatalog","responses":{"200":{"description":"Tool catalog","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/tools/x402-bazaar-audit/badge":{"get":{"tags":["discovery"],"summary":"Render a live Bazaar-readiness SVG badge","description":"Free. Fetches an HTTPS x402 endpoint, runs the Bazaar audit preview, and returns an embeddable status badge.","operationId":"getBazaarAuditBadge","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"HTTPS endpoint that returns an x402 402 PaymentRequired JSON body"}],"responses":{"200":{"description":"Bazaar readiness, audit errors, or endpoint reachability badge","content":{"image/svg+xml":{"schema":{"type":"string"}}}},"400":{"description":"Missing, invalid, or non-HTTPS URL badge","content":{"image/svg+xml":{"schema":{"type":"string"}}}}}}},"/v1/tools/{toolId}":{"post":{"tags":["packs"],"summary":"Metered tool call (x402 exact)","description":"POST JSON body. Unpaid → 402. Paid → result. Replay same payment + same body without second charge. Tool ids: x402-bazaar-audit, swarm-admission, handoff-lint, rtk-command-score","operationId":"postTool","parameters":[{"name":"toolId","in":"path","required":true,"schema":{"type":"string","enum":["x402-bazaar-audit","swarm-admission","handoff-lint","rtk-command-score"]}}],"responses":{"200":{"description":"Tool result envelope"},"400":{"description":"Invalid tool input"},"402":{"description":"Payment required"},"409":{"description":"Payment body mismatch / reused"}}}},"/v1/packs/{id}":{"get":{"tags":["packs"],"summary":"Purchase or re-serve a pack","description":"Unpaid requests return HTTP 402 with x402 payment requirements (body + PAYMENT-REQUIRED header). Paid requests send PAYMENT-SIGNATURE (or legacy X-PAYMENT) and receive the pack envelope. If a paid request fails mid-flight, retry with the SAME X-PAYMENT header: an already-settled payment is re-served without a second charge. Signing a NEW payment authorization is a NEW purchase.","operationId":"getPack","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","enum":["beads-agent-mail-recipe-v1","demo-extras-v1","demo-notes-v1","dod-drill-v1","rtk-output-discipline-v1","x402-retry-safe-seller-v1"]},"description":"Published pack id from /v1/catalog"},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"type":"string"},"description":"x402 v2 payment signature header. Required for paid delivery; omit for a 402 challenge."},{"name":"X-PAYMENT","in":"header","required":false,"schema":{"type":"string"},"description":"Legacy alias for PAYMENT-SIGNATURE"}],"responses":{"200":{"description":"Paid pack envelope (Cache-Control: private, no-store)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaidPackEnvelope"}}}},"402":{"description":"Payment required (x402 challenge)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"404":{"$ref":"#/components/responses/AppError"},"409":{"$ref":"#/components/responses/AppError"},"502":{"$ref":"#/components/responses/AppError"},"503":{"$ref":"#/components/responses/AppError"}}}},"/llms.txt":{"get":{"tags":["discovery"],"summary":"Plain-text agent brief","operationId":"getLlmsTxt","responses":{"200":{"description":"Agent-oriented usage notes","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/openapi.json":{"get":{"tags":["discovery"],"summary":"This OpenAPI document","operationId":"getOpenApi","responses":{"200":{"description":"OpenAPI 3.1","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp":{"post":{"tags":["mcp"],"summary":"MCP JSON-RPC (Streamable HTTP, stateless)","description":"JSON-RPC 2.0 MCP endpoint. Tools: quietstore_catalog (free), quietstore_get_pack (402 or paid). No server-side wallet; pass payment_signature when retrying a paid pack.","operationId":"mcpJsonRpc","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcRequest"}}}},"responses":{"200":{"description":"JSON-RPC response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}}}},"get":{"tags":["mcp"],"summary":"MCP endpoint discovery (human/agent help)","operationId":"mcpHelp","responses":{"200":{"description":"How to call this MCP endpoint","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"Health":{"type":"object","required":["ok","service","time"],"properties":{"ok":{"type":"boolean"},"service":{"type":"string","const":"quietstore"},"time":{"type":"string","format":"date-time"}}},"Catalog":{"type":"object","required":["catalog_version","service","updated_at","terms","retry_policy","payment","packs"],"properties":{"catalog_version":{"type":"integer","const":1},"service":{"type":"string","const":"quietstore"},"updated_at":{"type":"string","format":"date-time"},"terms":{"type":"string"},"retry_policy":{"type":"string"},"payment":{"$ref":"#/components/schemas/PaymentTerms"},"packs":{"type":"array","items":{"$ref":"#/components/schemas/CatalogPack"}}}},"PaymentTerms":{"type":"object","required":["protocol","x402_version","scheme","network","asset","asset_symbol","asset_decimals","pay_to"],"properties":{"protocol":{"type":"string","const":"x402"},"x402_version":{"type":"integer","const":2},"scheme":{"type":"string","const":"exact"},"network":{"type":"string","example":"eip155:8453"},"asset":{"type":"string"},"asset_symbol":{"type":"string","const":"USDC"},"asset_decimals":{"type":"integer","const":6},"pay_to":{"type":"string"}}},"CatalogPack":{"type":"object","required":["id","title","description","tags","price","price_version","content_sha256","byte_len","mime_type","path"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"price":{"type":"object","required":["amount_atomic","display"],"properties":{"amount_atomic":{"type":"string"},"display":{"type":"string","example":"$0.01"}}},"price_version":{"type":"integer"},"content_sha256":{"type":"string"},"byte_len":{"type":"integer"},"mime_type":{"type":"string","enum":["text/markdown","application/json"]},"path":{"type":"string"}},"example":{"id":"beads-agent-mail-recipe-v1","title":"Coordinate Multiple Coding Agents Without Collisions","description":"Operational recipe for multi-agent work on one repo: claim tasks, reserve files, avoid stomping, commit clean state, and hand off safely. Companion tools: POST /v1/tools/swarm-admission ($0.01) before launch and POST /v1/tools/handoff-lint ($0.005) on each handoff.","tags":["agents","multi-agent","swarm","coordination","git","beads","handoff"],"price":{"amount_atomic":"100000","display":"$0.10"},"price_version":2,"content_sha256":"3567977ddedfeedf2e618010ddfddeefc9d425901a80dbb5567e72a582f92655","byte_len":6648,"mime_type":"text/markdown","path":"/v1/packs/beads-agent-mail-recipe-v1"}},"PaymentRequired":{"type":"object","description":"x402 v2 PaymentRequired body","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"resource":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"description":{"type":"string"},"mimeType":{"type":"string"}}},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"},"error":{"type":"string"}}},"PaidPackEnvelope":{"type":"object","required":["pack","content_sha256","mime_type","byte_len","body"],"properties":{"pack":{"type":"object","required":["id","title","price_version"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"price_version":{"type":"integer"}}},"content_sha256":{"type":"string"},"mime_type":{"type":"string"},"byte_len":{"type":"integer"},"body":{"type":"string","description":"Full pack body as a UTF-8 string"},"original_content_sha256":{"type":"string"}}},"AppErrorBody":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","retryable","request_id"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"request_id":{"type":"string","format":"uuid"}}}}},"JsonRpcRequest":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{},"method":{"type":"string"},"params":{"type":"object"}}},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{},"result":{},"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{}}}}}},"responses":{"AppError":{"description":"Uniform JSON error envelope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppErrorBody"}}}}}},"x-quietstore":{"content_built_at":"2026-07-15T13:51:59.777Z","terms":"Purchased content is licensed for the buyer's own use (human or agent); no resale or redistribution.","retry_policy":"If a paid request fails mid-flight, retry with the SAME X-PAYMENT header: an already-settled payment is re-served without a second charge. Signing a NEW payment authorization is a NEW purchase.","pack_count":6,"network":"eip155:8453","pay_to":"0x8f9ef7f8c4744bfaedaa5d315c21f9770c10f931"}}