Paid Private File: sell a file for shielded ZEC, delivered over Nym

Live: https://paidprivatefile.zkglobalcredit.tech

Paid Private File is a non-custodial marketplace for selling a single file for Zcash. It pairs two privacy networks end to end: you get paid in shielded ZEC, and the file is delivered to the buyer over the Nym mixnet, so both the money and the delivery are private, and nothing readable ever sits on a server.

The Zcash side is fully non-custodial and view-only. A seller registers a Unified Full Viewing Key (UFVK)**. For every order, the platform derives a unique diversified Unified Address from that UFVK, pure offline crypto via zcash_keys, with no spend authority, and the buyer pays the seller directly into the seller’s own account. A light-client scanner (zcash_client_backend + lightwalletd over gRPC) detects the payment view-only, including an instant 0-conf mempool sighting, and settles the order once it confirms.

The delivery runs on Nym. The file is encrypted in the seller’s browser (AES-256-GCM) before it’s ever uploaded. After payment, the decryption key and the encrypted file travel browser-to-browser over the Nym mixnet, both browsers run the Nym SDK and talk directly through the mixnet, leaving no metadata trail of who sent what to whom. The buyer decrypts on their own device. (An encrypted HTTPS copy exists only as a fallback; the server holds ciphertext it can’t read, never the key or the plaintext.)

It’s live and proven on mainnet: real ZEC in, a real file delivered over Nym, decrypted locally, no email, no accounts, non-custodial. The whole stack is librustzcash + lightwalletd, the only thing you hand the platform is a view-only key.

Mini tutorial

Sell a file (seller)

  1. Create a shop: pick a public handle and paste a dedicated account’s view-only viewing key (UFVK). You get a one-time access key to log back in, no email.
  2. Upload your file and set a price in ZEC. It’s encrypted in your browser before upload.
  3. Copy the link and open it in a different browser or device than yours (the first browser to open it becomes the buyer, and Nym delivery needs two separate browsers). Sell one file at a time and keep the tab open during delivery.
  4. When the buyer pays, your browser automatically delivers the key + file over Nym.

Buy a file (buyer)

  1. Open the link: a private Nym receiver is set up automatically.
  2. Scan the QR / copy the address and pay the ZEC invoice (shielded).
  3. Once detected, the key and encrypted file arrive over the Nym mixnet (you’ll see a progress bar).
  4. The file is decrypted on your device and downloads automatically. Done.

Ex.:

File Created on Chrome

File Paid in Safari

8 Likes

dope af.

well done, team.

2 Likes

thanks mate! I genuinely enjoyed this project with a viewing key. A Viewing key can serve as a smart escrow, so the system identifies the payment, then releases it, since it derives a new shielded address per action, so a 1:1 match, similar to a simple “smart contract.”

4 Likes

Works! Neat and fun

1 Like

Update: now sells one file to many buyers (Unlimited or Limited), each gets their own private delivery over NYM, UX/UI improved, and fixed some bugs.

https://paidprivatefile.zkglobalcredit.tech/


6 Likes

Hey there @Michae2xl - I’m one of the developers behind the Nym SDK, just wanted to drop a comment and say (a) really cool project, and (b) really awesome to see ZCash projects being built with our stuff! I saw this on the ZKMesh newsletter and it was a really nice surprise. Keep it up!

5 Likes

The Zcash Brazil team is excited about the growth.

1 Like

Hey Max!

Glad to connect and thanks for the words and for sharing this newsletter, which I really appreciated.

Did you try it? Feedback is welcome.

1 Like