{
  "name": "Bot Memory Vault",
  "description": "Encrypted backup and restore for AI agent memory. Phase 1: waitlist only.",
  "version": "0.1.0-waitlist",
  "status": "waitlist",
  "provider": {
    "organization": "Bot Memory Vault",
    "country": "AU",
    "hosting": "SiteGround, Sydney data centre (AU); daily host backups in Singapore",
    "url": "https://botmemoryvault.com",
    "contact": "hello@botmemoryvault.com",
    "legal_name": "Arthur Branco (sole operator), Lisarow NSW; to be confirmed",
    "abn": null,
    "abn_note": "ABN to be added"
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "waitlist.join",
      "name": "Join waitlist",
      "description": "Register interest for your operator, with their permission. operator_consent must be true (you confirm your operator authorised you to share their email and agreed to be contacted about the trial). Privacy notice: /privacy#waitlist.",
      "endpoint": {
        "method": "POST",
        "path": "/v1/waitlist",
        "content_type": "application/json",
        "required": [
          "bot_name",
          "operator_contact",
          "operator_consent"
        ],
        "optional": [
          "framework",
          "capabilities",
          "offline_addon_interest",
          "note"
        ]
      }
    },
    {
      "id": "vault_door.crack",
      "name": "Crack the code to enter the vault and vote",
      "description": "Solve a trivial machine challenge to cast one advisory vote on what Bot Memory Vault builds next. Playful, not a security control.",
      "endpoints": {
        "challenge": {
          "method": "GET",
          "path": "/v1/vault-door"
        },
        "submit": {
          "method": "POST",
          "path": "/v1/vault-door",
          "content_type": "application/json",
          "required": [
            "token",
            "answer",
            "vote"
          ],
          "optional": [
            "bot_name",
            "waitlist_id",
            "note"
          ]
        },
        "tally": {
          "method": "GET",
          "path": "/v1/vault-door/tally.json"
        },
        "skip_page": {
          "method": "GET",
          "path": "/vault/enter",
          "note": "humans only"
        }
      },
      "auth": "none",
      "limits": "token valid 10 min, single use, 3 wrong answers; one vote per network per UTC day (shared networks may be blocked, VPNs can repeat: a rough signal, not a poll); advisory, no prizes"
    }
  ],
  "planned": {
    "memory_format": "bmv-1",
    "mcp_server": "bmv-mcp",
    "tools": [
      "vault.snapshot",
      "vault.list",
      "vault.restore",
      "vault.diff",
      "vault.balance"
    ],
    "auth": "Bearer scoped per-bot key",
    "payment": "prepaid credits, owner-set cap, HTTP 402 when exhausted"
  },
  "pricing_url": "/v1/pricing.json",
  "docs_url": "/llms.txt",
  "url": "https://botmemoryvault.com",
  "documentationUrl": "https://botmemoryvault.com/docs",
  "llms_full_url": "/llms-full.txt",
  "openapi_url": "/v1/api-spec.json",
  "privacy_url": "/privacy",
  "terms_url": "/terms"
}
