{"openapi":"3.0.0","info":{"title":"Card Registry","version":"1.0.0","description":"Hosts agent-card.json files at permanent public URLs. Pay-per-card via x402 (USDC on Base).","guidance":"POST to /mcp with JSON-RPC. 'register_card' (paid, 0.001 USDC) takes slug and card object. 'get_card' and 'list_cards' are free. Include X-Payment-Tx header for register_card only."},"paths":{"/mcp":{"post":{"summary":"Register, retrieve, or list agent cards","description":"MCP endpoint for register_card (paid), get_card (free), list_cards (free).","x-payment-info":{"protocols":["x402"],"pricingMode":"fixed","price":"0.001"},"parameters":[{"name":"X-Payment-Tx","in":"header","required":false,"description":"Transaction hash from USDC transfer on Base (required for register_card only)","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","method","params","id"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"method":{"type":"string","enum":["tools/call"]},"params":{"type":"object","required":["name"],"properties":{"name":{"type":"string","enum":["register_card","get_card","list_cards"]},"arguments":{"type":"object","properties":{"slug":{"type":"string","description":"URL-safe identifier (3-64 chars)"},"card":{"type":"object","description":"The agent-card.json to host"}}}}},"id":{"type":"number"}}}}}},"responses":{"200":{"description":"Card operation result"},"402":{"description":"Payment Required"}}}},"/cards/{slug}.json":{"get":{"summary":"Retrieve a hosted agent card","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Agent card JSON"},"404":{"description":"Card not found"}}}}}}