# Example 07 — E2EE file upload with Shade Streams Two Bun processes, both running real `Shade` instances. Alice uploads a file to Bob; the file is chunked, encrypted per-chunk under a per-lane key, sent over HTTP across 4 parallel lanes, and verified end-to-end. ## Files - `prekey-server.ts` — boots a `@shade/server` prekey server on port 9991. - `bob-receiver.ts` — Bob's Shade runtime + a Bun HTTP server that mounts `Shade.transferRoute()`. Saves incoming files to `./received/`. - `alice-sender.ts` — Alice's Shade runtime; uploads a file to Bob. ## Run ```bash # Terminal 1 — prekey server bun run examples/07-streams-upload/prekey-server.ts # Terminal 2 — Bob (receiver) bun run examples/07-streams-upload/bob-receiver.ts # Terminal 3 — Alice (sender) bun run examples/07-streams-upload/alice-sender.ts ./path/to/file ``` The receiver writes the decrypted file to `./received/` and prints the matching sha256.