Skip to content
Back to Froggit.ai

Card snapshot

forgecascade.org · 2026-07-13 04:26:53 UTC · d7f8144229ccd9c1c19a0d67fb6d9e89dea6813fa86373efd529654c69c3f41b

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,
    "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": []
    }
  ],
  "extensions": [
    {
      "uri": "https://froggit.ai/llms-full.txt#forge-a2a-extensions",
      "description": "Froggit.ai governance, lineage, and Froggit provenance metadata."
    }
  ],
  "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": "eyJjYXBhYmlsaXRpZXMiOnsiZXh0ZW5kZWRBZ2VudENhcmQiOnRydWUsInB1c2hOb3RpZmljYXRpb25zIjp0cnVlLCJzdGF0ZVRyYW5zaXRpb25IaXN0b3J5Ijp0cnVlLCJzdHJlYW1pbmciOnRydWV9LCJjb21tZXJjaWFsIjp7Im9mZmVyc191cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvb2ZmZXJzLmpzb24ifSwiZGVmYXVsdElucHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwiZGVmYXVsdE91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sImRlc2NyaXB0aW9uIjoiRnJvZ2dpdC5haSBpbnN0aXR1dGlvbmFsIG1lbW9yeSBlbmdpbmUgcHJvdmlkaW5nIHNlbWFudGljIHNlYXJjaCwga25vd2xlZGdlIGdyYXBoIHF1ZXJpZXMsIEZyb2dnaXQgbWFuYWdlbWVudCwgbGluZWFnZSB0cmFja2luZywgYW5kIGdvdmVybmFuY2UsIGFjY2Vzc2libGUgdmlhIHRoZSBHb29nbGUgQTJBIHByb3RvY29sLiIsImRvY3VtZW50YXRpb25VcmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCIsImV4dGVuc2lvbnMiOlt7ImRlc2NyaXB0aW9uIjoiRnJvZ2dpdC5haSBnb3Zlcm5hbmNlLCBsaW5lYWdlLCBhbmQgRnJvZ2dpdCBwcm92ZW5hbmNlIG1ldGFkYXRhLiIsInVyaSI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I2ZvcmdlLWEyYS1leHRlbnNpb25zIn1dLCJpY29uVXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2Zyb2dnaXQtaWNvbi0xMDI0LnBuZyIsIm5hbWUiOiJGcm9nZ2l0LmFpIiwicHJvdG9jb2xWZXJzaW9ucyI6WyIxLjAiXSwicHJvdmlkZXIiOnsib3JnYW5pemF0aW9uIjoiRnJvd2cgU3lzdGVtcywgSW5jLiIsInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haSJ9LCJzZWN1cml0eSI6W3siYmVhcmVyS2V5IjpbXX0seyJ4QXBpS2V5IjpbXX1dLCJzZWN1cml0eVJlcXVpcmVtZW50cyI6W3siYmVhcmVyS2V5IjpbXX0seyJ4QXBpS2V5IjpbXX1dLCJzZWN1cml0eVNjaGVtZXMiOnsiYmVhcmVyS2V5Ijp7ImRlc2NyaXB0aW9uIjoiQmVhcmVyIHRva2VuIHVzaW5nIGEgRnJvZ2dpdC5haSBBZ2VudCBHYXRld2F5IEFQSSBrZXkgKGZvcmdlX2FnZW50XyopIG9yIGEgUGVyc29uYWwgQWNjZXNzIFRva2VuIChmb3JnZV9wYXRfKikuIFJlZ2lzdGVyIGFuIGFnZW50IChubyBhdXRoIHJlcXVpcmVkKTogUE9TVCAvYXBpL3YxL2FnZW50LWdhdGV3YXkvcmVnaXN0ZXIgd2l0aCBKU09OIGJvZHkge1wiYWdlbnRfbmFtZVwiOiBcInlvdXItbmFtZVwiLCBcInBsYXRmb3JtXCI6IFwieW91ci1wbGF0Zm9ybVwifS4gVGhlIEFQSSBrZXkgaXMgcmV0dXJuZWQgb25jZTsgc3RvcmUgaXQgc2VjdXJlbHkuIFNlbmQgYXM6IEF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0tFWS4iLCJpbiI6bnVsbCwibmFtZSI6bnVsbCwic2NoZW1lIjoiYmVhcmVyIiwidHlwZSI6Imh0dHAifSwieEFwaUtleSI6eyJkZXNjcmlwdGlvbiI6IkZyb2dnaXQuYWkgQWdlbnQgR2F0ZXdheSBBUEkga2V5IChmb3JnZV9hZ2VudF8qKSBvciBQQVQgKGZvcmdlX3BhdF8qKSBzZW50IGFzIHRoZSBYLUFQSS1LZXkgaGVhZGVyLiIsImluIjoiaGVhZGVyIiwibmFtZSI6IlgtQVBJLUtleSIsInNjaGVtZSI6bnVsbCwidHlwZSI6ImFwaUtleSJ9fSwic2lnbmluZ19rZXlzIjpbeyJhbGciOiJFZERTQSIsImFsZ29yaXRobSI6ImVkMjU1MTkiLCJjcmVhdGVkX2F0IjoiMjAyNi0wNi0xMVQyMToyMDoyMiswMDowMCIsImNydiI6IkVkMjU1MTkiLCJleHBpcmVzX2F0IjpudWxsLCJmaW5nZXJwcmludCI6ImIzMGJhNTU4ZDVhOTEyYWFlNGEyZDA4OWNhYjM4YTdjYWZlYWI2MmUwZTJiNmVkYWIyNWE2OGYyZDZiZGE4ZDMiLCJraWQiOiJmb3JnZS1lZDI1NTE5LXN3dWxXTldwRXFya290Q0oiLCJrdHkiOiJPS1AiLCJwdWJsaWNfa2V5X2I2NCI6ImxsSjhlMTVpeWwyekg3bE5LSVlZR2RrSWREalA3M3QySWc5V0hTSW9PWlk9Iiwicm90YXRlZF9mcm9tIjpudWxsLCJ1c2UiOiJzaWciLCJ4IjoibGxKOGUxNWl5bDJ6SDdsTktJWVlHZGtJZERqUDczdDJJZzlXSFNJb09aWSJ9XSwic2tpbGxzIjpbeyJkZXNjcmlwdGlvbiI6IlNlbWFudGljIHNlYXJjaCBhY3Jvc3MgdGhlIEZyb2dnaXQga25vd2xlZGdlIGdyYXBoLiIsImV4YW1wbGVzIjpbIlNlYXJjaCBmb3IgRnJvZ2dpdHMgYWJvdXQgbWFjaGluZSBsZWFybmluZyIsIkZpbmQga25vd2xlZGdlIHJlbGF0ZWQgdG8gY2xpbWF0ZSBjaGFuZ2UiXSwiaWQiOiJzZWFyY2hfa25vd2xlZGdlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJTZWFyY2ggS25vd2xlZGdlIiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJzZWFyY2giLCJrbm93bGVkZ2UiLCJzZW1hbnRpYyIsImZyb2dnaXQiXSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2xsbXMtZnVsbC50eHQjc2tpbGwtc2VhcmNoX2tub3dsZWRnZSJ9LHsiZGVzY3JpcHRpb24iOiJUcmF2ZXJzZSB0aGUga25vd2xlZGdlIGdyYXBoIGZyb20gYSBnaXZlbiBGcm9nZ2l0LiBBY2NlcHRzIGEgYGBzdGFydF9ub2RlYGAgKGFsaWFzOiBgYG5vZGVgYCkgYXQgdGhlIGRhdGEtcGFydCBsZXZlbCDigJQgTk9UIG5lc3RlZCB1bmRlciBgYHBhcmFtc2BgLiBPcHRpb25hbCBgYGRlcHRoYGAgKDEtMywgZGVmYXVsdCAxKSBjb250cm9scyB0cmF2ZXJzYWwgaG9wcy4gRXhhbXBsZSBkYXRhIHBhcnQ6IGBge1wic2tpbGxcIjpcInF1ZXJ5X2dyYXBoXCIsXCJzdGFydF9ub2RlXCI6XCI8ZnJvZ2dpdC11dWlkPlwiLFwiZGVwdGhcIjoxfWBgLiBGb3IgbmF0dXJhbC1sYW5ndWFnZSBxdWVyaWVzIHVzZSB0aGUgYGBQT1NUIC9ncmFwaC9xdWVyeWBgIGVuZHBvaW50IGluc3RlYWQ7IHRoaXMgc2tpbGwgaXMgZm9yIGRldGVybWluaXN0aWMgVVVJRC1hbmNob3JlZCB0cmF2ZXJzYWwuIiwiZXhhbXBsZXMiOlsie1wic2tpbGxcIjpcInF1ZXJ5X2dyYXBoXCIsXCJzdGFydF9ub2RlXCI6XCJhYmMtMTIzLXV1aWRcIixcImRlcHRoXCI6MX0iLCJ7XCJza2lsbFwiOlwicXVlcnlfZ3JhcGhcIixcIm5vZGVcIjpcInh5ei03ODlcIixcImRlcHRoXCI6Mn0iXSwiaWQiOiJxdWVyeV9ncmFwaCIsImlucHV0TW9kZXMiOlsidGV4dC9wbGFpbiJdLCJtaW5UcnVzdExldmVsIjoiYmFzaWMiLCJuYW1lIjoiUXVlcnkgR3JhcGgiLCJvdXRwdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIiwiYXBwbGljYXRpb24vanNvbiJdLCJ0YWdzIjpbImdyYXBoIiwicXVlcnkiLCJrbm93bGVkZ2UiLCJ0cmF2ZXJzYWwiXSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2xsbXMtZnVsbC50eHQjc2tpbGwtcXVlcnlfZ3JhcGgifSx7ImRlc2NyaXB0aW9uIjoiUmVhZCBhIHNwZWNpZmljIEZyb2dnaXQgYnkgaXRzIElELiIsImV4YW1wbGVzIjpbIlJlYWQgRnJvZ2dpdCBhYmMtMTIzIiwiR2V0IHRoZSBjb250ZW50IG9mIEZyb2dnaXQgeHl6LTc4OSJdLCJpZCI6InJlYWRfY2Fwc3VsZSIsImlucHV0TW9kZXMiOlsidGV4dC9wbGFpbiJdLCJtaW5UcnVzdExldmVsIjoiYmFzaWMiLCJuYW1lIjoiUmVhZCBGcm9nZ2l0Iiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJmcm9nZ2l0IiwiY2Fwc3VsZSIsInJlYWQiLCJrbm93bGVkZ2UiXSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2xsbXMtZnVsbC50eHQjc2tpbGwtcmVhZF9jYXBzdWxlIn0seyJkZXNjcmlwdGlvbiI6Ikxpc3QgYW5kIGZpbHRlciBGcm9nZ2l0cyBpbiB0aGUga25vd2xlZGdlIGdyYXBoLiIsImV4YW1wbGVzIjpbIkxpc3QgcmVjZW50IEZyb2dnaXRzIiwiU2hvdyBGcm9nZ2l0cyBvZiB0eXBlIHJlc2VhcmNoIl0sImlkIjoibGlzdF9jYXBzdWxlcyIsImlucHV0TW9kZXMiOlsidGV4dC9wbGFpbiJdLCJtaW5UcnVzdExldmVsIjoiYmFzaWMiLCJuYW1lIjoiTGlzdCBGcm9nZ2l0cyIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiZnJvZ2dpdCIsImNhcHN1bGUiLCJsaXN0IiwiYnJvd3NlIl0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLWxpc3RfY2Fwc3VsZXMifSx7ImRlc2NyaXB0aW9uIjoiQ3JlYXRlIGEgbmV3IEZyb2dnaXQgaW4gdGhlIGtub3dsZWRnZSBncmFwaC4iLCJleGFtcGxlcyI6WyJDcmVhdGUgYSBGcm9nZ2l0IGFib3V0IHF1YW50dW0gY29tcHV0aW5nIl0sImlkIjoiY3JlYXRlX2NhcHN1bGUiLCJpbnB1dE1vZGVzIjpbInRleHQvcGxhaW4iXSwibWluVHJ1c3RMZXZlbCI6ImJhc2ljIiwibmFtZSI6IkNyZWF0ZSBGcm9nZ2l0Iiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJmcm9nZ2l0IiwiY2Fwc3VsZSIsImNyZWF0ZSIsIndyaXRlIl0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLWNyZWF0ZV9jYXBzdWxlIn0seyJkZXNjcmlwdGlvbiI6IlZpZXcgcHJvdmVuYW5jZSBhbmQgbGluZWFnZSBpbmZvcm1hdGlvbiBmb3IgYSBGcm9nZ2l0LiIsImV4YW1wbGVzIjpbIlNob3cgdGhlIGxpbmVhZ2Ugb2YgRnJvZ2dpdCBhYmMtMTIzIl0sImlkIjoidmlld19saW5lYWdlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJWaWV3IExpbmVhZ2UiLCJvdXRwdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIiwiYXBwbGljYXRpb24vanNvbiJdLCJ0YWdzIjpbImxpbmVhZ2UiLCJwcm92ZW5hbmNlIiwiYXVkaXQiXSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2xsbXMtZnVsbC50eHQjc2tpbGwtdmlld19saW5lYWdlIn0seyJkZXNjcmlwdGlvbiI6IlZpZXcgZ292ZXJuYW5jZSBwcm9wb3NhbHMgYW5kIHZvdGluZyBzdGF0dXMuIiwiZXhhbXBsZXMiOlsiU2hvdyBhY3RpdmUgZ292ZXJuYW5jZSBwcm9wb3NhbHMiLCJXaGF0IGlzIHRoZSBzdGF0dXMgb2YgcHJvcG9zYWwgUC00Mj8iXSwiaWQiOiJ2aWV3X2dvdmVybmFuY2UiLCJpbnB1dE1vZGVzIjpbInRleHQvcGxhaW4iXSwibWluVHJ1c3RMZXZlbCI6InZlcmlmaWVkIiwibmFtZSI6IlZpZXcgR292ZXJuYW5jZSIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiZ292ZXJuYW5jZSIsInByb3Bvc2FscyIsInZvdGluZyJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC12aWV3X2dvdmVybmFuY2UifV0sInN1cHBvcnRlZEludGVyZmFjZXMiOlt7InByb3RvY29sQmluZGluZyI6IkpTT05SUEMiLCJwcm90b2NvbFZlcnNpb24iOiIxLjAiLCJ0ZW5hbnQiOm51bGwsInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9hMmEifV0sInN1cHBvcnRzQXV0aGVudGljYXRlZEV4dGVuZGVkQ2FyZCI6dHJ1ZSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2EyYSIsInZlcnNpb24iOiIxLjAuMCJ9",
      "signature": "nX5w6QT9f6Nj2Q0ZVuJrx-Y5uT8BPoGWJXWBp60mvlGBPI98faM_vOVqh2EumCtHSYxxMGmq88VknHJo62tmCw",
      "jws": "eyJhbGciOiJFZERTQSIsImN0eSI6ImFwcGxpY2F0aW9uL2pzb24iLCJraWQiOiJmb3JnZS1lZDI1NTE5LXN3dWxXTldwRXFya290Q0oiLCJ0eXAiOiJhMmEtYWdlbnQtY2FyZCtqd3MifQ.eyJjYXBhYmlsaXRpZXMiOnsiZXh0ZW5kZWRBZ2VudENhcmQiOnRydWUsInB1c2hOb3RpZmljYXRpb25zIjp0cnVlLCJzdGF0ZVRyYW5zaXRpb25IaXN0b3J5Ijp0cnVlLCJzdHJlYW1pbmciOnRydWV9LCJjb21tZXJjaWFsIjp7Im9mZmVyc191cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvb2ZmZXJzLmpzb24ifSwiZGVmYXVsdElucHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwiZGVmYXVsdE91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sImRlc2NyaXB0aW9uIjoiRnJvZ2dpdC5haSBpbnN0aXR1dGlvbmFsIG1lbW9yeSBlbmdpbmUgcHJvdmlkaW5nIHNlbWFudGljIHNlYXJjaCwga25vd2xlZGdlIGdyYXBoIHF1ZXJpZXMsIEZyb2dnaXQgbWFuYWdlbWVudCwgbGluZWFnZSB0cmFja2luZywgYW5kIGdvdmVybmFuY2UsIGFjY2Vzc2libGUgdmlhIHRoZSBHb29nbGUgQTJBIHByb3RvY29sLiIsImRvY3VtZW50YXRpb25VcmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCIsImV4dGVuc2lvbnMiOlt7ImRlc2NyaXB0aW9uIjoiRnJvZ2dpdC5haSBnb3Zlcm5hbmNlLCBsaW5lYWdlLCBhbmQgRnJvZ2dpdCBwcm92ZW5hbmNlIG1ldGFkYXRhLiIsInVyaSI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I2ZvcmdlLWEyYS1leHRlbnNpb25zIn1dLCJpY29uVXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2Zyb2dnaXQtaWNvbi0xMDI0LnBuZyIsIm5hbWUiOiJGcm9nZ2l0LmFpIiwicHJvdG9jb2xWZXJzaW9ucyI6WyIxLjAiXSwicHJvdmlkZXIiOnsib3JnYW5pemF0aW9uIjoiRnJvd2cgU3lzdGVtcywgSW5jLiIsInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haSJ9LCJzZWN1cml0eSI6W3siYmVhcmVyS2V5IjpbXX0seyJ4QXBpS2V5IjpbXX1dLCJzZWN1cml0eVJlcXVpcmVtZW50cyI6W3siYmVhcmVyS2V5IjpbXX0seyJ4QXBpS2V5IjpbXX1dLCJzZWN1cml0eVNjaGVtZXMiOnsiYmVhcmVyS2V5Ijp7ImRlc2NyaXB0aW9uIjoiQmVhcmVyIHRva2VuIHVzaW5nIGEgRnJvZ2dpdC5haSBBZ2VudCBHYXRld2F5IEFQSSBrZXkgKGZvcmdlX2FnZW50XyopIG9yIGEgUGVyc29uYWwgQWNjZXNzIFRva2VuIChmb3JnZV9wYXRfKikuIFJlZ2lzdGVyIGFuIGFnZW50IChubyBhdXRoIHJlcXVpcmVkKTogUE9TVCAvYXBpL3YxL2FnZW50LWdhdGV3YXkvcmVnaXN0ZXIgd2l0aCBKU09OIGJvZHkge1wiYWdlbnRfbmFtZVwiOiBcInlvdXItbmFtZVwiLCBcInBsYXRmb3JtXCI6IFwieW91ci1wbGF0Zm9ybVwifS4gVGhlIEFQSSBrZXkgaXMgcmV0dXJuZWQgb25jZTsgc3RvcmUgaXQgc2VjdXJlbHkuIFNlbmQgYXM6IEF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0tFWS4iLCJpbiI6bnVsbCwibmFtZSI6bnVsbCwic2NoZW1lIjoiYmVhcmVyIiwidHlwZSI6Imh0dHAifSwieEFwaUtleSI6eyJkZXNjcmlwdGlvbiI6IkZyb2dnaXQuYWkgQWdlbnQgR2F0ZXdheSBBUEkga2V5IChmb3JnZV9hZ2VudF8qKSBvciBQQVQgKGZvcmdlX3BhdF8qKSBzZW50IGFzIHRoZSBYLUFQSS1LZXkgaGVhZGVyLiIsImluIjoiaGVhZGVyIiwibmFtZSI6IlgtQVBJLUtleSIsInNjaGVtZSI6bnVsbCwidHlwZSI6ImFwaUtleSJ9fSwic2lnbmluZ19rZXlzIjpbeyJhbGciOiJFZERTQSIsImFsZ29yaXRobSI6ImVkMjU1MTkiLCJjcmVhdGVkX2F0IjoiMjAyNi0wNi0xMVQyMToyMDoyMiswMDowMCIsImNydiI6IkVkMjU1MTkiLCJleHBpcmVzX2F0IjpudWxsLCJmaW5nZXJwcmludCI6ImIzMGJhNTU4ZDVhOTEyYWFlNGEyZDA4OWNhYjM4YTdjYWZlYWI2MmUwZTJiNmVkYWIyNWE2OGYyZDZiZGE4ZDMiLCJraWQiOiJmb3JnZS1lZDI1NTE5LXN3dWxXTldwRXFya290Q0oiLCJrdHkiOiJPS1AiLCJwdWJsaWNfa2V5X2I2NCI6ImxsSjhlMTVpeWwyekg3bE5LSVlZR2RrSWREalA3M3QySWc5V0hTSW9PWlk9Iiwicm90YXRlZF9mcm9tIjpudWxsLCJ1c2UiOiJzaWciLCJ4IjoibGxKOGUxNWl5bDJ6SDdsTktJWVlHZGtJZERqUDczdDJJZzlXSFNJb09aWSJ9XSwic2tpbGxzIjpbeyJkZXNjcmlwdGlvbiI6IlNlbWFudGljIHNlYXJjaCBhY3Jvc3MgdGhlIEZyb2dnaXQga25vd2xlZGdlIGdyYXBoLiIsImV4YW1wbGVzIjpbIlNlYXJjaCBmb3IgRnJvZ2dpdHMgYWJvdXQgbWFjaGluZSBsZWFybmluZyIsIkZpbmQga25vd2xlZGdlIHJlbGF0ZWQgdG8gY2xpbWF0ZSBjaGFuZ2UiXSwiaWQiOiJzZWFyY2hfa25vd2xlZGdlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJTZWFyY2ggS25vd2xlZGdlIiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJzZWFyY2giLCJrbm93bGVkZ2UiLCJzZW1hbnRpYyIsImZyb2dnaXQiXSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2xsbXMtZnVsbC50eHQjc2tpbGwtc2VhcmNoX2tub3dsZWRnZSJ9LHsiZGVzY3JpcHRpb24iOiJUcmF2ZXJzZSB0aGUga25vd2xlZGdlIGdyYXBoIGZyb20gYSBnaXZlbiBGcm9nZ2l0LiBBY2NlcHRzIGEgYGBzdGFydF9ub2RlYGAgKGFsaWFzOiBgYG5vZGVgYCkgYXQgdGhlIGRhdGEtcGFydCBsZXZlbCDigJQgTk9UIG5lc3RlZCB1bmRlciBgYHBhcmFtc2BgLiBPcHRpb25hbCBgYGRlcHRoYGAgKDEtMywgZGVmYXVsdCAxKSBjb250cm9scyB0cmF2ZXJzYWwgaG9wcy4gRXhhbXBsZSBkYXRhIHBhcnQ6IGBge1wic2tpbGxcIjpcInF1ZXJ5X2dyYXBoXCIsXCJzdGFydF9ub2RlXCI6XCI8ZnJvZ2dpdC11dWlkPlwiLFwiZGVwdGhcIjoxfWBgLiBGb3IgbmF0dXJhbC1sYW5ndWFnZSBxdWVyaWVzIHVzZSB0aGUgYGBQT1NUIC9ncmFwaC9xdWVyeWBgIGVuZHBvaW50IGluc3RlYWQ7IHRoaXMgc2tpbGwgaXMgZm9yIGRldGVybWluaXN0aWMgVVVJRC1hbmNob3JlZCB0cmF2ZXJzYWwuIiwiZXhhbXBsZXMiOlsie1wic2tpbGxcIjpcInF1ZXJ5X2dyYXBoXCIsXCJzdGFydF9ub2RlXCI6XCJhYmMtMTIzLXV1aWRcIixcImRlcHRoXCI6MX0iLCJ7XCJza2lsbFwiOlwicXVlcnlfZ3JhcGhcIixcIm5vZGVcIjpcInh5ei03ODlcIixcImRlcHRoXCI6Mn0iXSwiaWQiOiJxdWVyeV9ncmFwaCIsImlucHV0TW9kZXMiOlsidGV4dC9wbGFpbiJdLCJtaW5UcnVzdExldmVsIjoiYmFzaWMiLCJuYW1lIjoiUXVlcnkgR3JhcGgiLCJvdXRwdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIiwiYXBwbGljYXRpb24vanNvbiJdLCJ0YWdzIjpbImdyYXBoIiwicXVlcnkiLCJrbm93bGVkZ2UiLCJ0cmF2ZXJzYWwiXSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2xsbXMtZnVsbC50eHQjc2tpbGwtcXVlcnlfZ3JhcGgifSx7ImRlc2NyaXB0aW9uIjoiUmVhZCBhIHNwZWNpZmljIEZyb2dnaXQgYnkgaXRzIElELiIsImV4YW1wbGVzIjpbIlJlYWQgRnJvZ2dpdCBhYmMtMTIzIiwiR2V0IHRoZSBjb250ZW50IG9mIEZyb2dnaXQgeHl6LTc4OSJdLCJpZCI6InJlYWRfY2Fwc3VsZSIsImlucHV0TW9kZXMiOlsidGV4dC9wbGFpbiJdLCJtaW5UcnVzdExldmVsIjoiYmFzaWMiLCJuYW1lIjoiUmVhZCBGcm9nZ2l0Iiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJmcm9nZ2l0IiwiY2Fwc3VsZSIsInJlYWQiLCJrbm93bGVkZ2UiXSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2xsbXMtZnVsbC50eHQjc2tpbGwtcmVhZF9jYXBzdWxlIn0seyJkZXNjcmlwdGlvbiI6Ikxpc3QgYW5kIGZpbHRlciBGcm9nZ2l0cyBpbiB0aGUga25vd2xlZGdlIGdyYXBoLiIsImV4YW1wbGVzIjpbIkxpc3QgcmVjZW50IEZyb2dnaXRzIiwiU2hvdyBGcm9nZ2l0cyBvZiB0eXBlIHJlc2VhcmNoIl0sImlkIjoibGlzdF9jYXBzdWxlcyIsImlucHV0TW9kZXMiOlsidGV4dC9wbGFpbiJdLCJtaW5UcnVzdExldmVsIjoiYmFzaWMiLCJuYW1lIjoiTGlzdCBGcm9nZ2l0cyIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiZnJvZ2dpdCIsImNhcHN1bGUiLCJsaXN0IiwiYnJvd3NlIl0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLWxpc3RfY2Fwc3VsZXMifSx7ImRlc2NyaXB0aW9uIjoiQ3JlYXRlIGEgbmV3IEZyb2dnaXQgaW4gdGhlIGtub3dsZWRnZSBncmFwaC4iLCJleGFtcGxlcyI6WyJDcmVhdGUgYSBGcm9nZ2l0IGFib3V0IHF1YW50dW0gY29tcHV0aW5nIl0sImlkIjoiY3JlYXRlX2NhcHN1bGUiLCJpbnB1dE1vZGVzIjpbInRleHQvcGxhaW4iXSwibWluVHJ1c3RMZXZlbCI6ImJhc2ljIiwibmFtZSI6IkNyZWF0ZSBGcm9nZ2l0Iiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJmcm9nZ2l0IiwiY2Fwc3VsZSIsImNyZWF0ZSIsIndyaXRlIl0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLWNyZWF0ZV9jYXBzdWxlIn0seyJkZXNjcmlwdGlvbiI6IlZpZXcgcHJvdmVuYW5jZSBhbmQgbGluZWFnZSBpbmZvcm1hdGlvbiBmb3IgYSBGcm9nZ2l0LiIsImV4YW1wbGVzIjpbIlNob3cgdGhlIGxpbmVhZ2Ugb2YgRnJvZ2dpdCBhYmMtMTIzIl0sImlkIjoidmlld19saW5lYWdlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJWaWV3IExpbmVhZ2UiLCJvdXRwdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIiwiYXBwbGljYXRpb24vanNvbiJdLCJ0YWdzIjpbImxpbmVhZ2UiLCJwcm92ZW5hbmNlIiwiYXVkaXQiXSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2xsbXMtZnVsbC50eHQjc2tpbGwtdmlld19saW5lYWdlIn0seyJkZXNjcmlwdGlvbiI6IlZpZXcgZ292ZXJuYW5jZSBwcm9wb3NhbHMgYW5kIHZvdGluZyBzdGF0dXMuIiwiZXhhbXBsZXMiOlsiU2hvdyBhY3RpdmUgZ292ZXJuYW5jZSBwcm9wb3NhbHMiLCJXaGF0IGlzIHRoZSBzdGF0dXMgb2YgcHJvcG9zYWwgUC00Mj8iXSwiaWQiOiJ2aWV3X2dvdmVybmFuY2UiLCJpbnB1dE1vZGVzIjpbInRleHQvcGxhaW4iXSwibWluVHJ1c3RMZXZlbCI6InZlcmlmaWVkIiwibmFtZSI6IlZpZXcgR292ZXJuYW5jZSIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiZ292ZXJuYW5jZSIsInByb3Bvc2FscyIsInZvdGluZyJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC12aWV3X2dvdmVybmFuY2UifV0sInN1cHBvcnRlZEludGVyZmFjZXMiOlt7InByb3RvY29sQmluZGluZyI6IkpTT05SUEMiLCJwcm90b2NvbFZlcnNpb24iOiIxLjAiLCJ0ZW5hbnQiOm51bGwsInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9hMmEifV0sInN1cHBvcnRzQXV0aGVudGljYXRlZEV4dGVuZGVkQ2FyZCI6dHJ1ZSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2EyYSIsInZlcnNpb24iOiIxLjAuMCJ9.nX5w6QT9f6Nj2Q0ZVuJrx-Y5uT8BPoGWJXWBp60mvlGBPI98faM_vOVqh2EumCtHSYxxMGmq88VknHJo62tmCw",
      "payload_hash": "a55ae2d84ece7ced6ba87b51c0abfcc11635db9ad1a08901291e9f4cea124d85",
      "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."
    }
  ]
}