What ZecLink stores and leaks

Short version: almost nothing, and here's exactly what. Same for everyone, whether you sell, stream, freelance or run a group.

Your address, amount, label, memo, due date

Only inside the link, after the #

Browsers never send the # part to a server, so ZecLink's server, CDN and logs never see it.

Payment link database

None

There's no database. Close the tab and the only copy is the link you shared.

Wallets and accounts

We don't make any

ZecLink never creates, holds or touches a wallet. You use your own and keep your own keys.

Payer identity, IP, wallet

Not collected

No accounts, no cookies, no analytics, no fingerprinting. The payer's wallet talks to the Zcash network, not to us.

Spending keys and seed phrases

Never

ZecLink never asks for them.

Remembered address

Your browser only

If you tick "remember my address on this device", your address is saved in this browser's local storage so it's filled in next time. It's never sent to us. "Forget it" deletes it. API keys are never remembered.

Third-party requests from your browser

None

A strict Content-Security-Policy only allows this site. Fonts and icons are served from this site and QR codes are drawn on your device.

On-chain

ZecLink only accepts shielded addresses (Unified u1… or Sapling zs1…). Transparent t…, TEX and old Sprout addresses are rejected because they leak. A shielded payment hides the sender, receiver, amount and memo from everyone except the people involved.

Default: direct payments

  • You paste your own address. The payer's wallet pays it straight from the QR code or link.
  • Nobody but you and the payer is involved. No third party sees anything.
  • Because nothing holds a viewing key, the page can't see the payment. It says "waiting for payment" and the payer can tap "I've sent it". That's only a note on their device, never a confirmation. Check your wallet.

Optional: live tracking with your own CipherPay account

  • If you have a CipherPay account (it holds a read-only viewing key for your wallet), you can paste its API key when making a fixed-amount payment link. Your browser sends it to ZecLink's server once, the server uses it for that single request to CipherPay and drops it. It's never saved, logged, put in the link or kept in your browser.
  • CipherPay gets only an amount and the generic name "ZecLink payment". Your label, memo, name and due date never go to its API. It returns a fresh one-time address in your wallet, so separate payments can't be linked on-chain.
  • Your memo is added to the payment request in the browser, after CipherPay's short reference code (like CP-1A2B3C4D), and travels only inside the encrypted memo. CipherPay spots the payment by its unique address, so it doesn't need the memo.
  • Who sees what: CipherPay sees the amount and, using your viewing key, the payment that comes in. Since it holds that viewing key, it could technically read the memo too. Nobody else sees any of it. The page checks status through ZecLink's own server (/api/status/<id>), so the payer's browser never talks to CipherPay.
  • Links with an open amount (the payer picks it) can't use your own CipherPay key. Each payment would need a fresh CipherPay invoice made later, which would mean keeping your key, and we won't do that. So open-amount links are direct payments (this site owner's own link is the only exception).

Honest limits

  • Anyone you give the link to can read the payment details. Share it like you'd share an invoice PDF.
  • Like any website, the host (Vercel) sees page paths and visitor IPs. Paths only hold a random id or the CipherPay payment id, never the address or amount.
  • The USD estimate comes from CipherPay's public price feed, fetched by our server, not your browser.
  • The payer trusts the link sender to give the right address, same as with any invoice or bank details.