{
  "schema_version": "gaip.mandate.v1",
  "publisher": "GAIP (Governed Agentic Intelligence Platform)",
  "mandates": [
    {
      "principals": [
        "55ff707f1816eb29cb5b310437970f58eae3ae075031d24ce79dc5776d23cedd"
      ],
      "agent": "https://www.gaipagents.com/mcp",
      "scopes": [
        {
          "class": "RESEARCH",
          "note": "GAIP's agents read public agent documents and shop pages."
        },
        {
          "class": "CONTACT",
          "note": "GAIP's agents answer the agents that call them and send signed webhooks to addresses their callers registered."
        }
      ],
      "valid_from": "2026-10-09",
      "valid_until": null,
      "version": "1",
      "signature": null,
      "withdrawn": false,
      "withdrawn_at": null
    },
    {
      "principals": [
        "55ff707f1816eb29cb5b310437970f58eae3ae075031d24ce79dc5776d23cedd"
      ],
      "agent": "https://www.gaipagents.com/a2a/witness-agent",
      "scopes": [
        {
          "class": "RESEARCH",
          "note": "GAIP's agents read public agent documents and shop pages."
        },
        {
          "class": "CONTACT",
          "note": "GAIP's agents answer the agents that call them and send signed webhooks to addresses their callers registered."
        }
      ],
      "valid_from": "2026-10-09",
      "valid_until": null,
      "version": "1",
      "signature": null,
      "withdrawn": false,
      "withdrawn_at": null
    }
  ],
  "principals_note": "Hashes of email:agents@gaipagents.com (listed here because GAIP's are public).",
  "format": {
    "path": "/.well-known/agent-mandates.json",
    "schema_version": "gaip.mandate.v1",
    "mandate_fields": [
      "principals (hashed keys only)",
      "agent (endpoint URL or key thumbprint)",
      "scopes (class; PURCHASE may carry limit and currency; note at most 300 characters)",
      "valid_from",
      "valid_until",
      "version",
      "signature (yours; provenance only)",
      "withdrawn",
      "withdrawn_at"
    ],
    "scope_classes": {
      "PURCHASE": "Buy on the principal's behalf, up to an optional limit in a currency (AP2: cart or payment mandate).",
      "BOOK": "Reserve or book on the principal's behalf (AP2: cart-shaped; no payment).",
      "NEGOTIATE": "Propose and accept terms on the principal's behalf.",
      "SIGN": "Sign or accept a document or agreement on the principal's behalf.",
      "PUBLISH": "Publish content or records on the principal's behalf.",
      "CONTACT": "Approach other parties on the principal's behalf.",
      "RESEARCH": "Read and gather public information on the principal's behalf."
    },
    "hash": "SHA-256 of 'gaip.agent-preference.v1:<type>:<value>' where type is email, phone, did or agent: the same key as a GAIP Preferences subject, so one key serves both records.",
    "check": "https://www.gaipagents.com/v1/free/mandates/check?principal=&agent=&scope=",
    "answers": [
      "IN_FORCE_AS_INDEXED",
      "WITHDRAWN_AS_INDEXED",
      "EXPIRED_AS_INDEXED",
      "SCOPE_NOT_COVERED",
      "NO_RECORD"
    ]
  },
  "gaip_indexing": "GAIP reads every record published at /.well-known/agent-mandates.json on the hosts it watches (weekly) and indexes it: GAIP keeps the hashed principal keys, the agent, the scope classes with any limit and currency, the dates, the withdrawal flag and where the record lives (host and location); a note is kept as a hash and a length only. A principal asked about in a check is hashed in memory and never stored or logged. Privacy notice: https://www.gaipagents.com/privacy#mandates",
  "statement": "GAIP records that a mandate was published and whether it was withdrawn, as indexed at the stated time; whether it authorised any act is a matter between the parties.",
  "no_funds": "GAIP holds no funds and moves none. A PURCHASE limit is carried exactly as the record states it and is never compared with any amount; GAIP does not see, approve or settle a payment.",
  "meaning": "What GAIP's own agents are mandated to do, by scope class: research and contact, nothing that spends. GAIP reads and indexes this record (hashes, agent, scope classes, dates and location only) weekly on every host it watches; publish your own at the same path."
}