This policy describes how ZettaPay (the “protocol”, “we”, “us”) handles information when you use this website, use ZettaPay Cloud and its API, or pay an invoice created through our infrastructure. We process the minimum data required to operate a non-custodial crypto payment service — nothing more.
1. Non-custodial by design
ZettaPay never requests a wallet connection. We do not custody funds. We do not hold private keys and we never sign transactions. Every payment settles directly from payer to merchant on-chain, in Bitcoin or in USDC / USDT on Base. Our role is limited to:
- Working out where each invoice should be paid, from the public key material the merchant supplied.
- Observing the public Bitcoin and Base ledgers to detect confirmed transfers.
- Dispatching signed webhooks to merchant endpoints on confirmation.
2. Self-hosted and Cloud
- Self-hosted. The open-source listener (
@zettapay/listener) runs on your own infrastructure. Your configuration, invoices and webhooks stay with you; the listener sends us no telemetry and you need no account with us.
- Cloud. We run the listener for you. The rest of this policy describes what that involves.
3. What we collect
3.1 Merchant data (Cloud)
- Contact email — for access to your account and operational notices.
- Shop name — the name you choose for your account.
- Public key material — a BIP-84 xpub for Bitcoin, and an xpub or a fixed receive address for Base. This is public information: it lets us derive and watch receive addresses, and cannot move funds.
- Webhook URL — required to be served over TLS.
3.2 Invoice metadata (Cloud)
- Invoice identifiers, amounts, asset and chain, statuses, timestamps, public receive addresses and transaction hashes. Addresses and transactions are already public on-chain.
- Optional
metadata fields you attach to invoices (e.g. order IDs). Do not put personal data there.
3.3 Operational data
- Request logs (IP, user agent, endpoint, status), used for abuse detection and rate limiting.
- Error traces via Sentry.
4. What we do not collect
- Private keys, seed phrases, or signed transactions from any wallet.
- Identity documents of any kind. ZettaPay is identity-free: there are no identity checks for merchants or for payers.
- Cardholder data or bank details for the payments you receive — ZettaPay does not process fiat payments between payers and merchants.
- Behavioral tracking cookies or third-party advertising pixels.
5. How we use information
- To create invoices, watch the chain and confirm payments.
- To authenticate merchant API calls and account sessions.
- To deliver webhooks and send operational or security notices.
- To apply plan limits, enforce rate limits, detect abuse, and comply with applicable law.
We do not sell or rent your data, and we do not share it for marketing purposes.
6. Sub-processors
We rely on a short list of infrastructure providers:
- Vercel — hosting and edge compute.
- Supabase — managed Postgres.
- Sentry — error monitoring.
- Blockchain RPC providers — read-only access to public Bitcoin and Base ledger state.
7. Data retention
We keep account and invoice records for as long as your account is active, and operational logs only as long as they are useful for the purposes above. You may request deletion of your merchant account through the contact channel below. On-chain records cannot be deleted — that is the nature of public blockchains.
8. Your rights
Subject to local law, you may request access to, correction of, or deletion of personal data we hold about you. Contact us through the channel in section 13 and we will respond within 30 days. EU and UK residents have additional rights under the GDPR/UK GDPR, including the right to lodge a complaint with a supervisory authority.
9. Security
- TLS enforced on every endpoint.
- Webhooks signed with HMAC-SHA256, with replay protection.
- Database credentials are kept server-side and never reach the browser.
- We hold only public key material, so a breach of our systems cannot move your funds.
10. International transfers
Our infrastructure is global. By using ZettaPay you consent to processing of operational data in jurisdictions where our sub-processors operate. Where applicable, transfers from the EEA/UK rely on Standard Contractual Clauses.
11. Children
ZettaPay is not directed to individuals under 18. We do not knowingly collect data from minors.
12. Changes
We will publish material changes here with a revised “effective date”. Continued use of the service after a change constitutes acceptance of the revised policy.
13. Contact
Privacy questions: open an issue at github.com/leandromaiam-code/zettapay saying you have a privacy request — please keep personal details out of the public thread and we will follow up from there.
General support: /contact