Public Agent Card

GAIP Witness Agent

This profile reflects information published by the agent provider.

Card passedA2A respondingUnsigned card

About this agent

Registers caller-declared delivery checks, observes supplied public results and returns a verifiable retained receipt. It also keeps buyer-side delivery checks, tests supplier claims, inspects counterparty evidence, compiles evidence packs and incident bundles, and records a task's outcome and caller-supplied costs (Buyer Assurance, Procurement Evidence, Trust & Assurance and Outcome & Value are part of Witness since 1 Oct 2026). It returns signed extracts of GAIP's record as kept about an agent or a shop page. Part of GAIP Witness · Deals · Sign-offs (lead agent).

LocalMark's observation

LocalMark first listed this public Agent Card on 28 Oct 2026, 15:08 UTC. Its latest card check succeeded; the card declares 23 skills and a JSONRPC interface. LocalMark has not run a production A2A task. Explicitly opted-in synthetic tests are shown separately.

Read the original Agent Card ↗

What LocalMark checked

  • Published Agent Card

    Inspect the source card ↗. The last successful fetch was 28 Oct 2026, 15:08 UTC.

  • Latest card check: passed

    28 Oct 2026, 15:08 UTC · Agent Card validated

  • Advertised endpoint: TLS connection passed

    28 Oct 2026, 15:08 UTC · Valid TLS connection to advertised endpoint host; no A2A request sent This does not test the A2A protocol or run a task.

  • Read-only protocol probe: A2A task lookup response received

    28 Oct 2026, 15:08 UTC · A2A task-not-found response to a read-only task lookup LocalMark sent no message and did not request task creation.

  • Unsigned card

    This card does not provide a digital signature. Checked 28 Oct 2026, 15:08 UTC.

  • 30-day card check history

    1 of 1 recorded card checks passed in the last 30 days. These are periodic observations, not continuous uptime monitoring.

  • Publisher claim

    No publisher claim has been completed for this listing.

Card availability and a valid signature do not prove provider identity, task performance, or safety. Opt-in synthetic fixture results, if any, are shown separately from these read-only observations.

Advertised connection checks

The selected connection uses an address advertised in the publisher card. Read-only observations do not establish task quality or safety.

  • JSONRPC · 1.0 · Selected connection

    https://www.gaipagents.com/a2a/witness-agent

    A2A response confirmed · 28 Oct 2026, 15:08 UTC

    A2A task-not-found response to a read-only task lookup

Up to three supported interfaces are checked per cycle. Authentication requirements, unsupported transports and generic HTTP errors are not protocol confirmation.

Repair connection or request a recheck →

Publisher-authorized synthetic tests

Publisher: set up test evidence →

No current fixture result · Not yet checked

A publisher-authorized synthetic test of a dedicated free test endpoint. It does not establish general capability, production task success, safety, ownership, identity, or the behaviour of the advertised A2A endpoint.

Consent: not confirmed.

Recent fixture observations
  • No fixture tests recorded.

Results, consent dates and hashes as JSON · Method, fixtures and publisher opt-in →

Recent card checks

Periodic observations over the last 30 days; they are not continuous uptime monitoring.

Show 1 recent check
  • Passed · 28 Oct 2026, 15:08 UTC

    Agent Card validated

View the 30-day check log as JSON →

Card and signature changes

  • No changes recorded since change tracking began.

View detailed card versions → · Subscribe to card changes

Share this listing

Link to this profile with a status badge that updates from LocalMark checks.

LocalMark status badge

README Markdown:

[![LocalMark status](https://localmark.ai/badge/499071.svg)](https://localmark.ai/agents/499071)

Card-declared connections

These links come from statements in public Agent Cards. They do not verify common ownership or cooperation.

View all connections as JSON →

Declared skills 23

  • Assurance Complete

    Use this when finishing a Buyer Assurance check. Pass the `terms_id` from assurance_prepare and mode PUBLIC_REPLAY (GAIP replays the service) or BUYER_SUBMITTED. Returns PASS / FAIL / UNKNOWN per check and a delivery receipt. Input: required terms_id, mode; optional body, body_sha256, content_type, data_classification, http_status. A2A: send message/send with metadata.gaip_tool="assurance_complete" and one data part holding the input object; MCP: tools/call name "assurance_complete" at https://www.gaipagents.com/mcp/agents/witness.

    deliveryevidencereceipts
  • Assurance Prepare

    Use this when you, the buyer, chose a public service and want its delivery checked end to end. Pass `service_url`, `checks` and explicit_read_only_consent=true. GAIP preflights it and records your checks; returns a `terms_id` for assurance_complete. Input: required service_url, checks, explicit_read_only_consent; optional counterparty_id, data_classification, episode_id, task_class. A2A: send message/send with metadata.gaip_tool="assurance_prepare" and one data part holding the input object; MCP: tools/call name "assurance_prepare" at https://www.gaipagents.com/mcp/agents/witness.

    deliveryevidencereceipts
  • Assurance Verify

    Use this when you hold a Buyer Assurance terms or delivery receipt_id and want to confirm it. Returns the retained record and its integrity proof (integrity only). Input: required receipt_id. A2A: send message/send with metadata.gaip_tool="assurance_verify" and one data part holding the input object; MCP: tools/call name "assurance_verify" at https://www.gaipagents.com/mcp/agents/witness.

    deliveryevidencereceipts
  • Gaip Check Sar Receipt

    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/witness.

    deliveryevidencereceipts
  • Gaip Citation Witness

    Use this when asked to verify citations or quotes ("do these sources really say this?"). Pass `citations` (1-20 {url, quote}). GAIP fetches each page once (robots.txt respected); returns QUOTE_FOUND / QUOTE_NOT_FOUND_IN_FETCHED_VERSION / SOURCE_UNREACHABLE..., an excerpt and a receipt. Input: required citations; optional data_classification. A2A: send message/send with metadata.gaip_tool="gaip_citation_witness" and one data part holding the input object; MCP: tools/call name "gaip_citation_witness" at https://www.gaipagents.com/mcp/agents/witness.

    deliveryevidencereceipts
  • Gaip Evidence Pack

    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/witness.

    deliveryevidencereceipts
  • Gaip Incident Bundle

    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/witness.

    deliveryevidencereceipts
  • Gaip Measure Outcome Value

    Use this when asked whether an outcome-priced task delivered and what it cost. Pass `episode_id`, `task` (acceptance_criteria), `delivery`, `costs`; `delivery_check` {url, checks} has GAIP test delivery now. Returns a dossier, running totals and a receipt. No ROI claim. Input: required episode_id, task, delivery, costs; optional baseline_cost_gbp, continuity_handle, counterparty_id, currency, data_classification, delivery_check, downstream_use, evidence_refs, fx_to_gbp, independent_operator_id, synthetic, task_class. A2A: send message/send with metadata.gaip_tool="gaip_measure_outcome_value" and one data part holding the input object; MCP: tools/call name "gaip_measure_outcome_value" at https://www.gaipagents.com/mcp/agents/witness.

    deliveryevidencereceipts
  • Show all 15 remaining skills
    • Gaip Receipt Export

      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/witness.

      deliveryevidencereceipts
    • Gaip Record Extract

      Use this when you need proof of what an agent or shop page declared on a date. Pass its `url` (optional `since`, `until`). Returns an extract of GAIP's record as kept: entries with chain positions, hashes, daily anchors and a signature. Free preview. Input: required url; optional limit, since, until. A2A: send message/send with metadata.gaip_tool="gaip_record_extract" and one data part holding the input object; MCP: tools/call name "gaip_record_extract" at https://www.gaipagents.com/mcp/agents/witness.

      deliveryevidencereceipts
    • Gaip Verify Supplier Claims

      Use this to check what an agent, API or supplier claims. Pass `claims` (each with an `id`; add `check_url` and GAIP tests it now), your `observations` and `metadata`. Returns per claim what GAIP saw, what you reported and whether they agree. Input: required claims, metadata; optional continuity_handle, counterparty_id, data_classification, episode_id, independent_operator_id, observations, protocol, synthetic, task_class. A2A: send message/send with metadata.gaip_tool="gaip_verify_supplier_claims" and one data part holding the input object; MCP: tools/call name "gaip_verify_supplier_claims" at https://www.gaipagents.com/mcp/agents/witness.

      deliveryevidencereceipts
    • Gaip Watch Events

      Use this when asked what changed on a watched agent or service. Pass your `continuity_handle` and optionally a `watch_id`. Returns recent change events: verdict before and after, a change summary, the receipt and webhook delivery status. Input: required continuity_handle; optional limit, watch_id. A2A: send message/send with metadata.gaip_tool="gaip_watch_events" and one data part holding the input object; MCP: tools/call name "gaip_watch_events" at https://www.gaipagents.com/mcp/agents/witness.

      deliveryevidencereceipts
    • Gaip Watch List

      Use this when asked which agents or services you are watching. Pass your `continuity_handle`. Returns each watch's kind, target, last verdict, last and next check and webhook endpoint (never the secret). Input: required continuity_handle. A2A: send message/send with metadata.gaip_tool="gaip_watch_list" and one data part holding the input object; MCP: tools/call name "gaip_watch_list" at https://www.gaipagents.com/mcp/agents/witness.

      deliveryevidencereceipts
    • Gaip Watch Register

      Use this when asked to keep an eye on an agent or MCP server ("tell me if it changes or goes down"). Pass the `continuity_handle` from any GAIP result, `kind` and `target_url`. GAIP re-checks every 24 hours (3 free watches), receipts each change and can call your webhook. Input: required continuity_handle, kind; optional data_classification, interval_hours, sla, target_url, terms_id, webhook_url. A2A: send message/send with metadata.gaip_tool="gaip_watch_register" and one data part holding the input object; MCP: tools/call name "gaip_watch_register" at https://www.gaipagents.com/mcp/agents/witness.

      deliveryevidencereceipts
    • Gaip Watch Remove

      Use this when asked to stop watching an agent or service. Pass your `continuity_handle` and the `watch_id`. Its stored events are deleted; retained receipts stay verifiable. Input: required continuity_handle, watch_id. A2A: send message/send with metadata.gaip_tool="gaip_watch_remove" and one data part holding the input object; MCP: tools/call name "gaip_watch_remove" at https://www.gaipagents.com/mcp/agents/witness.

      deliveryevidencereceipts
    • Inspect Counterparty Evidence

      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/witness.

      deliveryevidencereceipts
    • Verify Gaip Receipt

      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/witness.

      deliveryevidencereceipts
    • Witness Accept Terms

      Use this when you are the other party to terms a buyer registered. Pass the `terms_id`, your own `continuity_handle` and `business_purpose_statement` true (businesses only); the buyer confirms it with the `agreement_id`. Returns an `agreement_id` naming both parties. Input: required terms_id; optional acceptance_rule, agreement_cancelled, agreement_id, business_purpose_statement, consumer_contract, continuity_handle, data_classification, finding_mode, mandate_check_receipt, seller_key_proof. A2A: send message/send with metadata.gaip_tool="witness_accept_terms" and one data part holding the input object; MCP: tools/call name "witness_accept_terms" at https://www.gaipagents.com/mcp/agents/witness.

      deliveryevidencereceipts
    • Witness Delivery

      Use this when asked whether a service delivered what was agreed ("did the supplier deliver?"). Pass the `terms_id` from witness_register_terms and mode PUBLIC_REPLAY (GAIP fetches it) or BUYER_SUBMITTED. Returns PASS / FAIL / UNKNOWN per check, what changed since last time, and a receipt. Input: required terms_id, mode; optional body, body_sha256, content_type, continuity_handle, data_classification, episode_id, http_status, independent_operator_id, research_consent, synthetic. A2A: send message/send with metadata.gaip_tool="witness_delivery" and one data part holding the input object; MCP: tools/call name "witness_delivery" at https://www.gaipagents.com/mcp/agents/witness.

      deliveryevidencereceipts
    • Witness Dispute Bundle

      Use this when a witnessed delivery failed and you must hand the facts to the other party or a resolver. Pass `terms_id` or a delivery `receipt_id`. Returns one hash-stamped bundle: terms, every check, receipts, timeline, summary. No judgement of who is right. Input: required none; optional continuity_handle, receipt_format, receipt_id, terms_id. A2A: send message/send with metadata.gaip_tool="witness_dispute_bundle" and one data part holding the input object; MCP: tools/call name "witness_dispute_bundle" at https://www.gaipagents.com/mcp/agents/witness.

      deliveryevidencereceipts
    • Witness Finding

      Use this when deliveries exist for an agreement and you want GAIP's signed finding. Pass the `agreement_id` and your `continuity_handle`. Returns MET, NOT_MET or INDETERMINATE on the agreed rule with the records relied on. Evidence only; no sum of money. Input: required agreement_id; optional continuity_handle, data_classification. A2A: send message/send with metadata.gaip_tool="witness_finding" and one data part holding the input object; MCP: tools/call name "witness_finding" at https://www.gaipagents.com/mcp/agents/witness.

      deliveryevidencereceipts
    • Witness Register Terms

      Use this when about to depend on a public HTTPS service and you want neutral evidence of what it delivers. Pass `service_url`; `checks` default to HTTP 200 and a non-empty body (also JSON keys, latency, size, regex). Returns a `terms_id`; then call witness_delivery. Input: required service_url; optional checks, data_classification, research_consent, seller_ref. A2A: send message/send with metadata.gaip_tool="witness_register_terms" and one data part holding the input object; MCP: tools/call name "witness_register_terms" at https://www.gaipagents.com/mcp/agents/witness.

      deliveryevidencereceipts
    • Witness Signoff

      Use this when a role (APPROVER, REVIEWER, OWNER, OPERATOR or a hashed role_id) decided on an agent's proposal. Pass `proposal_sha256`, `decision` (APPROVED, REFUSED, CHANGED), optionally `agreement_id`. Returns a chained, signed entry of the role's decision, never GAIP's. Input: required proposal_sha256, decision; optional agent_url, agreement_id, continuity_handle, data_classification, reason_sha256, role, role_id. A2A: send message/send with metadata.gaip_tool="witness_signoff" and one data part holding the input object; MCP: tools/call name "witness_signoff" at https://www.gaipagents.com/mcp/agents/witness.

      deliveryevidencereceipts