{
  "kind": "pressuredesk-receipt-proof-pack",
  "product": "PressureDesk Agent Tool Buyer",
  "generatedAt": "2026-05-20T09:30:00.000Z",
  "publicSafe": true,
  "purpose": "Show the public-safe proof chain an agent should inspect before and after a bounded paid API, MCP endpoint, or tool call.",
  "sequence": [
    {
      "step": "pre_spend_verdict",
      "route": "/v1/tools/evaluate",
      "artifact": "/examples/agent-tool-buyer-dossier.json",
      "result": {
        "verdict": "buy",
        "maxSpendUsd": 0.25,
        "receiptRequired": true,
        "hardBlocks": []
      },
      "agentRule": "Spend only when the verdict is BUY, maxSpendUsd covers the unit price, hardBlocks is empty, and a receipt endpoint is expected."
    },
    {
      "step": "approved_paid_route",
      "route": "/v1/tools/evaluate/paid",
      "artifact": "/examples/x402-payment-required-response.json",
      "result": {
        "paymentMode": "x402-live",
        "priceUsd": 0.25,
        "expectedReceiptRoute": "/v1/receipts/{paymentIdentifier}",
        "livePaymentCollection": true
      },
      "agentRule": "Submit payment only to the approved paid route and only for the quoted price. Do not send private keys, buyer secrets, raw signatures, wallet custody authority, or broad account permissions."
    },
    {
      "step": "delivery_proof_receipt",
      "route": "/v1/tools/evaluate/paid",
      "artifact": "/examples/paid-tool-buyer-dossier-response.json",
      "result": {
        "receiptId": "pd-rcpt-0xexample",
        "paymentIdentifier": "0xexample",
        "resourceHash": "example-resource-hash",
        "deliveredRoute": "/v1/tools/evaluate/paid",
        "deliveredAt": "2026-05-17T18:02:00.000Z",
        "priceUsd": 0.25
      },
      "agentRule": "Persist receiptId, paymentIdentifier, resourceHash, route, deliveredAt, and priceUsd with the spend decision."
    },
    {
      "step": "verification_endpoint",
      "route": "/v1/receipts/{paymentIdentifier}",
      "artifact": "/examples/receipt-response.json",
      "result": {
        "verifies": [
          "paymentIdentifier",
          "delivered route",
          "snapshot or resource identifier",
          "delivery timestamp",
          "price"
        ],
        "examplePaymentIdentifier": "api-pay-1"
      },
      "agentRule": "Treat delivery as unverified until the receipt lookup returns the expected payment identifier, route, delivered resource, timestamp, and price."
    }
  ],
  "waitOrRefuseCase": {
    "route": "/v1/tools/evaluate",
    "artifact": "/examples/public-target-preflight-response.json",
    "result": {
      "verdict": "wait",
      "maxSpendUsd": 0,
      "hardBlocks": [
        "Missing receipt expectation",
        "Missing bounded unit price"
      ]
    },
    "agentRule": "WAIT or refuse when the seller does not provide a bounded unit price, receipt expectation, or verification route before spend."
  },
  "sourceHealthExpectation": {
    "route": "/v1/source-health",
    "artifact": "/examples/source-health-response.json",
    "agentRule": "Check source freshness, errors, and trustReasons before repeat calls or higher spend."
  },
  "publicSafety": {
    "containsPrivateKeys": false,
    "containsRawPaymentSignatures": false,
    "containsBuyerSecrets": false,
    "containsUnverifiedLiveClaim": false,
    "redactionPolicy": "Use fixture or redacted payment identifiers only. Public proof may show route, price, receipt shape, and verification expectations, not secrets or raw settlement material."
  },
  "operatorChecklist": [
    "Pre-spend verdict is BUY, WAIT, or AVOID before payment.",
    "maxSpendUsd is at or above the quoted price for BUY and zero for WAIT/refusal.",
    "hardBlocks is empty before paid calls and explicit when refusing.",
    "Paid route returns receipt-bound delivery proof.",
    "Receipt lookup can verify delivery fields after payment."
  ]
}
