{
  "name": "qart.uk",
  "description": "The agent interface to qart.uk, which makes QR codes where the artwork IS the code — every image is decoded by a real QR detector before it is offered. It resolves scanned codes, browses the free claim pool, and generates custom scan-verified QR artwork in the paid Studio.",
  "version": "1.0.0",
  "documentationUrl": "https://qart.uk/llms.txt",
  "iconUrl": "https://qart.uk/icon.webp",
  "provider": {
    "organization": "qart.uk",
    "url": "https://qart.uk"
  },
  "supportedInterfaces": [
    {
      "url": "https://qart.uk/api/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "url": "https://qart.uk/api/a2a",
  "preferredTransport": "JSONRPC",
  "protocolVersion": "1.0",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false,
    "tasks": true,
    "extensions": [
      {
        "uri": "https://ap2-protocol.org/v0.1.0",
        "description": "Agent Payments Protocol. qart.uk sells prepaid Studio credits; an agent may buy them from its own wallet and receive a single-use redemption code, which any account can redeem.",
        "required": true,
        "params": {
          "roles": [
            "merchant"
          ],
          "settlementRails": [
            "x402"
          ],
          "fulfilment": "redemption-code",
          "catalogUrl": "https://qart.uk/api/qart/products",
          "paymentUrl": "https://qart.uk/api/qart/x402/credits",
          "redemptionUrl": "https://qart.uk/api/qart/redeem",
          "directPurchaseUrl": "https://qart.uk/api/v1/qr",
          "directFulfilment": "artwork-in-response",
          "mandateVerification": "not-implemented"
        }
      },
      {
        "uri": "https://github.com/google-agentic-commerce/AP2/tree/v0.1.0",
        "description": "Agent Payments Protocol. qart.uk sells prepaid Studio credits; an agent may buy them from its own wallet and receive a single-use redemption code, which any account can redeem.",
        "required": true,
        "params": {
          "roles": [
            "merchant"
          ],
          "settlementRails": [
            "x402"
          ],
          "fulfilment": "redemption-code",
          "catalogUrl": "https://qart.uk/api/qart/products",
          "paymentUrl": "https://qart.uk/api/qart/x402/credits",
          "redemptionUrl": "https://qart.uk/api/qart/redeem",
          "directPurchaseUrl": "https://qart.uk/api/v1/qr",
          "directFulfilment": "artwork-in-response",
          "mandateVerification": "not-implemented"
        }
      },
      {
        "uri": "https://github.com/google-agentic-commerce/ap2/tree/v0.1.0",
        "description": "Agent Payments Protocol. qart.uk sells prepaid Studio credits; an agent may buy them from its own wallet and receive a single-use redemption code, which any account can redeem.",
        "required": true,
        "params": {
          "roles": [
            "merchant"
          ],
          "settlementRails": [
            "x402"
          ],
          "fulfilment": "redemption-code",
          "catalogUrl": "https://qart.uk/api/qart/products",
          "paymentUrl": "https://qart.uk/api/qart/x402/credits",
          "redemptionUrl": "https://qart.uk/api/qart/redeem",
          "directPurchaseUrl": "https://qart.uk/api/v1/qr",
          "directFulfilment": "artwork-in-response",
          "mandateVerification": "not-implemented"
        }
      }
    ]
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "qr-resolve",
      "name": "Resolve a qart.uk Code",
      "description": "Given a scanned qart.uk code or its alias, report where it currently points, or that it has been retired. Does not count as a scan and does not affect the owner's statistics. Works without credentials.",
      "tags": [
        "qr",
        "lookup",
        "resolve",
        "redirect"
      ],
      "examples": [
        "Where does qart.uk/_ab12cde go?",
        "Is the code _ab12cde still active?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "qr-pool-browse",
      "name": "Browse the Free QR Pool",
      "description": "List the pre-generated, scan-verified QR artwork currently claimable for free, one per style, with a preview image URL for each. Works without credentials; claiming one requires a signed-in account.",
      "tags": [
        "qr",
        "gallery",
        "browse",
        "free"
      ],
      "examples": [
        "What free QR codes can I claim right now?",
        "Show me the available styles in the qart.uk pool."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "qr-generate",
      "name": "Generate Custom QR Artwork",
      "description": "Generate scan-verified QR artwork for a destination URL and a described style. Returns a Task: images arrive as artifacts one at a time over several minutes, each carrying its own scan verdict, and the task can be cancelled at any point. SPENDS REAL MONEY — requires an OAuth bearer token with the qart:studio scope, and consumes the account's prepaid credits.",
      "tags": [
        "qr",
        "generate",
        "image-generation",
        "studio",
        "paid"
      ],
      "examples": [
        "Make me a QR code for https://example.com that looks like a watercolour forest.",
        "Generate a scannable QR artwork pointing at my shop, in a neon cyberpunk style."
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain",
        "image/png"
      ]
    },
    {
      "id": "qr-buy",
      "name": "Buy a QR Artwork Outright",
      "description": "How to buy one scan-verified QR artwork outright, paying from your own wallet over x402 — no account, no bearer token, no credits. Asking here returns the live price and the exact call to make; the purchase itself is an HTTP request to https://qart.uk/api/v1/qr, because a payment needs a PAYMENT-SIGNATURE header and this JSON-RPC transport has nowhere to put one. That endpoint answers 402, and on the paid retry the PNG comes back in the response. You are charged ONLY if a real QR detector decodes the image: settlement follows the scan verdict, so a request that produces nothing scannable costs nothing.",
      "tags": [
        "qr",
        "generate",
        "image-generation",
        "paid",
        "x402",
        "anonymous"
      ],
      "examples": [
        "Buy me a QR code for https://example.com in a watercolour style.",
        "I have a wallet but no qart.uk account — can I just pay for one QR?"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "image/png",
        "application/json"
      ]
    }
  ],
  "extensions": [
    {
      "uri": "https://ap2-protocol.org/v0.1.0",
      "description": "Agent Payments Protocol. qart.uk sells prepaid Studio credits; an agent may buy them from its own wallet and receive a single-use redemption code, which any account can redeem.",
      "required": true,
      "params": {
        "roles": [
          "merchant"
        ],
        "settlementRails": [
          "x402"
        ],
        "fulfilment": "redemption-code",
        "catalogUrl": "https://qart.uk/api/qart/products",
        "paymentUrl": "https://qart.uk/api/qart/x402/credits",
        "redemptionUrl": "https://qart.uk/api/qart/redeem",
        "directPurchaseUrl": "https://qart.uk/api/v1/qr",
        "directFulfilment": "artwork-in-response",
        "mandateVerification": "not-implemented"
      }
    },
    {
      "uri": "https://github.com/google-agentic-commerce/AP2/tree/v0.1.0",
      "description": "Agent Payments Protocol. qart.uk sells prepaid Studio credits; an agent may buy them from its own wallet and receive a single-use redemption code, which any account can redeem.",
      "required": true,
      "params": {
        "roles": [
          "merchant"
        ],
        "settlementRails": [
          "x402"
        ],
        "fulfilment": "redemption-code",
        "catalogUrl": "https://qart.uk/api/qart/products",
        "paymentUrl": "https://qart.uk/api/qart/x402/credits",
        "redemptionUrl": "https://qart.uk/api/qart/redeem",
        "directPurchaseUrl": "https://qart.uk/api/v1/qr",
        "directFulfilment": "artwork-in-response",
        "mandateVerification": "not-implemented"
      }
    },
    {
      "uri": "https://github.com/google-agentic-commerce/ap2/tree/v0.1.0",
      "description": "Agent Payments Protocol. qart.uk sells prepaid Studio credits; an agent may buy them from its own wallet and receive a single-use redemption code, which any account can redeem.",
      "required": true,
      "params": {
        "roles": [
          "merchant"
        ],
        "settlementRails": [
          "x402"
        ],
        "fulfilment": "redemption-code",
        "catalogUrl": "https://qart.uk/api/qart/products",
        "paymentUrl": "https://qart.uk/api/qart/x402/credits",
        "redemptionUrl": "https://qart.uk/api/qart/redeem",
        "directPurchaseUrl": "https://qart.uk/api/v1/qr",
        "directFulfilment": "artwork-in-response",
        "mandateVerification": "not-implemented"
      }
    }
  ]
}