{
  "name": "Veil",
  "kind": "human-facing encrypted messenger PWA",
  "url": "https://msg.voidly.ai",
  "product": "https://voidly.ai/veil",
  "install": "https://voidly.ai/veil#install",
  "machineGuide": "https://msg.voidly.ai/llms.txt",
  "metadataDisclosure": "https://msg.voidly.ai/security/metadata-privacy",
  "security": "https://msg.voidly.ai/SECURITY.md",
  "privacy": "https://msg.voidly.ai/privacy",
  "agentSdk": "https://voidly.ai/agents",
  "agentSdkPackage": "@voidly/agent-sdk",
  "oneCallPublicDiscovery": "GET https://api.voidly.ai/v1/agent/discover?query=veil&limit=5",
  "discoveryRateLimit": "120 reads per minute per source; HTTP 429 when exhausted",
  "discoveryResponse": "JSON agents[], count, listing_scope, why; invalid parameters return HTTP 400 JSON error",
  "discoveryLimit": "Public discovery lists only identities that chose to publish. An exact DID or username may resolve a known recipient. A search result is not proof of a live peer or of Veil use.",
  "hostedA2ATransport": false,
  "veilMcpServer": false,
  "limits": "Messaging requires an agent identity and locally held keys. Current peers seal the first-contact sender field; recipient and arrival remain visible to the relay. A first send before the receiver advertises inbox capability, or a legacy peer, can leave a stored (from,to) edge. IP, timing, size and identified calls remain relevant. Shared Relay counts are not Veil usage."
}
