{
  "site": "kya.trulioo.com",
  "operator": "Trulioo",
  "description": "Entry point for what kya.trulioo.com publishes for agents. Every document below is served by THIS host. Claims about a specific agent - whether it is verified, what scopes it holds, when its attestation expires - are not restated here: resolve the identifier at the resolver below for the issuer's answer now. A copy of a claim in a static file outlives the revocation of the claim.",
  "issuer": "https://identity.trulioo.com",
  "resolver": "https://kya.trulioo.com/kya-api/kya/attestation/{id}",
  "documents": [
    {
      "path": "/",
      "type": "landing",
      "description": "Look up an agent by its Digital Agent Passport identifier and read what the issuer answers now"
    },
    {
      "path": "/readiness",
      "type": "assessment",
      "description": "Anonymous agent-readiness assessment: name a host, and this page fetches its public agent-discovery documents from an egress outside our network and reports what each standard defines, per row, with no score. The run itself is a POST to /kya-api/kya/readiness/public/assess, which is rate-limited, refuses a private-network subject, and is not a crawlable URL"
    },
    {
      "path": "/standards",
      "type": "reference",
      "description": "The standards each readiness row is read against - the document, the rule, and what our instrument can and cannot establish about it"
    },
    {
      "path": "/llms.txt",
      "type": "index",
      "description": "The short index for a machine reader: what this host publishes, the two forms the attestation is served in, and the rules for reading the assessment. Generated from the modules that render the pages, so it cannot describe a page that moved"
    },
    {
      "path": "/agent-readiness.md",
      "type": "guide",
      "description": "Every row the assessment measures, as markdown: the question, the standard behind it, whether that standard can be cited as a requirement, what to change, and which rows cannot report a shortfall at all. Grouped by the artifact each row is about, and generated from the same vocabulary the assessment runs on"
    },
    {
      "path": "/portal/llms.txt",
      "type": "index",
      "description": "The index for mcp.trulioo.com - a different host: one MCP connection for identity verification and the KYA verbs that issue and verify a profile. Named here because /llms.txt points at it and the crawl policy Allows it by name under an otherwise uninvited prefix"
    },
    {
      "path": "/portal/llms-full.txt",
      "type": "index",
      "description": "The same index for mcp.trulioo.com with every tool and its arguments spelled out"
    },
    {
      "path": "/portal/kya-agent-rules.md",
      "type": "guide",
      "description": "The operating rules for calling that MCP server, alone and sized to paste into a system prompt"
    },
    {
      "path": "/.well-known/ai-catalog.json",
      "type": "catalog",
      "description": "This document - the domain-level entry point for what this host publishes for agents"
    },
    {
      "path": "/sitemap.xml",
      "type": "sitemap",
      "description": "The public pages above, for a crawler"
    },
    {
      "path": "/robots.txt",
      "type": "crawl-policy",
      "description": "The crawl policy, including the group that names AI crawlers explicitly. Listed here because a crawler fetches it regardless of what it says, and a reader deserves to know it exists"
    },
    {
      "path": "/auth/jwks",
      "type": "json-web-key-set",
      "description": "The KYA session gateway's public keys. Not in crawl scope: a key set is fetched by a relying party that already knows it needs one"
    },
    {
      "path": "/kya-api/.well-known/http-message-signatures-directory",
      "type": "web-bot-auth-directory",
      "description": "Web Bot Auth signature directory: the keys a verifier fetches after reading a Signature-Agent header on a request from one of our agents"
    }
  ]
}
