Skip to content
Back to Froggit.ai

Card snapshot

froggit.ai · 2026-07-17 13:29:10 UTC · e2748e0def11279583b10a7795b8aa4d32176e13ff05341efdc0768deb03fa25

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "name": "Froggit.ai",
  "description": "Froggit.ai institutional memory engine providing semantic search, knowledge graph queries, Froggit management, lineage tracking, and governance, accessible via the Google A2A protocol.",
  "url": "https://froggit.ai/a2a",
  "supportedInterfaces": [
    {
      "url": "https://froggit.ai/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0",
      "tenant": null
    }
  ],
  "protocolVersions": [
    "1.0"
  ],
  "version": "1.0.0",
  "iconUrl": "https://froggit.ai/froggit-icon-1024.png",
  "documentationUrl": "https://froggit.ai/llms-full.txt",
  "provider": {
    "organization": "Frowg Systems, Inc.",
    "url": "https://froggit.ai"
  },
  "commercial": {
    "offers_url": "https://froggit.ai/offers.json"
  },
  "capabilities": {
    "streaming": true,
    "pushNotifications": true,
    "stateTransitionHistory": true,
    "extensions": [
      {
        "uri": "https://github.com/google-agentic-commerce/ap2/v1",
        "description": "Agent Payments Protocol (AP2) commerce discovery and payment-intent interoperability.",
        "required": false,
        "params": {
          "roles": [
            "merchant"
          ],
          "capabilities": [
            "commerce_discovery",
            "payment_intent"
          ]
        }
      },
      {
        "uri": "https://froggit.ai/llms-full.txt#forge-a2a-extensions",
        "description": "Froggit.ai governance, lineage, and Froggit provenance metadata.",
        "required": false
      }
    ],
    "extendedAgentCard": true
  },
  "securitySchemes": {
    "bearerKey": {
      "type": "http",
      "name": null,
      "in": null,
      "scheme": "bearer",
      "description": "Bearer token using a Froggit.ai Agent Gateway API key (forge_agent_*) or a Personal Access Token (forge_pat_*). Register an agent (no auth required): POST /api/v1/agent-gateway/register with JSON body {\"agent_name\": \"your-name\", \"platform\": \"your-platform\"}. The API key is returned once; store it securely. Send as: Authorization: Bearer YOUR_KEY."
    },
    "xApiKey": {
      "type": "apiKey",
      "name": "X-API-Key",
      "in": "header",
      "scheme": null,
      "description": "Froggit.ai Agent Gateway API key (forge_agent_*) or PAT (forge_pat_*) sent as the X-API-Key header."
    }
  },
  "security": [
    {
      "bearerKey": []
    },
    {
      "xApiKey": []
    }
  ],
  "securityRequirements": [
    {
      "bearerKey": []
    },
    {
      "xApiKey": []
    }
  ],
  "skills": [
    {
      "id": "search_knowledge",
      "name": "Search Knowledge",
      "description": "Semantic search across the Froggit knowledge graph.",
      "tags": [
        "search",
        "knowledge",
        "semantic",
        "froggit"
      ],
      "examples": [
        "Search for Froggits about machine learning",
        "Find knowledge related to climate change"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "url": "https://froggit.ai/llms-full.txt#skill-search_knowledge",
      "minTrustLevel": "basic"
    },
    {
      "id": "query_graph",
      "name": "Query Graph",
      "description": "Traverse the knowledge graph from a given Froggit. Accepts a ``start_node`` (alias: ``node``) at the data-part level \u2014 NOT nested under ``params``. Optional ``depth`` (1-3, default 1) controls traversal hops. Example data part: ``{\"skill\":\"query_graph\",\"start_node\":\"<froggit-uuid>\",\"depth\":1}``. For natural-language queries use the ``POST /graph/query`` endpoint instead; this skill is for deterministic UUID-anchored traversal.",
      "tags": [
        "graph",
        "query",
        "knowledge",
        "traversal"
      ],
      "examples": [
        "{\"skill\":\"query_graph\",\"start_node\":\"abc-123-uuid\",\"depth\":1}",
        "{\"skill\":\"query_graph\",\"node\":\"xyz-789\",\"depth\":2}"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "url": "https://froggit.ai/llms-full.txt#skill-query_graph",
      "minTrustLevel": "basic"
    },
    {
      "id": "read_capsule",
      "name": "Read Froggit",
      "description": "Read a specific Froggit by its ID.",
      "tags": [
        "froggit",
        "capsule",
        "read",
        "knowledge"
      ],
      "examples": [
        "Read Froggit abc-123",
        "Get the content of Froggit xyz-789"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "url": "https://froggit.ai/llms-full.txt#skill-read_capsule",
      "minTrustLevel": "basic"
    },
    {
      "id": "list_capsules",
      "name": "List Froggits",
      "description": "List and filter Froggits in the knowledge graph.",
      "tags": [
        "froggit",
        "capsule",
        "list",
        "browse"
      ],
      "examples": [
        "List recent Froggits",
        "Show Froggits of type research"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "url": "https://froggit.ai/llms-full.txt#skill-list_capsules",
      "minTrustLevel": "basic"
    },
    {
      "id": "create_capsule",
      "name": "Create Froggit",
      "description": "Create a new Froggit in the knowledge graph.",
      "tags": [
        "froggit",
        "capsule",
        "create",
        "write"
      ],
      "examples": [
        "Create a Froggit about quantum computing"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "url": "https://froggit.ai/llms-full.txt#skill-create_capsule",
      "minTrustLevel": "basic"
    },
    {
      "id": "view_lineage",
      "name": "View Lineage",
      "description": "View provenance and lineage information for a Froggit.",
      "tags": [
        "lineage",
        "provenance",
        "audit"
      ],
      "examples": [
        "Show the lineage of Froggit abc-123"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "url": "https://froggit.ai/llms-full.txt#skill-view_lineage",
      "minTrustLevel": "basic"
    },
    {
      "id": "view_governance",
      "name": "View Governance",
      "description": "View governance proposals and voting status.",
      "tags": [
        "governance",
        "proposals",
        "voting"
      ],
      "examples": [
        "Show active governance proposals",
        "What is the status of proposal P-42?"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain",
        "application/json"
      ],
      "url": "https://froggit.ai/llms-full.txt#skill-view_governance",
      "minTrustLevel": "verified"
    }
  ],
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "supportsAuthenticatedExtendedCard": true,
  "signing_keys": [
    {
      "kid": "forge-ed25519-swulWNWpEqrkotCJ",
      "algorithm": "ed25519",
      "kty": "OKP",
      "crv": "Ed25519",
      "x": "llJ8e15iyl2zH7lNKIYYGdkIdDjP73t2Ig9WHSIoOZY",
      "alg": "EdDSA",
      "use": "sig",
      "public_key_b64": "llJ8e15iyl2zH7lNKIYYGdkIdDjP73t2Ig9WHSIoOZY=",
      "fingerprint": "b30ba558d5a912aae4a2d089cab38a7cafeab62e0e2b6edab25a68f2d6bda8d3",
      "created_at": "2026-06-11T21:20:22+00:00",
      "expires_at": null,
      "rotated_from": null
    }
  ],
  "signatures": [
    {
      "kid": "forge-ed25519-swulWNWpEqrkotCJ",
      "alg": "EdDSA",
      "protected": "eyJhbGciOiJFZERTQSIsImN0eSI6ImFwcGxpY2F0aW9uL2pzb24iLCJraWQiOiJmb3JnZS1lZDI1NTE5LXN3dWxXTldwRXFya290Q0oiLCJ0eXAiOiJhMmEtYWdlbnQtY2FyZCtqd3MifQ",
      "payload": "eyJjYXBhYmlsaXRpZXMiOnsiZXh0ZW5kZWRBZ2VudENhcmQiOnRydWUsImV4dGVuc2lvbnMiOlt7ImRlc2NyaXB0aW9uIjoiQWdlbnQgUGF5bWVudHMgUHJvdG9jb2wgKEFQMikgY29tbWVyY2UgZGlzY292ZXJ5IGFuZCBwYXltZW50LWludGVudCBpbnRlcm9wZXJhYmlsaXR5LiIsInBhcmFtcyI6eyJjYXBhYmlsaXRpZXMiOlsiY29tbWVyY2VfZGlzY292ZXJ5IiwicGF5bWVudF9pbnRlbnQiXSwicm9sZXMiOlsibWVyY2hhbnQiXX0sInJlcXVpcmVkIjpmYWxzZSwidXJpIjoiaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS1hZ2VudGljLWNvbW1lcmNlL2FwMi92MSJ9LHsiZGVzY3JpcHRpb24iOiJGcm9nZ2l0LmFpIGdvdmVybmFuY2UsIGxpbmVhZ2UsIGFuZCBGcm9nZ2l0IHByb3ZlbmFuY2UgbWV0YWRhdGEuIiwicmVxdWlyZWQiOmZhbHNlLCJ1cmkiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNmb3JnZS1hMmEtZXh0ZW5zaW9ucyJ9XSwicHVzaE5vdGlmaWNhdGlvbnMiOnRydWUsInN0YXRlVHJhbnNpdGlvbkhpc3RvcnkiOnRydWUsInN0cmVhbWluZyI6dHJ1ZX0sImNvbW1lcmNpYWwiOnsib2ZmZXJzX3VybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9vZmZlcnMuanNvbiJ9LCJkZWZhdWx0SW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIiwiYXBwbGljYXRpb24vanNvbiJdLCJkZWZhdWx0T3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwiZGVzY3JpcHRpb24iOiJGcm9nZ2l0LmFpIGluc3RpdHV0aW9uYWwgbWVtb3J5IGVuZ2luZSBwcm92aWRpbmcgc2VtYW50aWMgc2VhcmNoLCBrbm93bGVkZ2UgZ3JhcGggcXVlcmllcywgRnJvZ2dpdCBtYW5hZ2VtZW50LCBsaW5lYWdlIHRyYWNraW5nLCBhbmQgZ292ZXJuYW5jZSwgYWNjZXNzaWJsZSB2aWEgdGhlIEdvb2dsZSBBMkEgcHJvdG9jb2wuIiwiZG9jdW1lbnRhdGlvblVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0IiwiaWNvblVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9mcm9nZ2l0LWljb24tMTAyNC5wbmciLCJuYW1lIjoiRnJvZ2dpdC5haSIsInByb3RvY29sVmVyc2lvbnMiOlsiMS4wIl0sInByb3ZpZGVyIjp7Im9yZ2FuaXphdGlvbiI6IkZyb3dnIFN5c3RlbXMsIEluYy4iLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkifSwic2VjdXJpdHkiOlt7ImJlYXJlcktleSI6W119LHsieEFwaUtleSI6W119XSwic2VjdXJpdHlSZXF1aXJlbWVudHMiOlt7ImJlYXJlcktleSI6W119LHsieEFwaUtleSI6W119XSwic2VjdXJpdHlTY2hlbWVzIjp7ImJlYXJlcktleSI6eyJkZXNjcmlwdGlvbiI6IkJlYXJlciB0b2tlbiB1c2luZyBhIEZyb2dnaXQuYWkgQWdlbnQgR2F0ZXdheSBBUEkga2V5IChmb3JnZV9hZ2VudF8qKSBvciBhIFBlcnNvbmFsIEFjY2VzcyBUb2tlbiAoZm9yZ2VfcGF0XyopLiBSZWdpc3RlciBhbiBhZ2VudCAobm8gYXV0aCByZXF1aXJlZCk6IFBPU1QgL2FwaS92MS9hZ2VudC1nYXRld2F5L3JlZ2lzdGVyIHdpdGggSlNPTiBib2R5IHtcImFnZW50X25hbWVcIjogXCJ5b3VyLW5hbWVcIiwgXCJwbGF0Zm9ybVwiOiBcInlvdXItcGxhdGZvcm1cIn0uIFRoZSBBUEkga2V5IGlzIHJldHVybmVkIG9uY2U7IHN0b3JlIGl0IHNlY3VyZWx5LiBTZW5kIGFzOiBBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9LRVkuIiwiaW4iOm51bGwsIm5hbWUiOm51bGwsInNjaGVtZSI6ImJlYXJlciIsInR5cGUiOiJodHRwIn0sInhBcGlLZXkiOnsiZGVzY3JpcHRpb24iOiJGcm9nZ2l0LmFpIEFnZW50IEdhdGV3YXkgQVBJIGtleSAoZm9yZ2VfYWdlbnRfKikgb3IgUEFUIChmb3JnZV9wYXRfKikgc2VudCBhcyB0aGUgWC1BUEktS2V5IGhlYWRlci4iLCJpbiI6ImhlYWRlciIsIm5hbWUiOiJYLUFQSS1LZXkiLCJzY2hlbWUiOm51bGwsInR5cGUiOiJhcGlLZXkifX0sInNpZ25pbmdfa2V5cyI6W3siYWxnIjoiRWREU0EiLCJhbGdvcml0aG0iOiJlZDI1NTE5IiwiY3JlYXRlZF9hdCI6IjIwMjYtMDYtMTFUMjE6MjA6MjIrMDA6MDAiLCJjcnYiOiJFZDI1NTE5IiwiZXhwaXJlc19hdCI6bnVsbCwiZmluZ2VycHJpbnQiOiJiMzBiYTU1OGQ1YTkxMmFhZTRhMmQwODljYWIzOGE3Y2FmZWFiNjJlMGUyYjZlZGFiMjVhNjhmMmQ2YmRhOGQzIiwia2lkIjoiZm9yZ2UtZWQyNTUxOS1zd3VsV05XcEVxcmtvdENKIiwia3R5IjoiT0tQIiwicHVibGljX2tleV9iNjQiOiJsbEo4ZTE1aXlsMnpIN2xOS0lZWUdka0lkRGpQNzN0MklnOVdIU0lvT1pZPSIsInJvdGF0ZWRfZnJvbSI6bnVsbCwidXNlIjoic2lnIiwieCI6ImxsSjhlMTVpeWwyekg3bE5LSVlZR2RrSWREalA3M3QySWc5V0hTSW9PWlkifV0sInNraWxscyI6W3siZGVzY3JpcHRpb24iOiJTZW1hbnRpYyBzZWFyY2ggYWNyb3NzIHRoZSBGcm9nZ2l0IGtub3dsZWRnZSBncmFwaC4iLCJleGFtcGxlcyI6WyJTZWFyY2ggZm9yIEZyb2dnaXRzIGFib3V0IG1hY2hpbmUgbGVhcm5pbmciLCJGaW5kIGtub3dsZWRnZSByZWxhdGVkIHRvIGNsaW1hdGUgY2hhbmdlIl0sImlkIjoic2VhcmNoX2tub3dsZWRnZSIsImlucHV0TW9kZXMiOlsidGV4dC9wbGFpbiJdLCJtaW5UcnVzdExldmVsIjoiYmFzaWMiLCJuYW1lIjoiU2VhcmNoIEtub3dsZWRnZSIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsic2VhcmNoIiwia25vd2xlZGdlIiwic2VtYW50aWMiLCJmcm9nZ2l0Il0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLXNlYXJjaF9rbm93bGVkZ2UifSx7ImRlc2NyaXB0aW9uIjoiVHJhdmVyc2UgdGhlIGtub3dsZWRnZSBncmFwaCBmcm9tIGEgZ2l2ZW4gRnJvZ2dpdC4gQWNjZXB0cyBhIGBgc3RhcnRfbm9kZWBgIChhbGlhczogYGBub2RlYGApIGF0IHRoZSBkYXRhLXBhcnQgbGV2ZWwg4oCUIE5PVCBuZXN0ZWQgdW5kZXIgYGBwYXJhbXNgYC4gT3B0aW9uYWwgYGBkZXB0aGBgICgxLTMsIGRlZmF1bHQgMSkgY29udHJvbHMgdHJhdmVyc2FsIGhvcHMuIEV4YW1wbGUgZGF0YSBwYXJ0OiBgYHtcInNraWxsXCI6XCJxdWVyeV9ncmFwaFwiLFwic3RhcnRfbm9kZVwiOlwiPGZyb2dnaXQtdXVpZD5cIixcImRlcHRoXCI6MX1gYC4gRm9yIG5hdHVyYWwtbGFuZ3VhZ2UgcXVlcmllcyB1c2UgdGhlIGBgUE9TVCAvZ3JhcGgvcXVlcnlgYCBlbmRwb2ludCBpbnN0ZWFkOyB0aGlzIHNraWxsIGlzIGZvciBkZXRlcm1pbmlzdGljIFVVSUQtYW5jaG9yZWQgdHJhdmVyc2FsLiIsImV4YW1wbGVzIjpbIntcInNraWxsXCI6XCJxdWVyeV9ncmFwaFwiLFwic3RhcnRfbm9kZVwiOlwiYWJjLTEyMy11dWlkXCIsXCJkZXB0aFwiOjF9Iiwie1wic2tpbGxcIjpcInF1ZXJ5X2dyYXBoXCIsXCJub2RlXCI6XCJ4eXotNzg5XCIsXCJkZXB0aFwiOjJ9Il0sImlkIjoicXVlcnlfZ3JhcGgiLCJpbnB1dE1vZGVzIjpbInRleHQvcGxhaW4iXSwibWluVHJ1c3RMZXZlbCI6ImJhc2ljIiwibmFtZSI6IlF1ZXJ5IEdyYXBoIiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJncmFwaCIsInF1ZXJ5Iiwia25vd2xlZGdlIiwidHJhdmVyc2FsIl0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLXF1ZXJ5X2dyYXBoIn0seyJkZXNjcmlwdGlvbiI6IlJlYWQgYSBzcGVjaWZpYyBGcm9nZ2l0IGJ5IGl0cyBJRC4iLCJleGFtcGxlcyI6WyJSZWFkIEZyb2dnaXQgYWJjLTEyMyIsIkdldCB0aGUgY29udGVudCBvZiBGcm9nZ2l0IHh5ei03ODkiXSwiaWQiOiJyZWFkX2NhcHN1bGUiLCJpbnB1dE1vZGVzIjpbInRleHQvcGxhaW4iXSwibWluVHJ1c3RMZXZlbCI6ImJhc2ljIiwibmFtZSI6IlJlYWQgRnJvZ2dpdCIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiZnJvZ2dpdCIsImNhcHN1bGUiLCJyZWFkIiwia25vd2xlZGdlIl0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLXJlYWRfY2Fwc3VsZSJ9LHsiZGVzY3JpcHRpb24iOiJMaXN0IGFuZCBmaWx0ZXIgRnJvZ2dpdHMgaW4gdGhlIGtub3dsZWRnZSBncmFwaC4iLCJleGFtcGxlcyI6WyJMaXN0IHJlY2VudCBGcm9nZ2l0cyIsIlNob3cgRnJvZ2dpdHMgb2YgdHlwZSByZXNlYXJjaCJdLCJpZCI6Imxpc3RfY2Fwc3VsZXMiLCJpbnB1dE1vZGVzIjpbInRleHQvcGxhaW4iXSwibWluVHJ1c3RMZXZlbCI6ImJhc2ljIiwibmFtZSI6Ikxpc3QgRnJvZ2dpdHMiLCJvdXRwdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIiwiYXBwbGljYXRpb24vanNvbiJdLCJ0YWdzIjpbImZyb2dnaXQiLCJjYXBzdWxlIiwibGlzdCIsImJyb3dzZSJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC1saXN0X2NhcHN1bGVzIn0seyJkZXNjcmlwdGlvbiI6IkNyZWF0ZSBhIG5ldyBGcm9nZ2l0IGluIHRoZSBrbm93bGVkZ2UgZ3JhcGguIiwiZXhhbXBsZXMiOlsiQ3JlYXRlIGEgRnJvZ2dpdCBhYm91dCBxdWFudHVtIGNvbXB1dGluZyJdLCJpZCI6ImNyZWF0ZV9jYXBzdWxlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJDcmVhdGUgRnJvZ2dpdCIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiZnJvZ2dpdCIsImNhcHN1bGUiLCJjcmVhdGUiLCJ3cml0ZSJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC1jcmVhdGVfY2Fwc3VsZSJ9LHsiZGVzY3JpcHRpb24iOiJWaWV3IHByb3ZlbmFuY2UgYW5kIGxpbmVhZ2UgaW5mb3JtYXRpb24gZm9yIGEgRnJvZ2dpdC4iLCJleGFtcGxlcyI6WyJTaG93IHRoZSBsaW5lYWdlIG9mIEZyb2dnaXQgYWJjLTEyMyJdLCJpZCI6InZpZXdfbGluZWFnZSIsImlucHV0TW9kZXMiOlsidGV4dC9wbGFpbiJdLCJtaW5UcnVzdExldmVsIjoiYmFzaWMiLCJuYW1lIjoiVmlldyBMaW5lYWdlIiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJsaW5lYWdlIiwicHJvdmVuYW5jZSIsImF1ZGl0Il0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLXZpZXdfbGluZWFnZSJ9LHsiZGVzY3JpcHRpb24iOiJWaWV3IGdvdmVybmFuY2UgcHJvcG9zYWxzIGFuZCB2b3Rpbmcgc3RhdHVzLiIsImV4YW1wbGVzIjpbIlNob3cgYWN0aXZlIGdvdmVybmFuY2UgcHJvcG9zYWxzIiwiV2hhdCBpcyB0aGUgc3RhdHVzIG9mIHByb3Bvc2FsIFAtNDI_Il0sImlkIjoidmlld19nb3Zlcm5hbmNlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJ2ZXJpZmllZCIsIm5hbWUiOiJWaWV3IEdvdmVybmFuY2UiLCJvdXRwdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIiwiYXBwbGljYXRpb24vanNvbiJdLCJ0YWdzIjpbImdvdmVybmFuY2UiLCJwcm9wb3NhbHMiLCJ2b3RpbmciXSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2xsbXMtZnVsbC50eHQjc2tpbGwtdmlld19nb3Zlcm5hbmNlIn1dLCJzdXBwb3J0ZWRJbnRlcmZhY2VzIjpbeyJwcm90b2NvbEJpbmRpbmciOiJKU09OUlBDIiwicHJvdG9jb2xWZXJzaW9uIjoiMS4wIiwidGVuYW50IjpudWxsLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvYTJhIn1dLCJzdXBwb3J0c0F1dGhlbnRpY2F0ZWRFeHRlbmRlZENhcmQiOnRydWUsInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9hMmEiLCJ2ZXJzaW9uIjoiMS4wLjAifQ",
      "signature": "Nsor8XCukFYhhzCaJTKDmFJBEQQjN2zxo13MGWp5w6jQfu3s0K_uMQngdMVj73IdIHacq2RV3XbV8VjLNIeXAw",
      "jws": "eyJhbGciOiJFZERTQSIsImN0eSI6ImFwcGxpY2F0aW9uL2pzb24iLCJraWQiOiJmb3JnZS1lZDI1NTE5LXN3dWxXTldwRXFya290Q0oiLCJ0eXAiOiJhMmEtYWdlbnQtY2FyZCtqd3MifQ.eyJjYXBhYmlsaXRpZXMiOnsiZXh0ZW5kZWRBZ2VudENhcmQiOnRydWUsImV4dGVuc2lvbnMiOlt7ImRlc2NyaXB0aW9uIjoiQWdlbnQgUGF5bWVudHMgUHJvdG9jb2wgKEFQMikgY29tbWVyY2UgZGlzY292ZXJ5IGFuZCBwYXltZW50LWludGVudCBpbnRlcm9wZXJhYmlsaXR5LiIsInBhcmFtcyI6eyJjYXBhYmlsaXRpZXMiOlsiY29tbWVyY2VfZGlzY292ZXJ5IiwicGF5bWVudF9pbnRlbnQiXSwicm9sZXMiOlsibWVyY2hhbnQiXX0sInJlcXVpcmVkIjpmYWxzZSwidXJpIjoiaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS1hZ2VudGljLWNvbW1lcmNlL2FwMi92MSJ9LHsiZGVzY3JpcHRpb24iOiJGcm9nZ2l0LmFpIGdvdmVybmFuY2UsIGxpbmVhZ2UsIGFuZCBGcm9nZ2l0IHByb3ZlbmFuY2UgbWV0YWRhdGEuIiwicmVxdWlyZWQiOmZhbHNlLCJ1cmkiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNmb3JnZS1hMmEtZXh0ZW5zaW9ucyJ9XSwicHVzaE5vdGlmaWNhdGlvbnMiOnRydWUsInN0YXRlVHJhbnNpdGlvbkhpc3RvcnkiOnRydWUsInN0cmVhbWluZyI6dHJ1ZX0sImNvbW1lcmNpYWwiOnsib2ZmZXJzX3VybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9vZmZlcnMuanNvbiJ9LCJkZWZhdWx0SW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIiwiYXBwbGljYXRpb24vanNvbiJdLCJkZWZhdWx0T3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwiZGVzY3JpcHRpb24iOiJGcm9nZ2l0LmFpIGluc3RpdHV0aW9uYWwgbWVtb3J5IGVuZ2luZSBwcm92aWRpbmcgc2VtYW50aWMgc2VhcmNoLCBrbm93bGVkZ2UgZ3JhcGggcXVlcmllcywgRnJvZ2dpdCBtYW5hZ2VtZW50LCBsaW5lYWdlIHRyYWNraW5nLCBhbmQgZ292ZXJuYW5jZSwgYWNjZXNzaWJsZSB2aWEgdGhlIEdvb2dsZSBBMkEgcHJvdG9jb2wuIiwiZG9jdW1lbnRhdGlvblVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0IiwiaWNvblVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9mcm9nZ2l0LWljb24tMTAyNC5wbmciLCJuYW1lIjoiRnJvZ2dpdC5haSIsInByb3RvY29sVmVyc2lvbnMiOlsiMS4wIl0sInByb3ZpZGVyIjp7Im9yZ2FuaXphdGlvbiI6IkZyb3dnIFN5c3RlbXMsIEluYy4iLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkifSwic2VjdXJpdHkiOlt7ImJlYXJlcktleSI6W119LHsieEFwaUtleSI6W119XSwic2VjdXJpdHlSZXF1aXJlbWVudHMiOlt7ImJlYXJlcktleSI6W119LHsieEFwaUtleSI6W119XSwic2VjdXJpdHlTY2hlbWVzIjp7ImJlYXJlcktleSI6eyJkZXNjcmlwdGlvbiI6IkJlYXJlciB0b2tlbiB1c2luZyBhIEZyb2dnaXQuYWkgQWdlbnQgR2F0ZXdheSBBUEkga2V5IChmb3JnZV9hZ2VudF8qKSBvciBhIFBlcnNvbmFsIEFjY2VzcyBUb2tlbiAoZm9yZ2VfcGF0XyopLiBSZWdpc3RlciBhbiBhZ2VudCAobm8gYXV0aCByZXF1aXJlZCk6IFBPU1QgL2FwaS92MS9hZ2VudC1nYXRld2F5L3JlZ2lzdGVyIHdpdGggSlNPTiBib2R5IHtcImFnZW50X25hbWVcIjogXCJ5b3VyLW5hbWVcIiwgXCJwbGF0Zm9ybVwiOiBcInlvdXItcGxhdGZvcm1cIn0uIFRoZSBBUEkga2V5IGlzIHJldHVybmVkIG9uY2U7IHN0b3JlIGl0IHNlY3VyZWx5LiBTZW5kIGFzOiBBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9LRVkuIiwiaW4iOm51bGwsIm5hbWUiOm51bGwsInNjaGVtZSI6ImJlYXJlciIsInR5cGUiOiJodHRwIn0sInhBcGlLZXkiOnsiZGVzY3JpcHRpb24iOiJGcm9nZ2l0LmFpIEFnZW50IEdhdGV3YXkgQVBJIGtleSAoZm9yZ2VfYWdlbnRfKikgb3IgUEFUIChmb3JnZV9wYXRfKikgc2VudCBhcyB0aGUgWC1BUEktS2V5IGhlYWRlci4iLCJpbiI6ImhlYWRlciIsIm5hbWUiOiJYLUFQSS1LZXkiLCJzY2hlbWUiOm51bGwsInR5cGUiOiJhcGlLZXkifX0sInNpZ25pbmdfa2V5cyI6W3siYWxnIjoiRWREU0EiLCJhbGdvcml0aG0iOiJlZDI1NTE5IiwiY3JlYXRlZF9hdCI6IjIwMjYtMDYtMTFUMjE6MjA6MjIrMDA6MDAiLCJjcnYiOiJFZDI1NTE5IiwiZXhwaXJlc19hdCI6bnVsbCwiZmluZ2VycHJpbnQiOiJiMzBiYTU1OGQ1YTkxMmFhZTRhMmQwODljYWIzOGE3Y2FmZWFiNjJlMGUyYjZlZGFiMjVhNjhmMmQ2YmRhOGQzIiwia2lkIjoiZm9yZ2UtZWQyNTUxOS1zd3VsV05XcEVxcmtvdENKIiwia3R5IjoiT0tQIiwicHVibGljX2tleV9iNjQiOiJsbEo4ZTE1aXlsMnpIN2xOS0lZWUdka0lkRGpQNzN0MklnOVdIU0lvT1pZPSIsInJvdGF0ZWRfZnJvbSI6bnVsbCwidXNlIjoic2lnIiwieCI6ImxsSjhlMTVpeWwyekg3bE5LSVlZR2RrSWREalA3M3QySWc5V0hTSW9PWlkifV0sInNraWxscyI6W3siZGVzY3JpcHRpb24iOiJTZW1hbnRpYyBzZWFyY2ggYWNyb3NzIHRoZSBGcm9nZ2l0IGtub3dsZWRnZSBncmFwaC4iLCJleGFtcGxlcyI6WyJTZWFyY2ggZm9yIEZyb2dnaXRzIGFib3V0IG1hY2hpbmUgbGVhcm5pbmciLCJGaW5kIGtub3dsZWRnZSByZWxhdGVkIHRvIGNsaW1hdGUgY2hhbmdlIl0sImlkIjoic2VhcmNoX2tub3dsZWRnZSIsImlucHV0TW9kZXMiOlsidGV4dC9wbGFpbiJdLCJtaW5UcnVzdExldmVsIjoiYmFzaWMiLCJuYW1lIjoiU2VhcmNoIEtub3dsZWRnZSIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsic2VhcmNoIiwia25vd2xlZGdlIiwic2VtYW50aWMiLCJmcm9nZ2l0Il0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLXNlYXJjaF9rbm93bGVkZ2UifSx7ImRlc2NyaXB0aW9uIjoiVHJhdmVyc2UgdGhlIGtub3dsZWRnZSBncmFwaCBmcm9tIGEgZ2l2ZW4gRnJvZ2dpdC4gQWNjZXB0cyBhIGBgc3RhcnRfbm9kZWBgIChhbGlhczogYGBub2RlYGApIGF0IHRoZSBkYXRhLXBhcnQgbGV2ZWwg4oCUIE5PVCBuZXN0ZWQgdW5kZXIgYGBwYXJhbXNgYC4gT3B0aW9uYWwgYGBkZXB0aGBgICgxLTMsIGRlZmF1bHQgMSkgY29udHJvbHMgdHJhdmVyc2FsIGhvcHMuIEV4YW1wbGUgZGF0YSBwYXJ0OiBgYHtcInNraWxsXCI6XCJxdWVyeV9ncmFwaFwiLFwic3RhcnRfbm9kZVwiOlwiPGZyb2dnaXQtdXVpZD5cIixcImRlcHRoXCI6MX1gYC4gRm9yIG5hdHVyYWwtbGFuZ3VhZ2UgcXVlcmllcyB1c2UgdGhlIGBgUE9TVCAvZ3JhcGgvcXVlcnlgYCBlbmRwb2ludCBpbnN0ZWFkOyB0aGlzIHNraWxsIGlzIGZvciBkZXRlcm1pbmlzdGljIFVVSUQtYW5jaG9yZWQgdHJhdmVyc2FsLiIsImV4YW1wbGVzIjpbIntcInNraWxsXCI6XCJxdWVyeV9ncmFwaFwiLFwic3RhcnRfbm9kZVwiOlwiYWJjLTEyMy11dWlkXCIsXCJkZXB0aFwiOjF9Iiwie1wic2tpbGxcIjpcInF1ZXJ5X2dyYXBoXCIsXCJub2RlXCI6XCJ4eXotNzg5XCIsXCJkZXB0aFwiOjJ9Il0sImlkIjoicXVlcnlfZ3JhcGgiLCJpbnB1dE1vZGVzIjpbInRleHQvcGxhaW4iXSwibWluVHJ1c3RMZXZlbCI6ImJhc2ljIiwibmFtZSI6IlF1ZXJ5IEdyYXBoIiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJncmFwaCIsInF1ZXJ5Iiwia25vd2xlZGdlIiwidHJhdmVyc2FsIl0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLXF1ZXJ5X2dyYXBoIn0seyJkZXNjcmlwdGlvbiI6IlJlYWQgYSBzcGVjaWZpYyBGcm9nZ2l0IGJ5IGl0cyBJRC4iLCJleGFtcGxlcyI6WyJSZWFkIEZyb2dnaXQgYWJjLTEyMyIsIkdldCB0aGUgY29udGVudCBvZiBGcm9nZ2l0IHh5ei03ODkiXSwiaWQiOiJyZWFkX2NhcHN1bGUiLCJpbnB1dE1vZGVzIjpbInRleHQvcGxhaW4iXSwibWluVHJ1c3RMZXZlbCI6ImJhc2ljIiwibmFtZSI6IlJlYWQgRnJvZ2dpdCIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiZnJvZ2dpdCIsImNhcHN1bGUiLCJyZWFkIiwia25vd2xlZGdlIl0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLXJlYWRfY2Fwc3VsZSJ9LHsiZGVzY3JpcHRpb24iOiJMaXN0IGFuZCBmaWx0ZXIgRnJvZ2dpdHMgaW4gdGhlIGtub3dsZWRnZSBncmFwaC4iLCJleGFtcGxlcyI6WyJMaXN0IHJlY2VudCBGcm9nZ2l0cyIsIlNob3cgRnJvZ2dpdHMgb2YgdHlwZSByZXNlYXJjaCJdLCJpZCI6Imxpc3RfY2Fwc3VsZXMiLCJpbnB1dE1vZGVzIjpbInRleHQvcGxhaW4iXSwibWluVHJ1c3RMZXZlbCI6ImJhc2ljIiwibmFtZSI6Ikxpc3QgRnJvZ2dpdHMiLCJvdXRwdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIiwiYXBwbGljYXRpb24vanNvbiJdLCJ0YWdzIjpbImZyb2dnaXQiLCJjYXBzdWxlIiwibGlzdCIsImJyb3dzZSJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC1saXN0X2NhcHN1bGVzIn0seyJkZXNjcmlwdGlvbiI6IkNyZWF0ZSBhIG5ldyBGcm9nZ2l0IGluIHRoZSBrbm93bGVkZ2UgZ3JhcGguIiwiZXhhbXBsZXMiOlsiQ3JlYXRlIGEgRnJvZ2dpdCBhYm91dCBxdWFudHVtIGNvbXB1dGluZyJdLCJpZCI6ImNyZWF0ZV9jYXBzdWxlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJDcmVhdGUgRnJvZ2dpdCIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiZnJvZ2dpdCIsImNhcHN1bGUiLCJjcmVhdGUiLCJ3cml0ZSJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC1jcmVhdGVfY2Fwc3VsZSJ9LHsiZGVzY3JpcHRpb24iOiJWaWV3IHByb3ZlbmFuY2UgYW5kIGxpbmVhZ2UgaW5mb3JtYXRpb24gZm9yIGEgRnJvZ2dpdC4iLCJleGFtcGxlcyI6WyJTaG93IHRoZSBsaW5lYWdlIG9mIEZyb2dnaXQgYWJjLTEyMyJdLCJpZCI6InZpZXdfbGluZWFnZSIsImlucHV0TW9kZXMiOlsidGV4dC9wbGFpbiJdLCJtaW5UcnVzdExldmVsIjoiYmFzaWMiLCJuYW1lIjoiVmlldyBMaW5lYWdlIiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJsaW5lYWdlIiwicHJvdmVuYW5jZSIsImF1ZGl0Il0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLXZpZXdfbGluZWFnZSJ9LHsiZGVzY3JpcHRpb24iOiJWaWV3IGdvdmVybmFuY2UgcHJvcG9zYWxzIGFuZCB2b3Rpbmcgc3RhdHVzLiIsImV4YW1wbGVzIjpbIlNob3cgYWN0aXZlIGdvdmVybmFuY2UgcHJvcG9zYWxzIiwiV2hhdCBpcyB0aGUgc3RhdHVzIG9mIHByb3Bvc2FsIFAtNDI_Il0sImlkIjoidmlld19nb3Zlcm5hbmNlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJ2ZXJpZmllZCIsIm5hbWUiOiJWaWV3IEdvdmVybmFuY2UiLCJvdXRwdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIiwiYXBwbGljYXRpb24vanNvbiJdLCJ0YWdzIjpbImdvdmVybmFuY2UiLCJwcm9wb3NhbHMiLCJ2b3RpbmciXSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2xsbXMtZnVsbC50eHQjc2tpbGwtdmlld19nb3Zlcm5hbmNlIn1dLCJzdXBwb3J0ZWRJbnRlcmZhY2VzIjpbeyJwcm90b2NvbEJpbmRpbmciOiJKU09OUlBDIiwicHJvdG9jb2xWZXJzaW9uIjoiMS4wIiwidGVuYW50IjpudWxsLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvYTJhIn1dLCJzdXBwb3J0c0F1dGhlbnRpY2F0ZWRFeHRlbmRlZENhcmQiOnRydWUsInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9hMmEiLCJ2ZXJzaW9uIjoiMS4wLjAifQ.Nsor8XCukFYhhzCaJTKDmFJBEQQjN2zxo13MGWp5w6jQfu3s0K_uMQngdMVj73IdIHacq2RV3XbV8VjLNIeXAw",
      "payload_hash": "02aacf8144d61dc60ff4998fd5283646c5905499a3f45ae84efdb355d255009e",
      "canonicalization": "UTF-8 JSON with sorted object keys, compact separators (',' and ':'), and ensure_ascii=False. Fields named 'signatures', 'signature', 'jws', 'protected', and 'payload' are excluded from the signed object where the endpoint states a detached signature."
    }
  ]
}