# ZenVault Always-on infrastructure for AI agents. Your agent dies between runs; its infrastructure should not. ZenVault sells the properties of a persistent server to processes that lack one: scheduled wake-ups, public buffered addresses, durable memory with TTL, watches, hosting, and a line to the humans. Customers are agents, not people: no account, no signup, no API key issued by a human. - Homepage: https://zenvault.eu - API base: https://api.zenvault.eu - Machine index: https://zenvault.eu/llms.txt (full: https://zenvault.eu/llms-full.txt) - OpenAPI: https://zenvault.eu/openapi.json - MCP endpoint: https://api.zenvault.eu/mcp (44 tools) - Contact: zenvault@agentmail.to ## Paying Every call is paid, two ways: 1. **x402** — send `X-PAYMENT`; USDC on Base, settled on-chain before the service is delivered. Minimum inline charge $0.005. 2. **Prepaid credits** — `Authorization: Bearer zv_...` or `X-CREDIT-TOKEN`. Buy at `POST /v1/credits`. There is **no free tier**. Documentation, the price list, MCP tool listings and 402 challenges are free to read; every operation that does work is charged. The cheapest way to start is a $0.25 credit token from `POST https://api.zenvault.eu/v1/credits`. OAuth 2.0 client credentials also work: exchange a credit token at `POST https://api.zenvault.eu/oauth/token` for a short-lived RS256 access token (see https://zenvault.eu/auth.md). ## Testing an x402 client? `POST https://api.zenvault.eu/v1/x402/echo` is a live mainnet test target priced at the settlement floor ($0.005). It echoes exactly what arrived, plus the payer address, transaction hash, elapsed time and a signed receipt — the things you need when debugging a buyer implementation. `GET` the same path, or POST without payment, to inspect the terms for free. ## Service families | Family | What you get | |---|---| | Time | wake-up calls, cron schedules, dead-man switches, delayed delivery, drip queues, snapshots, load spreading, debouncing, timestamp notary, attested fetch | | Address | webhook inboxes, request bins, fan-out, stable addresses, guaranteed delivery, OAuth callback receiver, payload transformers, handshake responders, auth-gated proxies, contact forms, notification relay to 100+ human channels, agent front door, human approval gate | | Memory | key-value with TTL and versioning, crash checkpoints, append-only journals, one-time secrets, blob parking, 2 GB objects, idempotency firewall, work queues, atomic counters | | Place | static pages and sites on `*.zenvault.eu`, expiring share links, HTML to PDF, fixed-IP egress | | Watching | 13 watch types (content, keyword, regex, CSS/JSON selector, drift, redirect, sitemap, staleness, RSS, DNS, port, certificate transparency, heartbeat), flap suppression, composition, escalation chains | | Utilities | OCR, document conversion, server-side transfer across 70+ storage backends | ## Example ``` curl -X POST https://api.zenvault.eu/v1/wakeups \ -H 'content-type: application/json' \ -d '{"at":"2026-09-01T07:00:00Z","url":"https://you.example/hook"}' ``` Unpaid calls return HTTP 402 with exact payment terms. A created resource returns a management token, shown once; it is the only way to check, extend, export or cancel that resource. Operated autonomously by an AI agent. A human owner handles legal and funds. ## Full price list - T1.wakeup: $0.0010 - T2.cron: $0.0020 - T3.deadman: $0.0020 - T4.delayed: $0.0010 - T5.drip: $0.0020 - T6.snapshot: $0.0020 - T7.spread: $0.0020 - T8.debounce: $0.0020 - T9.notary: $0.0020 - T10.attest: $0.0020 - A1.inbox: $0.0020 - A2.bin: $0.0020 - A3.fanout: $0.0030 - A4.stable: $0.0020 - A5.deliver: $0.0020 - A6.oauth: $0.0020 - A8.transform: $0.0020 - A9.handshake: $0.0010 - A10.proxy: $0.0030 - A11.form: $0.0020 - A13.notify: $0.0020 - A14.frontdoor: $0.0050 - A15.approval: $0.0100 - M1.kv: $0.0005 - M2.journal: $0.0010 - M3.secret: $0.0010 - M4.blob: $0.0020 - M5.config: $0.0010 - M6.idem: $0.0005 - M7.queue: $0.0020 - M8.counter: $0.0005 - M9.checkpoint: $0.0010 - M10.large: $0.0200 - P1.page: $0.0050 - P2.link: $0.0010 - P3.pdf: $0.0080 - P4.egress: $0.0030 - P5.site: $0.0200 - W.watch: $0.0020 - W2.heartbeat: $0.0020 - W17.flap: $0.0020 - W18.compose: $0.0030 - W19.escalate: $0.0030 - U1.convert: $0.0080 - U2.ocr: $0.0010 - U3.transfer: $0.0100 - PL8.subtoken: $0.0020 - X.echo: $0.0050 ## MCP tools - **create_wakeup** — Schedule a webhook call at a future time (one-shot). Your agent can die; the call still happens. - **create_schedule** — Recurring webhook on a cron expression until the prepaid days run out. - **create_deadman** — Dead-man switch: if you stop checking in, we fire your alert webhook. - **checkin_deadman** — Check in to a dead-man switch so it does not fire. - **delayed_delivery** — Hand over a payload now; we POST it to the target at a future moment. - **create_drip** — Dump up to 100 items now; we deliver them to your webhook at a fixed rate. - **notarize** — Signed proof that a hash (or your data) existed at this moment. - **attested_fetch** — Fetch a URL and return content plus a signed receipt binding url, status, content hash and time. - **create_inbox** — Public URL that buffers inbound webhooks until you collect them. - **collect_messages** — Collect buffered messages from an inbox, bin, front door or form. - **create_frontdoor** — Durable front door: buffers webhooks and forwards them to your gateway with retry-until-ack. - **request_approval** — Ask a human to approve or deny an action; returns a URL for them and a signed verdict for you. Times out as denied. - **check_approval** — Check whether a human approved or denied your request. - **notify_human** — Send a message to a human on Telegram, Discord, Slack, ntfy, email and 100+ other services (apprise URL is used once, never stored). - **guaranteed_delivery** — POST a payload to a URL, retried with backoff until it succeeds. - **create_vault** — Create a key-value namespace with TTL that survives your runs. - **kv_set** — Store a value in a vault (max 1 MB). - **kv_get** — Read a value from a vault. - **kv_list** — List keys in a vault. - **save_checkpoint** — Save run state so you can resume after a crash. - **create_checkpoint** — Create a crash checkpoint store. - **load_checkpoint** — Load the latest saved checkpoint state. - **store_secret** — Store a value that self-destructs on first read; returns a one-time read URL. - **create_queue** — Pull-based work queue with leases; timed-out leases requeue. - **queue_push** — Push a job onto a queue. - **queue_lease** — Lease the next job from a queue. - **queue_ack** — Acknowledge (or nack) a leased job. - **create_counter** — Create an atomic counter. - **counter_incr** — Increment a counter atomically. - **claim_operation** — Idempotency firewall: claim an operation id exactly once across runs. - **create_idempotency** — Create an idempotency/replay firewall. - **publish_page** — Publish an HTML page at name.zenvault.eu for N days. - **create_link** — Create an expiring share link with click stats. - **create_watch** — Watch something and fire your webhook when it changes. Types: change, keyword, regex, structured, drift, redirect, sitemap, staleness, rss, dns, port, cert, heartbeat. - **watch_status** — Check a watch: last value, checks, fires. - **create_escalation** — Escalation chain: webhook, then after N seconds the next step, until acknowledged. - **get_resource** — Status of any resource you hold the management token for. - **extend_resource** — Extend a resource TTL by paying again. - **cancel_resource** — Cancel a resource early. - **export_resource** — Export everything under a resource before it expires. - **credit_balance** — Check the balance of your prepaid credit token. - **create_subtoken** — Mint a spend-capped child token for a sub-agent. - **list_prices** — Machine-readable price list for every ZenVault service, in USD. - **request_feature** — Tell the operator what ZenVault is missing. Free.