Privacy
What PayStage stores, and what it does not.
PayStage is a read-only payment-safety service. This page describes the data the hosted API records, the data the public site shows, and how to ask us to delete a row. It describes the code in this repository, not an aspirational policy.
Last updated 14 November 2026.
What we record
When an agent or client asks the hosted API to evaluate a payment, we record a telemetry event for the call. The event contains the tool name, the decision, the reason codes behind it, the network, the request latency, a timestamp and a source label: real, free-tier, synthetic or test. An evaluation event may also carry a request id, the facilitator status and an error class so a failed call can be diagnosed without guessing.
When a payment settles, a separate settlement event records the payer address and the transaction hash. Both are already public on the blockchain.
What we do not record
We do not create accounts, and we do not ask for a name, email address or any other profile. The events table has no IP address column, no cookie identifier and no device fingerprint.
The free tier enforces a soft limit of 1,000 free calls per IP per day. The counter lives inside a single worker isolate’s memory, so the real ceiling is that limit times the number of warm isolates. It is never written to the database and disappears with the isolate. We set no tracking cookies.
What is public
The live feed on the site reads a separate table called events_feed. That table stores an internal row id plus the tool, decision, source, network and time of a call. The site displays the last five; it does not show payer addresses, transaction hashes, request ids or error classes.
Payer addresses are public on-chain by nature. PayStage does not display payer addresses on the site. The live feed has no payer column, so the feed itself cannot tell you who paid.
Deletion
To ask for a telemetry row to be removed, email basebuzz69@gmail.com with the transaction hash or request id, or the approximate time and tool name. We will delete the matching row from the events record and, where it exists, the mirrored row in the public feed. We may ask for enough detail to find the row, and nothing more than that.
We cannot delete on-chain data. The payer address and transaction hash already exist on the public blockchain; removing our copy does not remove them from the chain or from block explorers.
Cookies and analytics
The marketing pages are statically prerendered by Next.js, and this privacy page contains no analytics code. The site loads no third-party analytics, advertising pixels or tracking scripts, and it does not use cookies to follow you. The console reads the public live feed directly with a Supabase publishable key; that key identifies the project, not the reader.
Changes
If this policy changes, the date at the top of the page changes with it. The page lives in the repository at apps/console/src/app/privacy/page.tsx, and the telemetry code it describes is public at apps/hosted/src/telemetry.ts.