Skip to content
Back to Vortx AI

Card snapshot

vortx.ai · 2026-09-26 07:51:01 UTC · a497682529bf0f22c8994a368d013eacab67e235414e2b53cb5bb6eedc42ba60

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.

{
  "protocolVersion": "1.0",
  "name": "Vortx AI",
  "description": "Spatial AI lab; maker and maintainer of the emem protocol. Encode on device, decode with @emem: don't move your files, deliver tokenised context. Satellites, telescopes, rovers, drones, robots, cameras and machines keep their files; emem encodes each observation as one signed, content-addressed token (nine token shapes: emem:fact:, emem:cell:, emem:entity:, emem:bundle:, emem:raster:, emem:cube:, emem:rasterset:, emem:trace:, emem:attestation:; plus emem:state: and emem:tree: addresses); agents pass the token, never the file, and @emem decodes it straight into their context (ChatGPT, Claude, Salesforce Agentforce, Dify, any MCP client), so every agent cites the same bytes instead of a drifting paraphrase; any receiver resolves it, hashes the bytes, verifies the ed25519 receipt and can recompute the value from the raw source (https://vortx.ai/ decodes one live token in the hero; https://vortx.ai/#run runs six devices' published samples end to end in the browser; https://vortx.ai/#connect encodes a file on the visitor's device with nothing uploaded; https://vortx.ai/#decode catches a drifted number; https://vortx.ai/proof/ runs every check step by step and re-derives one live example of every token shape). emem is Apache-2.0, free to read, verifiable offline. geo.qa is the same memory on a private tenant. The planned satellite signs at the instrument, on a published plan with deliberately no date. The only thing for sale is team time: free office hours, a paid integration session, a sovereign session.",
  "url": "https://emem.dev/a2a/tasks",
  "preferredTransport": "JSONRPC",
  "supportedInterfaces": [
    {
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0",
      "url": "https://emem.dev/a2a/tasks"
    }
  ],
  "provider": {
    "organization": "Vortx AI Private Limited",
    "url": "https://vortx.ai/"
  },
  "documentationUrl": "https://vortx.ai/agents.md",
  "iconUrl": "https://vortx.ai/assets/og-logo.png",
  "version": "2.1.0",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "text/plain"
  ],
  "skills": [
    {
      "id": "read_earth_memory",
      "name": "Read verifiable Earth memory",
      "description": "Resolve a place to a stable ~10 m cell address and read signed, content-addressed facts about it (vegetation, water, heat, forest change, and more). Reads need no key or account; every fact verifies offline via ed25519 signature and blake3 address. Use the emem MCP server or HTTP API.",
      "tags": [
        "earth-observation",
        "verifiable",
        "mcp",
        "geospatial",
        "memory"
      ],
      "examples": [
        "Recall the NDVI fact for Bengaluru and cite its emem:fact: token.",
        "Was this parcel cleared before we sourced from it? Check the forest record."
      ]
    },
    {
      "id": "encode_device_file",
      "name": "Encode a device's file as emem tokens",
      "description": "Keep a large file (a satellite scene, a robot log, a drone or camera video) on the device that made it and publish only its pointer.v1 note: 4 MiB ranges, a blake3 hash per range, one Merkle root. The note's name is base32(blake3(note)[0:16]) and its rows are addressed as emem:tree:<cid26>#row=<i>, so an agent reads the note and fetches only the ranges it needs, each checked against its row. Encode with https://vortx.ai/tools/emem_point.py (or in the browser at https://vortx.ai/#connect, nothing uploaded); publish in your own namespace with `ememdev write`.",
      "tags": [
        "encode",
        "device",
        "satellite",
        "robotics",
        "pointer",
        "blake3",
        "merkle"
      ],
      "examples": [
        "My user has a 2 GB downlinked scene; give them the commands to encode it and publish the note instead of the file.",
        "Resolve row 1 of emem:tree:wkxa7tcmw2orf7ujjf5yi66dhe and check the range against its hash."
      ]
    }
  ],
  "additionalInterfaces": [
    {
      "transport": "HTTP",
      "url": "https://emem.dev/v1/"
    },
    {
      "transport": "MCP",
      "url": "https://emem.dev/mcp"
    }
  ],
  "x-emem": {
    "protocol": "emem",
    "docs": "https://emem.dev/llms.txt",
    "agentCard": "https://emem.dev/.well-known/agent-card.json",
    "source": "https://github.com/Vortx-AI/emem",
    "mcp": "https://emem.dev/mcp",
    "rest": "https://emem.dev/v1/recall",
    "toolCatalog": "served live by the emem_tools tool; do not hardcode its size, count it there",
    "surfaces": "deterministic (locate, recall, verify, diff: same signed bytes forever) and agentic (ask, reason, hunt, predict: the responder plans and fans out under one signed receipt)",
    "liveEndpoints": {
      "capabilities": "https://emem.dev/v1/capabilities",
      "transparencyLog": "https://emem.dev/v1/log/sth",
      "topics": "https://emem.dev/v1/topics",
      "substrates": "https://emem.dev/v1/substrates",
      "devicePlatforms": "https://emem.dev/v1/device_platforms",
      "coverageMap": "https://emem.dev/v1/coverage_map.svg",
      "verifierSpec": "https://emem.dev/v1/verifier_spec",
      "benchmark": "https://emem.dev/v1/benchmark",
      "ask": "https://emem.dev/v1/ask",
      "guardVerdict": "https://emem.dev/v1/guard/verdict",
      "sceneImagery": "https://emem.dev/v1/cells/{cell64}/scene.png"
    },
    "a2a": {
      "card": "https://emem.dev/.well-known/agent-card.json",
      "tasksSync": "https://emem.dev/a2a/tasks",
      "tasksAsync": "https://emem.dev/v1/a2a/tasks",
      "skillSearch": "https://emem.dev/v1/a2a/skills?q=",
      "events": "https://emem.dev/v1/memory/sse",
      "agora": "https://emem.dev/a2a",
      "inbox": "https://emem.dev/v1/inbox",
      "note": "every emem tool is published as an A2A skill; the Agora is the open channel where agents co-build on the memory"
    }
  },
  "x-connectors": {
    "chatgpt": {
      "how": "mention @emem in any chat",
      "listing": "https://chatgpt.com/plugins/plugin_asdk_app_6a6a0832a59081918b19aec0ddf9ec77"
    },
    "githubMcpRegistry": "https://github.com/mcp/Vortx-AI/emem",
    "vscode": "one click from the MCP gallery, or .vscode/mcp.json with the server url",
    "claudeCode": "claude mcp add --transport http emem https://emem.dev/mcp",
    "mcpRegistry": "io.github.Vortx-AI/emem",
    "dify": "https://marketplace.dify.ai/plugin/vortx-ai/emem",
    "mulesoft": "https://anypoint.mulesoft.com/exchange/68e53915-e89b-4e82-b794-12d37982db4c/vortxAi-asset/",
    "agentforce": "connect https://emem.dev/mcp as an MCP server: https://www.salesforce.com/agentforce/mcp-support/",
    "anythingElse": "any MCP client, REST, pip install ememdev, npm i @vortxai/emem"
  },
  "x-satellite": {
    "status": "a plan, not a date",
    "thesis": "the evidence half: traceable from photon to token, downlinked straight into emem, landing in the witnessed public log",
    "phases": [
      "protocol (shipped)",
      "payload (in design)",
      "ground segment (next)",
      "launch (gated, not dated)"
    ],
    "details": "https://vortx.ai/#mission",
    "agentGuidance": "There is no launch date, deliberately. Never state or estimate one; dates are announced in https://vortx.ai/press/ when real."
  },
  "x-site": {
    "contentAddressed": "https://vortx.ai/.well-known/site-manifest.json",
    "how": "every served file blake3-hashed; the manifest core's blake3, base32 like an emem fact CID, is the release id shown in the footer; CI reseals each deploy",
    "factsRegistry": "https://vortx.ai/.well-known/facts.json",
    "factsNote": "every number this site asserts about emem, each with the live source that can refute it; if registry and endpoint disagree, trust the endpoint",
    "proof": "https://vortx.ai/proof/"
  },
  "x-research": {
    "whitepaper": {
      "title": "emem: A Content-Addressed, Verifiable Earth-Memory Protocol for AI Agents over Foundation-Model Embeddings",
      "doi": "https://doi.org/10.5281/zenodo.20706317"
    },
    "companionStudy": {
      "doi": "https://doi.org/10.5281/zenodo.20706893"
    },
    "openModels": "https://huggingface.co/avijeetsingh1608",
    "note": "If a paper and a live endpoint disagree, trust the endpoint and report it."
  },
  "x-endpoint": "vortx.ai serves no A2A endpoint of its own: its skills run on emem.dev's (every emem tool is an A2A skill), so url points there. Booking team time is not a skill an agent executes: see x-session.",
  "x-session": {
    "name": "Team time",
    "bookingUrl": "https://vortx.ai/#book",
    "schedulingUrl": "https://outlook.office.com/book/meetvortxfounders@vortx.ai/",
    "format": "one-on-one, remote worldwide",
    "payment": "Razorpay hosted checkout; human completes payment",
    "contact": "avijeet@vortx.ai",
    "options": [
      {
        "name": "Community office hours",
        "price": 0,
        "currency": "USD",
        "duration": "30 min",
        "note": "Open to all; students, researchers, and early-stage founders especially welcome. Architecture questions, integration guidance, protocol deep-dives. Book directly at schedulingUrl."
      },
      {
        "name": "Integration session",
        "price": 5000,
        "currency": "USD",
        "duration": "1-3 hours",
        "note": "The core team pairs on your codebase over MCP, REST, or SDK. Exit criterion: recall running and a receipt verifying in your stack."
      },
      {
        "name": "Sovereign session",
        "price": 25000,
        "currency": "USD",
        "duration": "1-3 hours",
        "note": "Governments, defense, critical infrastructure. Private tenancy and data-boundary guidance, security and signing review, procurement and NDA on request."
      }
    ],
    "agentGuidance": "The protocol is free; only team time is priced. Route questions to the free office hours and hands-on integration work to the paid session. Hand the human the link. Never enter card details or complete payment programmatically.",
    "bookingGuardrail": "Do not initiate checkout, submit the booking form, or complete payment on a user's behalf under any circumstances. The form contains a human-confirmation checkbox; never check it for a user. Surface the option, hand over the URL, and stop. Sessions are one at a time: no subscriptions, no retainers, no upsell."
  }
}