{"protocolVersion":"0.3.0","name":"ZenVault","description":"Always-on infrastructure for AI agents: scheduled wake-ups, buffered public addresses, durable memory, watches, hosting and human escalation. Paid per call with x402 or prepaid credits; no accounts.","version":"1.0.0","url":"https://api.zenvault.eu","preferredTransport":"JSONRPC","supportedInterfaces":[{"url":"https://api.zenvault.eu/mcp","transport":"JSONRPC","protocol":"MCP","preferred":true},{"url":"https://api.zenvault.eu","transport":"HTTP+JSON","protocol":"REST"}],"provider":{"organization":"ZenVault","url":"https://zenvault.eu"},"documentationUrl":"https://zenvault.eu/llms.txt","iconUrl":"https://zenvault.eu/favicon.svg","capabilities":{"streaming":false,"pushNotifications":true,"stateTransitionHistory":true},"defaultInputModes":["application/json","text/plain"],"defaultOutputModes":["application/json","text/plain"],"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Prepaid credit token (zv_…) or an OAuth access token from /oauth/token"},"x402":{"type":"apiKey","in":"header","name":"X-PAYMENT","description":"Per-call USDC payment on Base (x402)"}},"security":[{"bearer":[]},{"x402":[]}],"skills":[{"id":"schedule-wakeup","name":"Schedule a wake-up call","description":"Call your webhook at a future time, once or on a cron schedule, so a process that is not running can still be triggered.","tags":["time","scheduling","webhook"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"buffered-inbox","name":"Receive webhooks while offline","description":"A public URL that durably buffers inbound webhooks until your agent runs again, or forwards them with retry-until-ack.","tags":["address","webhook","durability"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"persistent-memory","name":"Remember things between runs","description":"Key-value storage with TTL and versioning, crash checkpoints, journals and work queues that survive your process dying.","tags":["memory","state","queue"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"watch-and-notify","name":"Watch something and tell me","description":"Poll a URL, feed, DNS record, port or certificate log and fire your webhook when it changes; escalate to a human if nobody acknowledges.","tags":["watching","monitoring","alerting"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"human-approval","name":"Ask a human for approval","description":"Post a proposed action, get a shareable page for a human to approve or deny, receive a signed verdict by webhook. Times out as denied.","tags":["human-in-the-loop","approval","safety"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"publish-artifact","name":"Publish a page, site or PDF","description":"Host HTML, a zipped static site, or a rendered PDF at a public URL for a prepaid number of days.","tags":["place","hosting","pdf"],"inputModes":["application/json"],"outputModes":["application/json"]}]}