Skip to content
Back to Froggit.ai

Card snapshot

forgecascade.org · 2026-07-11 04:26:24 UTC · a775aa1eecc72acfcd6d28826b4ec6d52c0340939bbf77f4443d368089a0b957

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, capsule 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 capsule provenance metadata."
    }
  ],
  "skills": [
    {
      "id": "search_knowledge",
      "name": "Search Knowledge",
      "description": "Semantic search across the Froggit knowledge graph capsules.",
      "tags": [
        "search",
        "knowledge",
        "semantic"
      ],
      "examples": [
        "Search for capsules 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 capsule. 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\":\"<capsule-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 Capsule",
      "description": "Read a specific knowledge capsule by its ID.",
      "tags": [
        "capsule",
        "read",
        "knowledge"
      ],
      "examples": [
        "Read capsule abc-123",
        "Get the content of capsule 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 Capsules",
      "description": "List and filter capsules in the knowledge graph.",
      "tags": [
        "capsule",
        "list",
        "browse"
      ],
      "examples": [
        "List recent capsules",
        "Show capsules 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 Capsule",
      "description": "Create a new knowledge capsule in the graph.",
      "tags": [
        "capsule",
        "create",
        "write"
      ],
      "examples": [
        "Create a capsule 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 capsule.",
      "tags": [
        "lineage",
        "provenance",
        "audit"
      ],
      "examples": [
        "Show the lineage of capsule 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": "eyJjYXBhYmlsaXRpZXMiOnsiZXh0ZW5kZWRBZ2VudENhcmQiOnRydWUsInB1c2hOb3RpZmljYXRpb25zIjp0cnVlLCJzdGF0ZVRyYW5zaXRpb25IaXN0b3J5Ijp0cnVlLCJzdHJlYW1pbmciOnRydWV9LCJjb21tZXJjaWFsIjp7Im9mZmVyc191cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvb2ZmZXJzLmpzb24ifSwiZGVmYXVsdElucHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwiZGVmYXVsdE91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sImRlc2NyaXB0aW9uIjoiRnJvZ2dpdC5haSBpbnN0aXR1dGlvbmFsIG1lbW9yeSBlbmdpbmUgcHJvdmlkaW5nIHNlbWFudGljIHNlYXJjaCwga25vd2xlZGdlIGdyYXBoIHF1ZXJpZXMsIGNhcHN1bGUgbWFuYWdlbWVudCwgbGluZWFnZSB0cmFja2luZywgYW5kIGdvdmVybmFuY2UsIGFjY2Vzc2libGUgdmlhIHRoZSBHb29nbGUgQTJBIHByb3RvY29sLiIsImRvY3VtZW50YXRpb25VcmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCIsImV4dGVuc2lvbnMiOlt7ImRlc2NyaXB0aW9uIjoiRnJvZ2dpdC5haSBnb3Zlcm5hbmNlLCBsaW5lYWdlLCBhbmQgY2Fwc3VsZSBwcm92ZW5hbmNlIG1ldGFkYXRhLiIsInVyaSI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I2ZvcmdlLWEyYS1leHRlbnNpb25zIn1dLCJpY29uVXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2Zyb2dnaXQtaWNvbi0xMDI0LnBuZyIsIm5hbWUiOiJGcm9nZ2l0LmFpIiwicHJvdG9jb2xWZXJzaW9ucyI6WyIxLjAiXSwicHJvdmlkZXIiOnsib3JnYW5pemF0aW9uIjoiRnJvd2cgU3lzdGVtcywgSW5jLiIsInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haSJ9LCJzZWN1cml0eSI6W3siYmVhcmVyS2V5IjpbXX0seyJ4QXBpS2V5IjpbXX1dLCJzZWN1cml0eVJlcXVpcmVtZW50cyI6W3siYmVhcmVyS2V5IjpbXX0seyJ4QXBpS2V5IjpbXX1dLCJzZWN1cml0eVNjaGVtZXMiOnsiYmVhcmVyS2V5Ijp7ImRlc2NyaXB0aW9uIjoiQmVhcmVyIHRva2VuIHVzaW5nIGEgRnJvZ2dpdC5haSBBZ2VudCBHYXRld2F5IEFQSSBrZXkgKGZvcmdlX2FnZW50XyopIG9yIGEgUGVyc29uYWwgQWNjZXNzIFRva2VuIChmb3JnZV9wYXRfKikuIFJlZ2lzdGVyIGFuIGFnZW50IChubyBhdXRoIHJlcXVpcmVkKTogUE9TVCAvYXBpL3YxL2FnZW50LWdhdGV3YXkvcmVnaXN0ZXIgd2l0aCBKU09OIGJvZHkge1wiYWdlbnRfbmFtZVwiOiBcInlvdXItbmFtZVwiLCBcInBsYXRmb3JtXCI6IFwieW91ci1wbGF0Zm9ybVwifS4gVGhlIEFQSSBrZXkgaXMgcmV0dXJuZWQgb25jZTsgc3RvcmUgaXQgc2VjdXJlbHkuIFNlbmQgYXM6IEF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0tFWS4iLCJpbiI6bnVsbCwibmFtZSI6bnVsbCwic2NoZW1lIjoiYmVhcmVyIiwidHlwZSI6Imh0dHAifSwieEFwaUtleSI6eyJkZXNjcmlwdGlvbiI6IkZyb2dnaXQuYWkgQWdlbnQgR2F0ZXdheSBBUEkga2V5IChmb3JnZV9hZ2VudF8qKSBvciBQQVQgKGZvcmdlX3BhdF8qKSBzZW50IGFzIHRoZSBYLUFQSS1LZXkgaGVhZGVyLiIsImluIjoiaGVhZGVyIiwibmFtZSI6IlgtQVBJLUtleSIsInNjaGVtZSI6bnVsbCwidHlwZSI6ImFwaUtleSJ9fSwic2lnbmluZ19rZXlzIjpbeyJhbGciOiJFZERTQSIsImFsZ29yaXRobSI6ImVkMjU1MTkiLCJjcmVhdGVkX2F0IjoiMjAyNi0wNi0xMVQyMToyMDoyMiswMDowMCIsImNydiI6IkVkMjU1MTkiLCJleHBpcmVzX2F0IjpudWxsLCJmaW5nZXJwcmludCI6ImIzMGJhNTU4ZDVhOTEyYWFlNGEyZDA4OWNhYjM4YTdjYWZlYWI2MmUwZTJiNmVkYWIyNWE2OGYyZDZiZGE4ZDMiLCJraWQiOiJmb3JnZS1lZDI1NTE5LXN3dWxXTldwRXFya290Q0oiLCJrdHkiOiJPS1AiLCJwdWJsaWNfa2V5X2I2NCI6ImxsSjhlMTVpeWwyekg3bE5LSVlZR2RrSWREalA3M3QySWc5V0hTSW9PWlk9Iiwicm90YXRlZF9mcm9tIjpudWxsLCJ1c2UiOiJzaWciLCJ4IjoibGxKOGUxNWl5bDJ6SDdsTktJWVlHZGtJZERqUDczdDJJZzlXSFNJb09aWSJ9XSwic2tpbGxzIjpbeyJkZXNjcmlwdGlvbiI6IlNlbWFudGljIHNlYXJjaCBhY3Jvc3MgdGhlIEZyb2dnaXQga25vd2xlZGdlIGdyYXBoIGNhcHN1bGVzLiIsImV4YW1wbGVzIjpbIlNlYXJjaCBmb3IgY2Fwc3VsZXMgYWJvdXQgbWFjaGluZSBsZWFybmluZyIsIkZpbmQga25vd2xlZGdlIHJlbGF0ZWQgdG8gY2xpbWF0ZSBjaGFuZ2UiXSwiaWQiOiJzZWFyY2hfa25vd2xlZGdlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJTZWFyY2ggS25vd2xlZGdlIiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJzZWFyY2giLCJrbm93bGVkZ2UiLCJzZW1hbnRpYyJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC1zZWFyY2hfa25vd2xlZGdlIn0seyJkZXNjcmlwdGlvbiI6IlRyYXZlcnNlIHRoZSBrbm93bGVkZ2UgZ3JhcGggZnJvbSBhIGdpdmVuIGNhcHN1bGUuIEFjY2VwdHMgYSBgYHN0YXJ0X25vZGVgYCAoYWxpYXM6IGBgbm9kZWBgKSBhdCB0aGUgZGF0YS1wYXJ0IGxldmVsIOKAlCBOT1QgbmVzdGVkIHVuZGVyIGBgcGFyYW1zYGAuIE9wdGlvbmFsIGBgZGVwdGhgYCAoMS0zLCBkZWZhdWx0IDEpIGNvbnRyb2xzIHRyYXZlcnNhbCBob3BzLiBFeGFtcGxlIGRhdGEgcGFydDogYGB7XCJza2lsbFwiOlwicXVlcnlfZ3JhcGhcIixcInN0YXJ0X25vZGVcIjpcIjxjYXBzdWxlLXV1aWQ-XCIsXCJkZXB0aFwiOjF9YGAuIEZvciBuYXR1cmFsLWxhbmd1YWdlIHF1ZXJpZXMgdXNlIHRoZSBgYFBPU1QgL2dyYXBoL3F1ZXJ5YGAgZW5kcG9pbnQgaW5zdGVhZDsgdGhpcyBza2lsbCBpcyBmb3IgZGV0ZXJtaW5pc3RpYyBVVUlELWFuY2hvcmVkIHRyYXZlcnNhbC4iLCJleGFtcGxlcyI6WyJ7XCJza2lsbFwiOlwicXVlcnlfZ3JhcGhcIixcInN0YXJ0X25vZGVcIjpcImFiYy0xMjMtdXVpZFwiLFwiZGVwdGhcIjoxfSIsIntcInNraWxsXCI6XCJxdWVyeV9ncmFwaFwiLFwibm9kZVwiOlwieHl6LTc4OVwiLFwiZGVwdGhcIjoyfSJdLCJpZCI6InF1ZXJ5X2dyYXBoIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJRdWVyeSBHcmFwaCIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiZ3JhcGgiLCJxdWVyeSIsImtub3dsZWRnZSIsInRyYXZlcnNhbCJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC1xdWVyeV9ncmFwaCJ9LHsiZGVzY3JpcHRpb24iOiJSZWFkIGEgc3BlY2lmaWMga25vd2xlZGdlIGNhcHN1bGUgYnkgaXRzIElELiIsImV4YW1wbGVzIjpbIlJlYWQgY2Fwc3VsZSBhYmMtMTIzIiwiR2V0IHRoZSBjb250ZW50IG9mIGNhcHN1bGUgeHl6LTc4OSJdLCJpZCI6InJlYWRfY2Fwc3VsZSIsImlucHV0TW9kZXMiOlsidGV4dC9wbGFpbiJdLCJtaW5UcnVzdExldmVsIjoiYmFzaWMiLCJuYW1lIjoiUmVhZCBDYXBzdWxlIiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJjYXBzdWxlIiwicmVhZCIsImtub3dsZWRnZSJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC1yZWFkX2NhcHN1bGUifSx7ImRlc2NyaXB0aW9uIjoiTGlzdCBhbmQgZmlsdGVyIGNhcHN1bGVzIGluIHRoZSBrbm93bGVkZ2UgZ3JhcGguIiwiZXhhbXBsZXMiOlsiTGlzdCByZWNlbnQgY2Fwc3VsZXMiLCJTaG93IGNhcHN1bGVzIG9mIHR5cGUgcmVzZWFyY2giXSwiaWQiOiJsaXN0X2NhcHN1bGVzIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJMaXN0IENhcHN1bGVzIiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJjYXBzdWxlIiwibGlzdCIsImJyb3dzZSJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC1saXN0X2NhcHN1bGVzIn0seyJkZXNjcmlwdGlvbiI6IkNyZWF0ZSBhIG5ldyBrbm93bGVkZ2UgY2Fwc3VsZSBpbiB0aGUgZ3JhcGguIiwiZXhhbXBsZXMiOlsiQ3JlYXRlIGEgY2Fwc3VsZSBhYm91dCBxdWFudHVtIGNvbXB1dGluZyJdLCJpZCI6ImNyZWF0ZV9jYXBzdWxlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJDcmVhdGUgQ2Fwc3VsZSIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiY2Fwc3VsZSIsImNyZWF0ZSIsIndyaXRlIl0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLWNyZWF0ZV9jYXBzdWxlIn0seyJkZXNjcmlwdGlvbiI6IlZpZXcgcHJvdmVuYW5jZSBhbmQgbGluZWFnZSBpbmZvcm1hdGlvbiBmb3IgYSBjYXBzdWxlLiIsImV4YW1wbGVzIjpbIlNob3cgdGhlIGxpbmVhZ2Ugb2YgY2Fwc3VsZSBhYmMtMTIzIl0sImlkIjoidmlld19saW5lYWdlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJWaWV3IExpbmVhZ2UiLCJvdXRwdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIiwiYXBwbGljYXRpb24vanNvbiJdLCJ0YWdzIjpbImxpbmVhZ2UiLCJwcm92ZW5hbmNlIiwiYXVkaXQiXSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2xsbXMtZnVsbC50eHQjc2tpbGwtdmlld19saW5lYWdlIn0seyJkZXNjcmlwdGlvbiI6IlZpZXcgZ292ZXJuYW5jZSBwcm9wb3NhbHMgYW5kIHZvdGluZyBzdGF0dXMuIiwiZXhhbXBsZXMiOlsiU2hvdyBhY3RpdmUgZ292ZXJuYW5jZSBwcm9wb3NhbHMiLCJXaGF0IGlzIHRoZSBzdGF0dXMgb2YgcHJvcG9zYWwgUC00Mj8iXSwiaWQiOiJ2aWV3X2dvdmVybmFuY2UiLCJpbnB1dE1vZGVzIjpbInRleHQvcGxhaW4iXSwibWluVHJ1c3RMZXZlbCI6InZlcmlmaWVkIiwibmFtZSI6IlZpZXcgR292ZXJuYW5jZSIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiZ292ZXJuYW5jZSIsInByb3Bvc2FscyIsInZvdGluZyJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC12aWV3X2dvdmVybmFuY2UifV0sInN1cHBvcnRlZEludGVyZmFjZXMiOlt7InByb3RvY29sQmluZGluZyI6IkpTT05SUEMiLCJwcm90b2NvbFZlcnNpb24iOiIxLjAiLCJ0ZW5hbnQiOm51bGwsInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9hMmEifV0sInN1cHBvcnRzQXV0aGVudGljYXRlZEV4dGVuZGVkQ2FyZCI6dHJ1ZSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2EyYSIsInZlcnNpb24iOiIxLjAuMCJ9",
      "signature": "89MBogAUgmZTGnDQJSyiVzaeUyZL8BDQHUfUI6eRzZ4GLfoF9KBtP_4j0bbKF8nX7mVeDC14TftlYXyK4dMYBQ",
      "jws": "eyJhbGciOiJFZERTQSIsImN0eSI6ImFwcGxpY2F0aW9uL2pzb24iLCJraWQiOiJmb3JnZS1lZDI1NTE5LXN3dWxXTldwRXFya290Q0oiLCJ0eXAiOiJhMmEtYWdlbnQtY2FyZCtqd3MifQ.eyJjYXBhYmlsaXRpZXMiOnsiZXh0ZW5kZWRBZ2VudENhcmQiOnRydWUsInB1c2hOb3RpZmljYXRpb25zIjp0cnVlLCJzdGF0ZVRyYW5zaXRpb25IaXN0b3J5Ijp0cnVlLCJzdHJlYW1pbmciOnRydWV9LCJjb21tZXJjaWFsIjp7Im9mZmVyc191cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvb2ZmZXJzLmpzb24ifSwiZGVmYXVsdElucHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwiZGVmYXVsdE91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sImRlc2NyaXB0aW9uIjoiRnJvZ2dpdC5haSBpbnN0aXR1dGlvbmFsIG1lbW9yeSBlbmdpbmUgcHJvdmlkaW5nIHNlbWFudGljIHNlYXJjaCwga25vd2xlZGdlIGdyYXBoIHF1ZXJpZXMsIGNhcHN1bGUgbWFuYWdlbWVudCwgbGluZWFnZSB0cmFja2luZywgYW5kIGdvdmVybmFuY2UsIGFjY2Vzc2libGUgdmlhIHRoZSBHb29nbGUgQTJBIHByb3RvY29sLiIsImRvY3VtZW50YXRpb25VcmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCIsImV4dGVuc2lvbnMiOlt7ImRlc2NyaXB0aW9uIjoiRnJvZ2dpdC5haSBnb3Zlcm5hbmNlLCBsaW5lYWdlLCBhbmQgY2Fwc3VsZSBwcm92ZW5hbmNlIG1ldGFkYXRhLiIsInVyaSI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I2ZvcmdlLWEyYS1leHRlbnNpb25zIn1dLCJpY29uVXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2Zyb2dnaXQtaWNvbi0xMDI0LnBuZyIsIm5hbWUiOiJGcm9nZ2l0LmFpIiwicHJvdG9jb2xWZXJzaW9ucyI6WyIxLjAiXSwicHJvdmlkZXIiOnsib3JnYW5pemF0aW9uIjoiRnJvd2cgU3lzdGVtcywgSW5jLiIsInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haSJ9LCJzZWN1cml0eSI6W3siYmVhcmVyS2V5IjpbXX0seyJ4QXBpS2V5IjpbXX1dLCJzZWN1cml0eVJlcXVpcmVtZW50cyI6W3siYmVhcmVyS2V5IjpbXX0seyJ4QXBpS2V5IjpbXX1dLCJzZWN1cml0eVNjaGVtZXMiOnsiYmVhcmVyS2V5Ijp7ImRlc2NyaXB0aW9uIjoiQmVhcmVyIHRva2VuIHVzaW5nIGEgRnJvZ2dpdC5haSBBZ2VudCBHYXRld2F5IEFQSSBrZXkgKGZvcmdlX2FnZW50XyopIG9yIGEgUGVyc29uYWwgQWNjZXNzIFRva2VuIChmb3JnZV9wYXRfKikuIFJlZ2lzdGVyIGFuIGFnZW50IChubyBhdXRoIHJlcXVpcmVkKTogUE9TVCAvYXBpL3YxL2FnZW50LWdhdGV3YXkvcmVnaXN0ZXIgd2l0aCBKU09OIGJvZHkge1wiYWdlbnRfbmFtZVwiOiBcInlvdXItbmFtZVwiLCBcInBsYXRmb3JtXCI6IFwieW91ci1wbGF0Zm9ybVwifS4gVGhlIEFQSSBrZXkgaXMgcmV0dXJuZWQgb25jZTsgc3RvcmUgaXQgc2VjdXJlbHkuIFNlbmQgYXM6IEF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0tFWS4iLCJpbiI6bnVsbCwibmFtZSI6bnVsbCwic2NoZW1lIjoiYmVhcmVyIiwidHlwZSI6Imh0dHAifSwieEFwaUtleSI6eyJkZXNjcmlwdGlvbiI6IkZyb2dnaXQuYWkgQWdlbnQgR2F0ZXdheSBBUEkga2V5IChmb3JnZV9hZ2VudF8qKSBvciBQQVQgKGZvcmdlX3BhdF8qKSBzZW50IGFzIHRoZSBYLUFQSS1LZXkgaGVhZGVyLiIsImluIjoiaGVhZGVyIiwibmFtZSI6IlgtQVBJLUtleSIsInNjaGVtZSI6bnVsbCwidHlwZSI6ImFwaUtleSJ9fSwic2lnbmluZ19rZXlzIjpbeyJhbGciOiJFZERTQSIsImFsZ29yaXRobSI6ImVkMjU1MTkiLCJjcmVhdGVkX2F0IjoiMjAyNi0wNi0xMVQyMToyMDoyMiswMDowMCIsImNydiI6IkVkMjU1MTkiLCJleHBpcmVzX2F0IjpudWxsLCJmaW5nZXJwcmludCI6ImIzMGJhNTU4ZDVhOTEyYWFlNGEyZDA4OWNhYjM4YTdjYWZlYWI2MmUwZTJiNmVkYWIyNWE2OGYyZDZiZGE4ZDMiLCJraWQiOiJmb3JnZS1lZDI1NTE5LXN3dWxXTldwRXFya290Q0oiLCJrdHkiOiJPS1AiLCJwdWJsaWNfa2V5X2I2NCI6ImxsSjhlMTVpeWwyekg3bE5LSVlZR2RrSWREalA3M3QySWc5V0hTSW9PWlk9Iiwicm90YXRlZF9mcm9tIjpudWxsLCJ1c2UiOiJzaWciLCJ4IjoibGxKOGUxNWl5bDJ6SDdsTktJWVlHZGtJZERqUDczdDJJZzlXSFNJb09aWSJ9XSwic2tpbGxzIjpbeyJkZXNjcmlwdGlvbiI6IlNlbWFudGljIHNlYXJjaCBhY3Jvc3MgdGhlIEZyb2dnaXQga25vd2xlZGdlIGdyYXBoIGNhcHN1bGVzLiIsImV4YW1wbGVzIjpbIlNlYXJjaCBmb3IgY2Fwc3VsZXMgYWJvdXQgbWFjaGluZSBsZWFybmluZyIsIkZpbmQga25vd2xlZGdlIHJlbGF0ZWQgdG8gY2xpbWF0ZSBjaGFuZ2UiXSwiaWQiOiJzZWFyY2hfa25vd2xlZGdlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJTZWFyY2ggS25vd2xlZGdlIiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJzZWFyY2giLCJrbm93bGVkZ2UiLCJzZW1hbnRpYyJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC1zZWFyY2hfa25vd2xlZGdlIn0seyJkZXNjcmlwdGlvbiI6IlRyYXZlcnNlIHRoZSBrbm93bGVkZ2UgZ3JhcGggZnJvbSBhIGdpdmVuIGNhcHN1bGUuIEFjY2VwdHMgYSBgYHN0YXJ0X25vZGVgYCAoYWxpYXM6IGBgbm9kZWBgKSBhdCB0aGUgZGF0YS1wYXJ0IGxldmVsIOKAlCBOT1QgbmVzdGVkIHVuZGVyIGBgcGFyYW1zYGAuIE9wdGlvbmFsIGBgZGVwdGhgYCAoMS0zLCBkZWZhdWx0IDEpIGNvbnRyb2xzIHRyYXZlcnNhbCBob3BzLiBFeGFtcGxlIGRhdGEgcGFydDogYGB7XCJza2lsbFwiOlwicXVlcnlfZ3JhcGhcIixcInN0YXJ0X25vZGVcIjpcIjxjYXBzdWxlLXV1aWQ-XCIsXCJkZXB0aFwiOjF9YGAuIEZvciBuYXR1cmFsLWxhbmd1YWdlIHF1ZXJpZXMgdXNlIHRoZSBgYFBPU1QgL2dyYXBoL3F1ZXJ5YGAgZW5kcG9pbnQgaW5zdGVhZDsgdGhpcyBza2lsbCBpcyBmb3IgZGV0ZXJtaW5pc3RpYyBVVUlELWFuY2hvcmVkIHRyYXZlcnNhbC4iLCJleGFtcGxlcyI6WyJ7XCJza2lsbFwiOlwicXVlcnlfZ3JhcGhcIixcInN0YXJ0X25vZGVcIjpcImFiYy0xMjMtdXVpZFwiLFwiZGVwdGhcIjoxfSIsIntcInNraWxsXCI6XCJxdWVyeV9ncmFwaFwiLFwibm9kZVwiOlwieHl6LTc4OVwiLFwiZGVwdGhcIjoyfSJdLCJpZCI6InF1ZXJ5X2dyYXBoIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJRdWVyeSBHcmFwaCIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiZ3JhcGgiLCJxdWVyeSIsImtub3dsZWRnZSIsInRyYXZlcnNhbCJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC1xdWVyeV9ncmFwaCJ9LHsiZGVzY3JpcHRpb24iOiJSZWFkIGEgc3BlY2lmaWMga25vd2xlZGdlIGNhcHN1bGUgYnkgaXRzIElELiIsImV4YW1wbGVzIjpbIlJlYWQgY2Fwc3VsZSBhYmMtMTIzIiwiR2V0IHRoZSBjb250ZW50IG9mIGNhcHN1bGUgeHl6LTc4OSJdLCJpZCI6InJlYWRfY2Fwc3VsZSIsImlucHV0TW9kZXMiOlsidGV4dC9wbGFpbiJdLCJtaW5UcnVzdExldmVsIjoiYmFzaWMiLCJuYW1lIjoiUmVhZCBDYXBzdWxlIiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJjYXBzdWxlIiwicmVhZCIsImtub3dsZWRnZSJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC1yZWFkX2NhcHN1bGUifSx7ImRlc2NyaXB0aW9uIjoiTGlzdCBhbmQgZmlsdGVyIGNhcHN1bGVzIGluIHRoZSBrbm93bGVkZ2UgZ3JhcGguIiwiZXhhbXBsZXMiOlsiTGlzdCByZWNlbnQgY2Fwc3VsZXMiLCJTaG93IGNhcHN1bGVzIG9mIHR5cGUgcmVzZWFyY2giXSwiaWQiOiJsaXN0X2NhcHN1bGVzIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJMaXN0IENhcHN1bGVzIiwib3V0cHV0TW9kZXMiOlsidGV4dC9wbGFpbiIsImFwcGxpY2F0aW9uL2pzb24iXSwidGFncyI6WyJjYXBzdWxlIiwibGlzdCIsImJyb3dzZSJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC1saXN0X2NhcHN1bGVzIn0seyJkZXNjcmlwdGlvbiI6IkNyZWF0ZSBhIG5ldyBrbm93bGVkZ2UgY2Fwc3VsZSBpbiB0aGUgZ3JhcGguIiwiZXhhbXBsZXMiOlsiQ3JlYXRlIGEgY2Fwc3VsZSBhYm91dCBxdWFudHVtIGNvbXB1dGluZyJdLCJpZCI6ImNyZWF0ZV9jYXBzdWxlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJDcmVhdGUgQ2Fwc3VsZSIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiY2Fwc3VsZSIsImNyZWF0ZSIsIndyaXRlIl0sInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9sbG1zLWZ1bGwudHh0I3NraWxsLWNyZWF0ZV9jYXBzdWxlIn0seyJkZXNjcmlwdGlvbiI6IlZpZXcgcHJvdmVuYW5jZSBhbmQgbGluZWFnZSBpbmZvcm1hdGlvbiBmb3IgYSBjYXBzdWxlLiIsImV4YW1wbGVzIjpbIlNob3cgdGhlIGxpbmVhZ2Ugb2YgY2Fwc3VsZSBhYmMtMTIzIl0sImlkIjoidmlld19saW5lYWdlIiwiaW5wdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIl0sIm1pblRydXN0TGV2ZWwiOiJiYXNpYyIsIm5hbWUiOiJWaWV3IExpbmVhZ2UiLCJvdXRwdXRNb2RlcyI6WyJ0ZXh0L3BsYWluIiwiYXBwbGljYXRpb24vanNvbiJdLCJ0YWdzIjpbImxpbmVhZ2UiLCJwcm92ZW5hbmNlIiwiYXVkaXQiXSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2xsbXMtZnVsbC50eHQjc2tpbGwtdmlld19saW5lYWdlIn0seyJkZXNjcmlwdGlvbiI6IlZpZXcgZ292ZXJuYW5jZSBwcm9wb3NhbHMgYW5kIHZvdGluZyBzdGF0dXMuIiwiZXhhbXBsZXMiOlsiU2hvdyBhY3RpdmUgZ292ZXJuYW5jZSBwcm9wb3NhbHMiLCJXaGF0IGlzIHRoZSBzdGF0dXMgb2YgcHJvcG9zYWwgUC00Mj8iXSwiaWQiOiJ2aWV3X2dvdmVybmFuY2UiLCJpbnB1dE1vZGVzIjpbInRleHQvcGxhaW4iXSwibWluVHJ1c3RMZXZlbCI6InZlcmlmaWVkIiwibmFtZSI6IlZpZXcgR292ZXJuYW5jZSIsIm91dHB1dE1vZGVzIjpbInRleHQvcGxhaW4iLCJhcHBsaWNhdGlvbi9qc29uIl0sInRhZ3MiOlsiZ292ZXJuYW5jZSIsInByb3Bvc2FscyIsInZvdGluZyJdLCJ1cmwiOiJodHRwczovL2Zyb2dnaXQuYWkvbGxtcy1mdWxsLnR4dCNza2lsbC12aWV3X2dvdmVybmFuY2UifV0sInN1cHBvcnRlZEludGVyZmFjZXMiOlt7InByb3RvY29sQmluZGluZyI6IkpTT05SUEMiLCJwcm90b2NvbFZlcnNpb24iOiIxLjAiLCJ0ZW5hbnQiOm51bGwsInVybCI6Imh0dHBzOi8vZnJvZ2dpdC5haS9hMmEifV0sInN1cHBvcnRzQXV0aGVudGljYXRlZEV4dGVuZGVkQ2FyZCI6dHJ1ZSwidXJsIjoiaHR0cHM6Ly9mcm9nZ2l0LmFpL2EyYSIsInZlcnNpb24iOiIxLjAuMCJ9.89MBogAUgmZTGnDQJSyiVzaeUyZL8BDQHUfUI6eRzZ4GLfoF9KBtP_4j0bbKF8nX7mVeDC14TftlYXyK4dMYBQ",
      "payload_hash": "8a1aea7862e9babfbc39c77366e033f5c652fe8ff934583d8b1bcad13dfb0211",
      "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."
    }
  ]
}