Security & Trust
Your prompts are your prompts.
The proxy sees them in flight, and that’s it — we never have a plaintext copy at rest, your provider keys never land on our disk, and there’s an inbox at the bottom of this page for the thing we missed.
Controls in place today.
Every item below is implemented in code, on the main branch, live in production. No roadmap promises.
- 01
Prompts and completions are encrypted at rest
Every prompt and completion we hold for you is stored as ciphertext. We do not keep a plaintext copy in our database, our backups, or our logs — the only place your text exists in the clear is in memory for the brief moment we’re routing the request.
- 02
The edge cache is encrypted and key-isolated
Cached responses at the edge are encrypted with a dedicated secret that never leaves the worker environment. Cache lookup keys are derived in a way that does not leak workspace identifiers or prompt contents to anyone with namespace access.
- 03
Access keys are hashed, never stored in clear
Your proxy keys and REST API keys are hashed with a modern keyed hash before they hit the database. We store the prefix you see in the UI for identification, but the secret itself is never in the clear. Revocation propagates across the edge in under a second.
- 04
Your provider keys never persist on our infrastructure
Your OpenAI / Anthropic / OpenRouter keys ride with the request to the upstream provider and drop out of memory the moment the response is returned. We don’t log them, cache them, or write them to disk. The proxy is BYOK by design.
- 05
Outbound webhooks are restricted to known destinations
Slack and Discord alert webhooks are validated against the canonical destinations each provider publishes — anything else is rejected, so an alert webhook can’t be redirected at internal infrastructure. The URLs themselves are also encrypted at rest.
- 06
Encrypted in transit, end-to-end
Every hop between your application, the edge proxy, our ingest API, and our database is encrypted with modern transport-layer security. HSTS is enabled with preload on every Tokenwise domain.
- 07
Strict browser security headers
Every page response carries a strict Content-Security-Policy, clickjacking protection, MIME-sniffing protection, a tight referrer policy, a locked-down Permissions-Policy (camera, mic, geolocation disabled), and cross-origin isolation.
- 08
Rate-limited auth & write endpoints
Login, signup, password-reset, account deletion, billing checkout, webhook receivers, workspace creation and API-key creation are all rate-limited per IP or per user. Credential stuffing, account enumeration and burst abuse get throttled before they reach the database.
- 09
Multi-workspace isolation
Every workspace lives behind an opaque identifier. Cache lookups, request reads, eval runs, alert deliveries and the public REST API are scoped at the query layer — there is no cross-workspace fall-through. Workspace members carry an explicit role that gates writes.
- 10
Payload storage is opt-out, per workspace and per tag
Payload storage is on by default because that’s what makes Insights, Optimize and Evals useful. You can disable it for an entire workspace, or for a specific tag (e.g. payments traffic), from Settings. When disabled we keep the metrics — cost, latency, tokens — and store nothing for prompts and completions.
- 11
Data retention is enforced
Requests roll off after your plan’s retention window (60 days on Indie, 180 days on Pro). Expired cache entries are purged daily. Account deletion cascades through every workspace-scoped table in a single transaction.
- 12
Sessions are server-side and revocable
Sessions live in our database, not in opaque client tokens. They’re stamped with IP and User-Agent, expire on a sensible rolling window, and you can revoke any session from Settings.
- 13
Responsible disclosure inbox
Found something we missed? Email [email protected] with a reproducer and we’ll get back to you. Responsible disclosure earns a public credit (or silence, your call).
Frequently asked.
The questions early customers ask before they ship the integration to prod.
Can you read my prompts?
What if I turn off payload storage entirely?
Where is data hosted?
Can I export everything?
Have you been audited?
How do I report a vulnerability?
Disclosure.
Found something? Don’t open a public issue. Email [email protected] with a reproducer or a write-up. Responsible disclosure earns a public credit (or silence, your call) and, on a case-by-case basis, lifetime Pro on the house.