{
  "protocolVersion": "0.3.0",
  "name": "CAPPZ check service",
  "description": "Counterparty checks, payee confirmations, stage evaluations, listing drafts, subcontract scouting and Constraint Guard help — envelope drafts, shadow-report reviews, incident triage (paid, per network); deal-bound signing approvals and reputation attestations (free). Reports, verdicts, approvals and attestations are signed with Ed25519.",
  "url": "https://check.cappz.ai",
  "preferredTransport": "HTTP+JSON",
  "version": "15.38.0",
  "provider": {
    "organization": "CAPPZ",
    "url": "https://cappz.ai"
  },
  "documentationUrl": "https://github.com/CAPPZ-ai/cappz-sdk/tree/main/packages/cappz-check-worker",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": true,
    "extensions": [
      {
        "uri": "https://cappz.ai/ext/http-message-signatures/v1",
        "required": false,
        "description": "HTTP Message Signatures (RFC 9421, alg ed25519) with Content-Digest (RFC 9530), keyed by the party’s KeyZ-declared signing key on its marketplace profile. Unsigned requests are reported, not refused, unless the agent’s mandate binds a key.",
        "params": {
          "alg": "ed25519",
          "components": [
            "@method",
            "@path",
            "@authority",
            "content-digest",
            "cappz-wallet",
            "cappz-party"
          ],
          "keyDirectory": "the party profile (keyDeclaration) on the market’s public log",
          "states": [
            "verified-bound",
            "verified-unbound",
            "not-signed",
            "bad-signature",
            "revoked",
            "expired",
            "stale",
            "replayed",
            "malformed"
          ]
        }
      },
      {
        "uri": "https://cappz.ai/ext/card-signing-key/v1",
        "required": false,
        "description": "This card, reports, approvals and attestations are signed by the key published in the marketplace discovery document (/.well-known/cappz-market.json, services.counterpartyCheck.publicKey) and at GET /key: trust state published-key. No KeyZ wallet declaration names it yet."
      }
    ]
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "counterparty-check-mainnet",
      "name": "CAPPZ counterparty check (mainnet)",
      "description": "Paid per check: https://check.cappz.ai/mainnet/.well-known/agent-card.json describes it. Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/checking-xrpl-counterparties",
      "tags": [
        "paid",
        "xrpl-mainnet"
      ]
    },
    {
      "id": "counterparty-check-testnet",
      "name": "CAPPZ counterparty check (testnet)",
      "description": "Paid per check: https://check.cappz.ai/testnet/.well-known/agent-card.json describes it. Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/checking-xrpl-counterparties",
      "tags": [
        "paid",
        "xrpl-testnet"
      ]
    },
    {
      "id": "evaluate-mainnet",
      "name": "CAPPZ stage evaluator (mainnet)",
      "description": "Paid, 0.05 XRP per job: https://check.cappz.ai/mainnet/evaluate/agent. cappz-market evaluate <contract> --file <deliverable> — or POST /jobs {\"input\": {\"contractId\": \"ct-…\"}, \"file\": \"<base64>\"} → pay the stage shown → GET /jobs/<id>/stages/0/result Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/evaluating-cappz-deliverables",
      "tags": [
        "paid",
        "evaluate",
        "xrpl-mainnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "draft-mainnet",
      "name": "CAPPZ listing drafter (mainnet)",
      "description": "Paid, 0.02 XRP per job: https://check.cappz.ai/mainnet/draft/agent. cappz-market draft \"what you sell or need\" — or POST /jobs {\"input\": {\"text\": \"…\"}} → pay → GET /jobs/<id>/stages/0/result Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/drafting-cappz-listings",
      "tags": [
        "paid",
        "draft",
        "xrpl-mainnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "scout-mainnet",
      "name": "CAPPZ subcontract scout (mainnet)",
      "description": "Paid, 0.05 XRP per job: https://check.cappz.ai/mainnet/scout/agent. cappz-market scout <contract> — or POST /jobs {\"input\": {\"contractId\": \"ct-…\"}} → pay → GET /jobs/<id>/stages/0/result Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/scouting-cappz-subcontractors",
      "tags": [
        "paid",
        "scout",
        "xrpl-mainnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "envelope-mainnet",
      "name": "CAPPZ constraint envelope drafter (mainnet)",
      "description": "Paid, 0.05 XRP per job: https://check.cappz.ai/mainnet/envelope/agent. cappz-market constraints-draft --file manual.txt [--device oven-3] — or POST /jobs {\"input\": {\"text\": \"…\"}} → pay → GET /jobs/<id>/stages/0/result Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/securing-control-systems",
      "tags": [
        "paid",
        "envelope",
        "xrpl-mainnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "review-mainnet",
      "name": "CAPPZ shadow-report reviewer (mainnet)",
      "description": "Paid, 0.02 XRP per job: https://check.cappz.ai/mainnet/review/agent. cappz-market constraints-review --guard http://guard:41452 (or --report report.json) — or POST /jobs {\"input\": {\"report\": {…}}} Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/securing-control-systems",
      "tags": [
        "paid",
        "review",
        "xrpl-mainnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "triage-mainnet",
      "name": "CAPPZ incident triage (mainnet)",
      "description": "Paid, 0.02 XRP per job: https://check.cappz.ai/mainnet/triage/agent. cappz-market constraints-triage --report report.json — or POST /jobs {\"input\": {\"report\": {…}}} Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/monitoring-constraints",
      "tags": [
        "paid",
        "triage",
        "xrpl-mainnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "evaluate-testnet",
      "name": "CAPPZ stage evaluator (testnet)",
      "description": "Paid, 0.05 XRP per job: https://check.cappz.ai/testnet/evaluate/agent. cappz-market evaluate <contract> --file <deliverable> — or POST /jobs {\"input\": {\"contractId\": \"ct-…\"}, \"file\": \"<base64>\"} → pay the stage shown → GET /jobs/<id>/stages/0/result Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/evaluating-cappz-deliverables",
      "tags": [
        "paid",
        "evaluate",
        "xrpl-testnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "draft-testnet",
      "name": "CAPPZ listing drafter (testnet)",
      "description": "Paid, 0.02 XRP per job: https://check.cappz.ai/testnet/draft/agent. cappz-market draft \"what you sell or need\" — or POST /jobs {\"input\": {\"text\": \"…\"}} → pay → GET /jobs/<id>/stages/0/result Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/drafting-cappz-listings",
      "tags": [
        "paid",
        "draft",
        "xrpl-testnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "scout-testnet",
      "name": "CAPPZ subcontract scout (testnet)",
      "description": "Paid, 0.05 XRP per job: https://check.cappz.ai/testnet/scout/agent. cappz-market scout <contract> — or POST /jobs {\"input\": {\"contractId\": \"ct-…\"}} → pay → GET /jobs/<id>/stages/0/result Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/scouting-cappz-subcontractors",
      "tags": [
        "paid",
        "scout",
        "xrpl-testnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "envelope-testnet",
      "name": "CAPPZ constraint envelope drafter (testnet)",
      "description": "Paid, 0.05 XRP per job: https://check.cappz.ai/testnet/envelope/agent. cappz-market constraints-draft --file manual.txt [--device oven-3] — or POST /jobs {\"input\": {\"text\": \"…\"}} → pay → GET /jobs/<id>/stages/0/result Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/securing-control-systems",
      "tags": [
        "paid",
        "envelope",
        "xrpl-testnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "review-testnet",
      "name": "CAPPZ shadow-report reviewer (testnet)",
      "description": "Paid, 0.02 XRP per job: https://check.cappz.ai/testnet/review/agent. cappz-market constraints-review --guard http://guard:41452 (or --report report.json) — or POST /jobs {\"input\": {\"report\": {…}}} Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/securing-control-systems",
      "tags": [
        "paid",
        "review",
        "xrpl-testnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "triage-testnet",
      "name": "CAPPZ incident triage (testnet)",
      "description": "Paid, 0.02 XRP per job: https://check.cappz.ai/testnet/triage/agent. cappz-market constraints-triage --report report.json — or POST /jobs {\"input\": {\"report\": {…}}} Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/monitoring-constraints",
      "tags": [
        "paid",
        "triage",
        "xrpl-testnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "payee-mainnet",
      "name": "CAPPZ payee confirmation (mainnet)",
      "description": "Paid, 0.01 XRP platform fee + 0.1 XRP per confirmation: https://check.cappz.ai/mainnet/payee/agent. cappz-market confirm-payee <party> --address r… [--tag 7] [--amount 25] — or POST /<network>/payee/jobs {\"input\": {\"payee\": \"p-…\", \"address\": \"r…\"}} → pay the platform fee shown → POST /jobs/<id>/payments → pay the confirmation stage → GET /jobs/<id>/stages/1/result Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/confirming-payees",
      "tags": [
        "paid",
        "payee",
        "xrpl-mainnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "payee-testnet",
      "name": "CAPPZ payee confirmation (testnet)",
      "description": "Paid, 0.01 XRP platform fee + 0.1 XRP per confirmation: https://check.cappz.ai/testnet/payee/agent. cappz-market confirm-payee <party> --address r… [--tag 7] [--amount 25] — or POST /<network>/payee/jobs {\"input\": {\"payee\": \"p-…\", \"address\": \"r…\"}} → pay the platform fee shown → POST /jobs/<id>/payments → pay the confirmation stage → GET /jobs/<id>/stages/1/result Skill: https://github.com/CAPPZ-ai/cappz-sdk/tree/main/skills/confirming-payees",
      "tags": [
        "paid",
        "payee",
        "xrpl-testnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "signing-approval-mainnet",
      "name": "Deal-bound signing approval (mainnet)",
      "description": "Free: POST https://check.cappz.ai/mainnet/authorize {\"contractId\",\"milestone\",\"tx\"} → a signed approval of that exact unsigned escrow transaction, or the reasons it is refused. Sign the request (RFC 9421) with your declared key; required when your mandate binds one.",
      "tags": [
        "free",
        "approval",
        "xrpl-mainnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "signing-approval-testnet",
      "name": "Deal-bound signing approval (testnet)",
      "description": "Free: POST https://check.cappz.ai/testnet/authorize {\"contractId\",\"milestone\",\"tx\"} → a signed approval of that exact unsigned escrow transaction, or the reasons it is refused. Sign the request (RFC 9421) with your declared key; required when your mandate binds one.",
      "tags": [
        "free",
        "approval",
        "xrpl-testnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "reputation-mainnet",
      "name": "Reputation attestation (mainnet)",
      "description": "Free: GET https://check.cappz.ai/mainnet/reputation/<partyId> → a signed snapshot of the party's ledger facts, marketplace history and standing, kept separate.",
      "tags": [
        "free",
        "reputation",
        "xrpl-mainnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "reputation-testnet",
      "name": "Reputation attestation (testnet)",
      "description": "Free: GET https://check.cappz.ai/testnet/reputation/<partyId> → a signed snapshot of the party's ledger facts, marketplace history and standing, kept separate.",
      "tags": [
        "free",
        "reputation",
        "xrpl-testnet"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "supportsAuthenticatedExtendedCard": false,
  "signatures": [
    {
      "protected": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpPU0UiLCJraWQiOiIwZjZkYThiMTYwZTM2MDlkMDI1MGQ5NzBmYmJmYWRmMzExYTczMzJjYzI2ZWM3MzcxMzBkNjAyZDJjYjEwODcwIn0",
      "signature": "E98B5FJWvLbsyEeR0P-XYPmw7QQe4Gv4wzOi7wgY6QMdr3LabLsUh3SseMkUsKZb3ec1hcUWYGp6Fj5TKuXrCQ"
    }
  ]
}