Roadmap
What ships in v0.1, and what is out of scope.
Public Beta · early access
Tollstile is in public beta. The core payment lifecycle is implemented, but some rails and runtime integrations still need production verification. The v0.1 release includes the implemented areas below; packages are not on npm yet.
v0.1
| Area | Contents | Status |
|---|---|---|
| Core | Quotes, authorizations, charges on two axes, authorization and upfront flows, variable prices, dynamic prices, request commitment, execution plans and rail exclusion, payer-scoped idempotency and result references, structured denial codes/actions, redaction, reconciliation, events | Implemented |
| Conformance | railConformance(), RailHarness, ConformanceCase from tollstile/testing; shared ledger tests | Implemented; fake-provider coverage, with unsupported harness cases reported as skipped |
| Policies and requirements | subscriber, credits with reservations, payPerCall, limit, payers, when | Implemented |
| Test rail and memory ledger | Failure simulation, tollstile/testing contexts and fake clock | Implemented |
| Adapters | Hono, MCP, Express, create-tollstile | Implemented; tested with the real frameworks |
| Adapters | Next.js, fetch (Workers, Deno, Bun) | Implemented; tested with Web-standard requests, not yet run inside Next.js or on Workers, Deno, or Bun |
| Rails | x402 (exact, upto), MPP (Stripe charge, Tempo charge), L402, KYAPay | Implemented; tested against fakes, published vectors, and reference libraries; not verified against live providers |
| Rails | MPP Tempo session | Experimental |
| Requirements | verifiedAgent() (Web Bot Auth) | Implemented; tested against RFC vectors, not verified against a live agent |
| Requirements | userMandate() (AP2) | Experimental |
| Ledgers | Postgres, SQLite (including D1) | Implemented; tested on PGlite and node:sqlite |
Before v0.1 is published
- Verify each rail against its live provider: x402 on Base Sepolia with a real facilitator, Stripe test mode and Tempo Moderato for MPP, LND on regtest for L402, the Skyfire sandbox for KYAPay.
- Run the Next.js and fetch adapters inside Next.js and on Workers, Deno, and Bun, and the D1 and Neon ledger adapters against those services.
After v0.1
escrowflow (settle a deposit, then the final amount)- OpenTelemetry package built on
onEvent npx tollstile reconcileCLI
Out of scope
| Not planned | Why |
|---|---|
| Commerce checkout protocols (ACP, UCP) | Catalogs, carts, and orders are a different problem from per-call payment |
| Handling raw card data | Cards go through a provider |
| Custody, swaps, or a token | Tollstile never takes custody of funds |
| Issuing agent identities | Tollstile verifies evidence; it does not issue it |