Pay privately.
Use privately.
Your payment shouldn’t become your identity.
Buy digital access with shielded ZEC. Use it later with unlinkable, single-use credentials.
A private payment.
Shouldn’t create a usage profile.
Even a shielded payment can lead to a session that links every request. BlindPass breaks the direct cryptographic link between purchase and use.
Ordinary paid access
LINKED BY DESIGNPrivate payment. Identifiable usage.
Access with BlindPass
CRYPTOGRAPHICALLY UNLINKEDThe service verifies a credit, not a customer.
Three steps. No account required.
Pay with shielded ZEC.
Choose a fixed-price credit pack. Pay from your external Zcash wallet to a unique shielded receiving address.
Receive private credits.
Your device blinds token requests. The issuer evaluates them. Your device verifies the proofs and unblinds your credentials.
Use them on your terms.
Present one credit when you need access. It is verified and atomically spent, without a cryptographic pointer to your invoice.
Privacy has layers.
We’re clear about each one.
Cryptographic unlinkability is not total internet anonymity. Each layer has a specific job.
| Privacy layer | What it protects | What it doesn’t hide |
|---|---|---|
| Zcash | ↳ Shielded on-chain payment details | Your API request from the merchant |
| Blind credentials | ↳ The cryptographic payment-to-use link | Your IP, timing or browser fingerprint |
| Tor / relay | ↳ Source network identity at destination | Query contents or every correlation risk |
Paid access.
Without the identity stack.
One private credit, one request. Add accountless access to search, downloads, or your next data API. Start with the working TypeScript reference integration.
Read the integration guideWorkspace SDKs included. Packages are not yet published to npm.
import { blindpass } from "@blindpass/server"; // A credit proves access. Not identity. const protect = blindpass({ offer: "search-v1", cost: 1, redemption }); app.get("/search", request => protect(request.headers.authorization, () => search(request.query.q) ) );
One authorization. Two separate records.
The issuer authorizes a paid batch. The API verifies a credit, without receiving its purchase identifier.