{
  "agent_card": {
    "capabilities": {
      "extendedAgentCard": false,
      "pushNotifications": false,
      "stateTransitionHistory": false,
      "streaming": false
    },
    "defaultInputModes": [
      "application/json"
    ],
    "defaultOutputModes": [
      "application/json"
    ],
    "description": "Now part of GAIP Witness (agreed terms, delivery, receipts, disputes and evidence). It stays callable here with the same tools; see https://www.gaipagents.com/agents/witness. Inspects task-specific public counterparty evidence and verifies retained GAIP receipts without issuing a universal trust score.",
    "documentationUrl": "https://www.gaipagents.com/agents/trust-assurance",
    "gaip": {
      "agentId": "trust-assurance",
      "authority": "PUBLIC_NON_PERSONAL_ZERO_PRICE_BOUNDED_NO_SPEND_NO_PAYMENT_NO_CONTRACT",
      "automaticEvidenceCredit": false,
      "discovery": {
        "aiCatalog": "https://www.gaipagents.com/.well-known/ai-catalog.json",
        "listingKit": "https://www.gaipagents.com/v1/free/discovery/listing-kit",
        "llms": "https://www.gaipagents.com/llms.txt",
        "llmsFull": "https://www.gaipagents.com/llms-full.txt",
        "mcpServerCard": "https://www.gaipagents.com/mcp/server-card",
        "openapi": "https://www.gaipagents.com/openapi.json",
        "products": "https://www.gaipagents.com/v1/free/products"
      },
      "distributionBundle": "https://www.gaipagents.com/v1/distribution/agents/trust-assurance",
      "durableReceiptRequiredBeforeSuccess": true,
      "howToCall": {
        "a2a": "POST JSON-RPC message/send (A2A 0.3) or SendMessage (A2A 1.0) to https://www.gaipagents.com/a2a/trust-assurance. Put the tool name (underscores, e.g. \"inspect_counterparty_evidence\") in message.metadata.gaip_tool and the input object in one data part (0.3: {\"kind\": \"data\", \"data\": {...}}; 1.0: {\"data\": {...}} with role ROLE_USER). Without gaip_tool the data part must match one of this agent's tools. Text parts are never converted into a task.",
        "allowedTools": [
          "inspect_counterparty_evidence",
          "gaip_receipt_export",
          "verify_gaip_receipt",
          "gaip_evidence_pack",
          "gaip_incident_bundle",
          "gaip_check_sar_receipt"
        ],
        "example": {
          "id": 1,
          "jsonrpc": "2.0",
          "method": "message/send",
          "params": {
            "message": {
              "kind": "message",
              "messageId": "example-1",
              "metadata": {
                "gaip_tool": "inspect_counterparty_evidence"
              },
              "parts": [
                {
                  "data": {
                    "counterparty_id": "example-weather-agent",
                    "observations": [
                      {
                        "claim": "Publishes a public weather_forecast skill",
                        "evidence_digest": "3f0a9c1e5b7d2468ace013579bdf2468ace013579bdf2468ace013579bdf2468",
                        "lifecycle_state": "observed",
                        "observed_at": "2026-09-27T12:00:00Z",
                        "source": "https://forecast.example.com/.well-known/agent-card.json"
                      },
                      {
                        "claim": "Returned a London forecast in 1.2 s",
                        "lifecycle_state": "OBSERVED",
                        "observed_at": "2026-09-27T12:05:00Z",
                        "source": "caller_task_log"
                      }
                    ],
                    "task_class": "weather_forecast"
                  },
                  "kind": "data"
                }
              ],
              "role": "user"
            }
          }
        },
        "mcp": "POST tools/call to https://www.gaipagents.com/mcp/agents/trust-assurance",
        "primaryTool": "inspect_counterparty_evidence"
      },
      "legal": {
        "corrections": "https://www.gaipagents.com/corrections",
        "methodology": "https://www.gaipagents.com/methodology",
        "privacyPolicy": "https://www.gaipagents.com/privacy",
        "status": "DRAFT_PENDING_LEGAL_REVIEW",
        "termsOfService": "https://www.gaipagents.com/terms"
      },
      "mcpServerCard": "https://www.gaipagents.com/mcp/agents/trust-assurance/server-card",
      "mcpUrl": "https://www.gaipagents.com/mcp/agents/trust-assurance",
      "priceGbp": 0,
      "product": {
        "foldedInto": "witness",
        "kind": "PRODUCT",
        "listed": false,
        "productId": "witness",
        "productName": "Witness \u00b7 Deals \u00b7 Sign-offs",
        "role": "FOLDED",
        "roleLabel": "folded in, still callable",
        "status": "PUBLIC_FREE",
        "url": "https://www.gaipagents.com/v1/free/products#witness"
      }
    },
    "iconUrl": "https://www.gaipagents.com/assets/agents/trust-assurance.svg",
    "name": "GAIP Trust & Assurance Agent",
    "preferredTransport": "JSONRPC",
    "protocolVersion": "1.0",
    "provider": {
      "organization": "GAIP",
      "url": "https://www.gaipagents.com"
    },
    "securityRequirements": [],
    "securitySchemes": {},
    "skills": [
      {
        "description": "Use this when asked what evidence exists about an agent before delegating to it. Pass its `counterparty_id` and any `observations`. Returns task-specific evidence coverage, conflicts, gaps and GAIP's own earlier checks of it, with a receipt. Never a trust score or recommendation. Input: required none; optional continuity_handle, counterparty_id, data_classification, episode_id, independent_operator_id, max_age_days, observations, synthetic, task_class. A2A: send message/send with metadata.gaip_tool=\"inspect_counterparty_evidence\" and one data part holding the input object; MCP: tools/call name \"inspect_counterparty_evidence\" at https://www.gaipagents.com/mcp/agents/trust-assurance.",
        "examples": [
          "{\"counterparty_id\": \"example-weather-agent\", \"observations\": [{\"claim\": \"Publishes a public weather_forecast skill\", \"evidence_digest\": \"3f0a9c1e5b7d2468ace013579bdf2468ace013579bdf2468ace013579bdf2468\", \"lifecycle_state\": \"observed\", \"observed_at\": \"2026-09-27T12:00:00Z\", \"source\": \"https://forecast.example.com/.well-known/agent-card.json\"}, {\"claim\": \"Returned a London forecast in 1.2 s\", \"lifecycle_state\": \"OBSERVED\", \"observed_at\": \"2026-09-27T12:05:00Z\", \"source\": \"caller_task_log\"}], \"task_class\": \"weather_forecast\"}"
        ],
        "id": "inspect-counterparty-evidence",
        "inputModes": [
          "application/json"
        ],
        "name": "Inspect Counterparty Evidence",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "trust",
          "assurance",
          "receipts"
        ]
      },
      {
        "description": "Use this when you need a GAIP receipt in another format. Pass `receipt_id` and `format`: x402 (attestation style), erc8004 (validation-response shape) or vc (W3C-VC-like JSON-LD). Ed25519-signed when the runtime key is available; hash chain and Merkle proof; no on-chain write. Input: required receipt_id, format. A2A: send message/send with metadata.gaip_tool=\"gaip_receipt_export\" and one data part holding the input object; MCP: tools/call name \"gaip_receipt_export\" at https://www.gaipagents.com/mcp/agents/trust-assurance.",
        "examples": [
          "{\"chain\": [{\"agent_id\": \"trust-assurance\", \"arguments\": {\"counterparty_id\": \"example-weather-agent\", \"observations\": [{\"claim\": \"Publishes a public weather_forecast skill\", \"evidence_digest\": \"3f0a9c1e5b7d2468ace013579bdf2468ace013579bdf2468ace013579bdf2468\", \"lifecycle_state\": \"observed\", \"observed_at\": \"2026-09-27T12:00:00Z\", \"source\": \"https://forecast.example.com/.well-known/agent-card.json\"}, {\"claim\": \"Returned a London forecast in 1.2 s\", \"lifecycle_state\": \"OBSERVED\", \"observed_at\": \"2026-09-27T12:05:00Z\", \"source\": \"caller_task_log\"}], \"task_class\": \"weather_forecast\"}, \"keep_from_result\": \"receipt_id\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/trust-assurance\", \"step\": 1, \"tool\": \"inspect_counterparty_evidence\"}, {\"agent_id\": \"trust-assurance\", \"arguments\": {\"format\": \"x402\", \"receipt_id\": \"<receipt_id from step 1 (inspect_counterparty_evidence)>\"}, \"keep_from_result\": \"result\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/trust-assurance\", \"step\": 2, \"tool\": \"gaip_receipt_export\"}], \"note\": \"Run the steps in order; replace each angle-bracket value with the named field from the result of the named earlier step.\"}"
        ],
        "id": "gaip-receipt-export",
        "inputModes": [
          "application/json"
        ],
        "name": "Gaip Receipt Export",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "trust",
          "assurance",
          "receipts"
        ]
      },
      {
        "description": "Use this when you hold a GAIP receipt_id and want to confirm it (\"is this receipt genuine?\"). Returns the retained record, hash chain and Merkle inclusion proof. Integrity only: it does not make the underlying claim true. Input: required receipt_id; optional continuity_handle, data_classification, episode_id, independent_operator_id, synthetic. A2A: send message/send with metadata.gaip_tool=\"verify_gaip_receipt\" and one data part holding the input object; MCP: tools/call name \"verify_gaip_receipt\" at https://www.gaipagents.com/mcp/agents/trust-assurance.",
        "examples": [
          "{\"chain\": [{\"agent_id\": \"trust-assurance\", \"arguments\": {\"counterparty_id\": \"example-weather-agent\", \"observations\": [{\"claim\": \"Publishes a public weather_forecast skill\", \"evidence_digest\": \"3f0a9c1e5b7d2468ace013579bdf2468ace013579bdf2468ace013579bdf2468\", \"lifecycle_state\": \"observed\", \"observed_at\": \"2026-09-27T12:00:00Z\", \"source\": \"https://forecast.example.com/.well-known/agent-card.json\"}, {\"claim\": \"Returned a London forecast in 1.2 s\", \"lifecycle_state\": \"OBSERVED\", \"observed_at\": \"2026-09-27T12:05:00Z\", \"source\": \"caller_task_log\"}], \"task_class\": \"weather_forecast\"}, \"keep_from_result\": \"receipt_id\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/trust-assurance\", \"step\": 1, \"tool\": \"inspect_counterparty_evidence\"}, {\"agent_id\": \"trust-assurance\", \"arguments\": {\"receipt_id\": \"<receipt_id from step 1 (inspect_counterparty_evidence)>\"}, \"keep_from_result\": \"result\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/trust-assurance\", \"step\": 2, \"tool\": \"verify_gaip_receipt\"}], \"note\": \"Run the steps in order; replace each angle-bracket value with the named field from the result of the named earlier step.\"}"
        ],
        "id": "verify-gaip-receipt",
        "inputModes": [
          "application/json"
        ],
        "name": "Verify Gaip Receipt",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "trust",
          "assurance",
          "receipts"
        ]
      },
      {
        "description": "Use this when an insurer, auditor or buyer asks what evidence exists about an agent or supplier. Pass its `subject` (public id or https URL). Returns conformance, watch, witness, repair and incident records with Merkle proofs, plus gaps. A compilation, not certification or advice. Input: required subject; optional requester, scope. A2A: send message/send with metadata.gaip_tool=\"gaip_evidence_pack\" and one data part holding the input object; MCP: tools/call name \"gaip_evidence_pack\" at https://www.gaipagents.com/mcp/agents/trust-assurance.",
        "examples": [
          "{\"requester\": {\"purpose\": \"INSURER\"}, \"scope\": {\"max_items\": 50, \"since\": \"2026-09-01\"}, \"subject\": {\"counterparty_id\": \"example-weather-agent\"}}"
        ],
        "id": "gaip-evidence-pack",
        "inputModes": [
          "application/json"
        ],
        "name": "Gaip Evidence Pack",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "trust",
          "assurance",
          "receipts"
        ]
      },
      {
        "description": "Use this when something went wrong with an agent and you need the facts in order. Pass the `receipt_ids` you hold and attributed `observations`. Returns a verified, source-attributed timeline with an EU AI Act Art. 73 reference aid. No fault, cause or liability finding. Input: required none; optional ai_system_ref, data_classification, observations, receipt_ids, title. A2A: send message/send with metadata.gaip_tool=\"gaip_incident_bundle\" and one data part holding the input object; MCP: tools/call name \"gaip_incident_bundle\" at https://www.gaipagents.com/mcp/agents/trust-assurance.",
        "examples": [
          "{\"chain\": [{\"agent_id\": \"trust-assurance\", \"arguments\": {\"counterparty_id\": \"example-weather-agent\", \"observations\": [{\"claim\": \"Publishes a public weather_forecast skill\", \"evidence_digest\": \"3f0a9c1e5b7d2468ace013579bdf2468ace013579bdf2468ace013579bdf2468\", \"lifecycle_state\": \"observed\", \"observed_at\": \"2026-09-27T12:00:00Z\", \"source\": \"https://forecast.example.com/.well-known/agent-card.json\"}, {\"claim\": \"Returned a London forecast in 1.2 s\", \"lifecycle_state\": \"OBSERVED\", \"observed_at\": \"2026-09-27T12:05:00Z\", \"source\": \"caller_task_log\"}], \"task_class\": \"weather_forecast\"}, \"keep_from_result\": \"receipt_id\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/trust-assurance\", \"step\": 1, \"tool\": \"inspect_counterparty_evidence\"}, {\"agent_id\": \"trust-assurance\", \"arguments\": {\"ai_system_ref\": \"example-weather-agent\", \"observations\": [{\"observed_at_utc\": \"2026-09-27T10:00:00Z\", \"source\": \"our uptime monitor\", \"source_type\": \"AUTOMATED_MONITOR\", \"statement\": \"HTTP 503 from the forecast endpoint for 12 minutes\"}], \"receipt_ids\": [\"<receipt_id from step 1 (inspect_counterparty_evidence)>\"], \"title\": \"Forecast endpoint returned errors\"}, \"keep_from_result\": \"result\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/trust-assurance\", \"step\": 2, \"tool\": \"gaip_incident_bundle\"}], \"note\": \"Run the steps in order; replace each angle-bracket value with the named field from the result of the named earlier step.\"}"
        ],
        "id": "gaip-incident-bundle",
        "inputModes": [
          "application/json"
        ],
        "name": "Gaip Incident Bundle",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "trust",
          "assurance",
          "receipts"
        ]
      },
      {
        "description": "Use this when handed an x402 SAR-shaped receipt (draft proposal shape; may change). Pass `sar_receipt`, optionally the issuer's `public_key`. Returns missing fields, whether receipt_id matches the core and whether the signature checks out against that key. Input: required sar_receipt; optional public_key. A2A: send message/send with metadata.gaip_tool=\"gaip_check_sar_receipt\" and one data part holding the input object; MCP: tools/call name \"gaip_check_sar_receipt\" at https://www.gaipagents.com/mcp/agents/trust-assurance.",
        "examples": [
          "{\"public_key\": \"Y8BpzlWPH3EPRQziEPRBeLS1lJBF4xEo9WaxTNbzNp0\", \"sar_receipt\": {\"confidence\": 1.0, \"reason_code\": \"SPEC_MATCH\", \"receipt_id\": \"sha256:17146cdeb5aba1c269130348cdc7d3d96ae55f6e048b81d3baa59d4e3f3b188b\", \"receipt_version\": \"0.1\", \"sig\": \"ogilW-bjlCbYkwwUAIrg_zm_Wuoc6EiRgeErs0RL7llP7FWyX43-LgozZFyCjCXgsViK-A4_aroOo16Q4uvTCg\", \"sig_alg\": \"Ed25519\", \"task_id_hash\": \"sha256:c8b36982316351a28e040a6520df2092c2c87a4ea611c123d04993074b2b6f1d\", \"ts\": \"2026-10-01T09:00:00Z\", \"verdict\": \"PASS\", \"verifier_kid\": \"ef654fc8b615b51c\"}}"
        ],
        "id": "gaip-check-sar-receipt",
        "inputModes": [
          "application/json"
        ],
        "name": "Gaip Check Sar Receipt",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "trust",
          "assurance",
          "receipts"
        ]
      }
    ],
    "supportedInterfaces": [
      {
        "protocolBinding": "JSONRPC",
        "protocolVersion": "1.0",
        "url": "https://www.gaipagents.com/a2a/trust-assurance"
      }
    ],
    "url": "https://www.gaipagents.com/a2a/trust-assurance",
    "version": "1.0.0"
  },
  "agent_id": "trust-assurance",
  "agentverse": {
    "a2a_agent_card": "https://www.gaipagents.com/agents/trust-assurance/.well-known/agent-card.json",
    "a2a_endpoint": "https://www.gaipagents.com/a2a/trust-assurance",
    "agent_id": "trust-assurance",
    "chat_protocol_required": true,
    "description": "Now part of GAIP Witness (agreed terms, delivery, receipts, disputes and evidence). It stays callable here with the same tools; see https://www.gaipagents.com/agents/witness. Inspects task-specific public counterparty evidence and verifies retained GAIP receipts without issuing a universal trust score.",
    "name": "GAIP Trust & Assurance Agent",
    "price_gbp": 0,
    "product": {
      "foldedInto": "witness",
      "kind": "PRODUCT",
      "listed": false,
      "productId": "witness",
      "productName": "Witness \u00b7 Deals \u00b7 Sign-offs",
      "role": "FOLDED",
      "roleLabel": "folded in, still callable",
      "status": "PUBLIC_FREE",
      "url": "https://www.gaipagents.com/v1/free/products#witness"
    },
    "proof_boundary": "This public profile is ready for registration; Agentverse discovery is not claimed until a registry receipt exists.",
    "protocols": [
      "A2A",
      "MCP",
      "HTTPS"
    ],
    "public": true,
    "publication_approval": "FOUNDER_GRANTED_2026-09-24",
    "registration_state": "PENDING_AGENTVERSE_IDENTITY_LINK",
    "schema_version": "gaip.agentverse.profile.v2",
    "tags": [
      "trust",
      "assurance",
      "receipts"
    ]
  },
  "coo_reporting": "ENABLED",
  "engineering_reliability_monitoring": "ENABLED",
  "erc8004": {
    "active": true,
    "description": "Now part of GAIP Witness (agreed terms, delivery, receipts, disputes and evidence). It stays callable here with the same tools; see https://www.gaipagents.com/agents/witness. Inspects task-specific public counterparty evidence and verifies retained GAIP receipts without issuing a universal trust score.",
    "gaip": {
      "agent_id": "trust-assurance",
      "mainnet_claimed": false,
      "onchain_state": "PENDING_WALLET_SIGNED_REGISTRATION",
      "spend_authorized": false,
      "target_network": "BASE_SEPOLIA"
    },
    "image": "https://www.gaipagents.com/assets/agents/trust-assurance.svg",
    "name": "GAIP Trust & Assurance Agent",
    "registrations": [],
    "services": [
      {
        "endpoint": "https://www.gaipagents.com/agents/trust-assurance",
        "name": "web"
      },
      {
        "endpoint": "https://www.gaipagents.com/agents/trust-assurance/.well-known/agent-card.json",
        "name": "A2A",
        "version": "1.0"
      },
      {
        "endpoint": "https://www.gaipagents.com/mcp/agents/trust-assurance",
        "name": "MCP",
        "version": "2025-06-18"
      },
      {
        "endpoint": "https://www.gaipagents.com/v1/distribution/oasf/trust-assurance.json",
        "name": "OASF",
        "version": "1.0.0"
      }
    ],
    "supportedTrust": [
      "reputation"
    ],
    "type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
    "x402Support": false
  },
  "external_acceptance_receipts": [
    {
      "evidence_url": "https://github.com/tjcgraham-rgb/-gaip-agent-to-art-prototype/actions/runs/36324732597",
      "name": "io.github.tjcgraham-rgb/gaip-trust-assurance",
      "surface": "OFFICIAL_MCP_REGISTRY",
      "version": "1.0.0"
    }
  ],
  "generated_at_utc": "2026-10-21T17:25:47.500499+00:00",
  "mcp": {
    "description": "Now part of GAIP Witness (agreed terms, delivery, receipts, disputes and evidence). It stays callable here with the same tools; see https://www.gaipagents.com/agents/witness. Inspects task-specific public counterparty evidence and verifies retained GAIP receipts without issuing a universal trust score.",
    "endpoint": "https://www.gaipagents.com/mcp/agents/trust-assurance",
    "name": "io.github.tjcgraham-rgb/gaip-trust-assurance",
    "privacyPolicy": "https://www.gaipagents.com/privacy",
    "product": {
      "foldedInto": "witness",
      "kind": "PRODUCT",
      "listed": false,
      "productId": "witness",
      "productName": "Witness \u00b7 Deals \u00b7 Sign-offs",
      "role": "FOLDED",
      "roleLabel": "folded in, still callable",
      "status": "PUBLIC_FREE",
      "url": "https://www.gaipagents.com/v1/free/products#witness"
    },
    "protocolVersion": "2025-06-18",
    "publication": {
      "acceptanceNotImplied": true,
      "descriptorLive": true,
      "officialMcpRegistry": "PENDING_INDIVIDUAL_REGISTRY_ACCEPTANCE"
    },
    "registryVersion": "1.5.0",
    "repository": {
      "source": "github",
      "url": "https://github.com/tjcgraham-rgb/-gaip-agent-to-art-prototype"
    },
    "schema_version": "gaip.agent-mcp-descriptor.v1",
    "serverCard": "https://www.gaipagents.com/mcp/agents/trust-assurance/server-card",
    "termsOfService": "https://www.gaipagents.com/terms",
    "title": "GAIP Trust & Assurance Agent",
    "tools": [
      {
        "annotations": {
          "destructiveHint": false,
          "openWorldHint": false,
          "readOnlyHint": true
        },
        "description": "Inspect supplied task-specific counterparty observations without producing a universal trust score.",
        "inputSchema": {
          "additionalProperties": true,
          "properties": {
            "continuity_handle": {
              "additionalProperties": false,
              "properties": {
                "continuity_id": {
                  "type": "string"
                },
                "token": {
                  "type": "string"
                }
              },
              "required": [
                "continuity_id",
                "token"
              ],
              "type": "object"
            },
            "counterparty_id": {
              "type": "string"
            },
            "data_classification": {
              "enum": [
                "PUBLIC",
                "NON_PERSONAL_PUBLIC"
              ],
              "type": "string"
            },
            "episode_id": {
              "type": "string"
            },
            "independent_operator_id": {
              "type": "string"
            },
            "max_age_days": {
              "description": "Optional freshness window (default 30): GAIP history records older than this are STALE and do not count toward evidence_sufficiency.",
              "maximum": 365,
              "minimum": 1,
              "type": "integer"
            },
            "observations": {
              "items": {
                "type": "object"
              },
              "type": "array"
            },
            "synthetic": {
              "type": "boolean"
            },
            "task_class": {
              "type": "string"
            }
          },
          "required": [
            "data_classification",
            "counterparty_id",
            "task_class"
          ],
          "type": "object"
        },
        "name": "inspect_counterparty_evidence"
      },
      {
        "annotations": {
          "destructiveHint": false,
          "idempotentHint": true,
          "openWorldHint": false,
          "readOnlyHint": true
        },
        "description": "Export one GAIP receipt as x402 Settlement-Attestation-style JSON, an ERC-8004 validation-response-shaped document for off-chain publication, or an unsigned W3C-VC-like JSON-LD envelope. Ed25519-signed when the runtime key is available (otherwise unsigned, with the reason); integrity also via hash chain, Merkle proof and a SHA-256 digest_manifest; no on-chain write.",
        "inputSchema": {
          "additionalProperties": false,
          "properties": {
            "format": {
              "enum": [
                "x402",
                "erc8004",
                "vc"
              ],
              "type": "string"
            },
            "receipt_id": {
              "description": "The receipt_id exactly as an earlier GAIP result returned it. Have none? Call with any id: the refusal lists example_receipt_ids from GAIP's own public records.",
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            }
          },
          "required": [
            "receipt_id",
            "format"
          ],
          "type": "object"
        },
        "name": "gaip_receipt_export",
        "title": "Export a GAIP receipt"
      },
      {
        "annotations": {
          "destructiveHint": false,
          "openWorldHint": false,
          "readOnlyHint": true
        },
        "description": "Look up a retained GAIP receipt by ID and verify its hash chain and Merkle inclusion proof without creating adoption credit.",
        "inputSchema": {
          "additionalProperties": true,
          "properties": {
            "continuity_handle": {
              "additionalProperties": false,
              "properties": {
                "continuity_id": {
                  "type": "string"
                },
                "token": {
                  "type": "string"
                }
              },
              "required": [
                "continuity_id",
                "token"
              ],
              "type": "object"
            },
            "data_classification": {
              "enum": [
                "PUBLIC",
                "NON_PERSONAL_PUBLIC"
              ],
              "type": "string"
            },
            "episode_id": {
              "type": "string"
            },
            "independent_operator_id": {
              "type": "string"
            },
            "receipt_id": {
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "synthetic": {
              "type": "boolean"
            }
          },
          "required": [
            "receipt_id"
          ],
          "type": "object"
        },
        "name": "verify_gaip_receipt"
      },
      {
        "annotations": {
          "destructiveHint": false,
          "idempotentHint": true,
          "openWorldHint": false,
          "readOnlyHint": true
        },
        "description": "Compile GAIP's retained evidence about one agent or supplier (conformance, watch events, witness results, repair and incident receipts) with a verify URL and Merkle proof per item, a manifest of counts, time span and gaps, and a framework reference table. An evidence compilation only: not a certification, audit opinion, insurance or legal advice.",
        "inputSchema": {
          "additionalProperties": false,
          "properties": {
            "requester": {
              "additionalProperties": false,
              "properties": {
                "continuity_handle": {
                  "properties": {
                    "continuity_id": {
                      "type": "string"
                    },
                    "token": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "continuity_id",
                    "token"
                  ],
                  "type": "object"
                },
                "purpose": {
                  "enum": [
                    "INSURER",
                    "AUDITOR",
                    "OPERATOR",
                    "BUYER",
                    "UNSPECIFIED"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "scope": {
              "additionalProperties": false,
              "properties": {
                "categories": {
                  "items": {
                    "enum": [
                      "conformance",
                      "watch",
                      "witness",
                      "repair",
                      "incident",
                      "supplier_checks"
                    ],
                    "type": "string"
                  },
                  "type": "array"
                },
                "max_items": {
                  "maximum": 200,
                  "minimum": 1,
                  "type": "integer"
                },
                "receipt_ids": {
                  "items": {
                    "type": "string"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "since": {
                  "type": "string"
                },
                "until": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "subject": {
              "description": "The agent or supplier: its public id or https URL. Never a person.",
              "oneOf": [
                {
                  "maxLength": 256,
                  "type": "string"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "counterparty_id": {
                      "type": "string"
                    },
                    "ref": {
                      "type": "string"
                    },
                    "seller_ref": {
                      "type": "string"
                    },
                    "url": {
                      "format": "uri",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              ]
            }
          },
          "required": [
            "subject"
          ],
          "type": "object"
        },
        "name": "gaip_evidence_pack",
        "title": "Build an evidence pack"
      },
      {
        "annotations": {
          "destructiveHint": false,
          "idempotentHint": true,
          "openWorldHint": false,
          "readOnlyHint": true
        },
        "description": "Verify supplied GAIP receipts, order a timeline and attribute each observation to its source, with an EU AI Act Article 73 reference aid. No fault, liability or causation finding; not a regulatory filing or legal advice.",
        "inputSchema": {
          "additionalProperties": false,
          "properties": {
            "ai_system_ref": {
              "maxLength": 256,
              "type": "string"
            },
            "data_classification": {
              "default": "PUBLIC",
              "enum": [
                "PUBLIC",
                "NON_PERSONAL_PUBLIC"
              ],
              "type": "string"
            },
            "observations": {
              "items": {
                "additionalProperties": false,
                "properties": {
                  "observed_at_utc": {
                    "type": "string"
                  },
                  "receipt_id": {
                    "type": "string"
                  },
                  "source": {
                    "maxLength": 120,
                    "type": "string"
                  },
                  "source_type": {
                    "enum": [
                      "AUTOMATED_MONITOR",
                      "PUBLIC_RECORD",
                      "REQUESTER",
                      "THIRD_PARTY"
                    ],
                    "type": "string"
                  },
                  "statement": {
                    "maxLength": 2000,
                    "type": "string"
                  }
                },
                "required": [
                  "source",
                  "statement"
                ],
                "type": "object"
              },
              "maxItems": 50,
              "type": "array"
            },
            "receipt_ids": {
              "items": {
                "type": "string"
              },
              "maxItems": 50,
              "type": "array"
            },
            "title": {
              "maxLength": 120,
              "type": "string"
            }
          },
          "type": "object"
        },
        "name": "gaip_incident_bundle",
        "title": "Build an incident evidence bundle"
      },
      {
        "annotations": {
          "destructiveHint": false,
          "idempotentHint": true,
          "openWorldHint": false,
          "readOnlyHint": true
        },
        "description": "Check an x402 SAR-shaped receipt (draft proposal shape, issue #1195; may change): fields present, receipt_id recomputed from the core fields, and whether the Ed25519 signature checks out against a public key you supply or GAIP's published key named by verifier_kid. Fetches and keeps nothing; payment fields are not acted on.",
        "inputSchema": {
          "additionalProperties": false,
          "properties": {
            "public_key": {
              "description": "Optional: the issuer's Ed25519 public key, raw 32 bytes base64url or a JWK {kty: OKP, crv: Ed25519, x}. Omit to use GAIP's published keys.",
              "oneOf": [
                {
                  "maxLength": 512,
                  "type": "string"
                },
                {
                  "type": "object"
                }
              ]
            },
            "sar_receipt": {
              "description": "The SAR receipt object (or a whole gaip_receipt_export x402 result).",
              "type": "object"
            }
          },
          "required": [
            "sar_receipt"
          ],
          "type": "object"
        },
        "name": "gaip_check_sar_receipt",
        "title": "Check an x402 SAR receipt"
      }
    ],
    "transport": "streamable-http",
    "version": "1.0.0"
  },
  "oasf": {
    "authors": [
      "GAIP"
    ],
    "created_at": "2026-09-24T00:00:00Z",
    "description": "Now part of GAIP Witness (agreed terms, delivery, receipts, disputes and evidence). It stays callable here with the same tools; see https://www.gaipagents.com/agents/witness. Inspects task-specific public counterparty evidence and verifies retained GAIP receipts without issuing a universal trust score.",
    "domains": [],
    "extensions": {
      "gaip": {
        "agent_id": "trust-assurance",
        "mcp": "https://www.gaipagents.com/mcp/agents/trust-assurance",
        "product": "witness",
        "publication_state": "PENDING_AGNTCY_DIRECTORY_RECEIPT"
      }
    },
    "locators": [
      {
        "type": "source_code",
        "urls": [
          "https://github.com/tjcgraham-rgb/-gaip-agent-to-art-prototype"
        ]
      },
      {
        "type": "documentation",
        "urls": [
          "https://www.gaipagents.com/agents/trust-assurance"
        ]
      },
      {
        "type": "a2a_agent_card",
        "urls": [
          "https://www.gaipagents.com/agents/trust-assurance/.well-known/agent-card.json"
        ]
      }
    ],
    "modules": [],
    "name": "GAIP Trust & Assurance Agent",
    "schema_version": "1.0.0",
    "skills": [
      {
        "id": 1004,
        "name": "agent_orchestration/agent_coordination"
      }
    ],
    "version": "1.0.0"
  },
  "publication_truth": "OFFICIAL_MCP_REGISTRY_PUBLISHED_OTHER_EXTERNAL_ACCEPTANCE_PENDING",
  "schema_version": "gaip.ten-agent-distribution-bundle.v1"
}