Zero-Storage · Zero-Knowledge

Send any file, directly. We never see it.

Your browser encrypts every chunk with AES-256-GCM and streams it straight to the receiver over a WebRTC DataChannel. No upload. No server-side copy. The decryption key lives only in the link’s #fragment — browsers never send it to us.

  • End-to-end encrypted
  • No file-size cap on the wire
  • Nothing stored, ever
Senderencrypts in browser
Receiverdecrypts & saves
Our servers only exchange connection metadata (SDP/ICE).
0 bytes of file data · 0 keys
https://p2pstreamer.app/r/Zk3v9QxL2mPaT7rWc1HnYe#key=8fQ2…Xw1n_v9a ↑ Everything after “#” stays inside the browser and is never transmitted.
Features

Built like a vault, feels like a link

A transfer tool where privacy isn’t a policy — it’s the architecture.

Zero-Storage streaming

Bytes flow device-to-device. There is no bucket, no queue and no temporary copy for anyone to leak, subpoena or scan.

no bucketno queueno copy

Client-side AES-256-GCM

A fresh 256-bit key is generated per transfer with WebCrypto. Every chunk is authenticated, so tampering or truncation is detected.

WebRTC DataChannels

Direct peer connections with STUN/TURN fallback, flow control and windowed acknowledgements for steady multi-GB throughput.

Key stays in the #fragment

Links look like /r/ID#key=…. Fragments never reach servers, and we send Referrer-Policy: no-referrer everywhere.

/r/ID#key=…no-referrer

Straight-to-disk saving

Receivers stream decrypted data directly into a file via the File System Access API, so RAM stays flat even for huge files.

Slugs & delivery logs

Pro users get memorable /s/your-name links and content-free delivery receipts: size, time, outcome — never names or contents.

How it works

Three steps. Zero trust required.

01

Pick a file

Drop it into the app. A random AES-256 key is generated locally and never leaves your device except inside the link you share.

02

Share the link

Send /r/ID#key=… over any channel. Keep your tab open — your device is the server.

03

Stream & verify

The receiver proves it holds the key, accepts the file, and decrypts chunk by chunk while saving to disk.

Security model

What our servers can — and can’t — see

DataVisible to P2P Streamer?Why
File contentsNeverEncrypted in the browser, sent peer-to-peer.
File name & typeNeverEncrypted metadata frame inside the DataChannel.
Encryption keyNeverOnly in the URL fragment; not sent in HTTP requests or referrers.
SDP / ICE candidatesYes (transient)Needed to connect the peers; deleted when the session expires.
Declared size, timing, outcomeYesUsed for plan limits and your delivery log.

Receivers prove possession of the key (an encrypted handshake bound to the session) before any file data is sent, and every chunk carries an authenticated counter to prevent reordering, replay and truncation.

Pricing

Start free. Scale when you need to.

Secure checkout by Paddle. Prices shown in your local currency when available.

Free

$0forever

For quick, occasional transfers.

  • 3 transfers per day
  • Up to 1 GB per file
  • AES-256-GCM end-to-end
  • Links valid for 24 hours
Create free account

Pay as you go

$5/ 10 tokens

No subscription. One token = one transfer up to 10 GB.

  • Tokens never expire
  • Unused links refund the token
  • Works on top of the Free plan
Choose a token pack

Token packs

10 tokens

10 transfers · up to 10 GB each

$5
50 tokens

50 transfers · best value

$20

FAQ

Good questions

Does the sender have to stay online?

Yes. Because nothing is stored, the file streams from the sender’s device. Keep the tab open until the receiver finishes.

What if I lose the link?

The key exists only in the link. If it’s lost, the transfer can’t be decrypted — by anyone, including us. Just start a new transfer.

Which browsers are supported?

Chrome, Edge and other Chromium browsers stream straight to disk. Firefox and Safari work too, but buffer the file in memory, so very large files are limited.

Do receivers need an account?

No. Receivers are signed in anonymously and only need the link.

Can I cancel my subscription?

Anytime, from the billing portal in the app. Pro stays active until the end of the paid period.