How Benoxy works

Benoxy sends files and text from one of your devices to another straight through the browser. There is nothing to install and no account to create. This page explains what happens behind the QR code, what is encrypted, and what our servers can and cannot see.

1. Pairing with a QR code

When you open benoxy.com, your browser creates a temporary session with a random identifier and a random 256-bit encryption key. Both are put into the link shown as a QR code:

https://benoxy.com/#p=<session id>&k=<encryption key>

Everything after the # is the β€œfragment” of the link. Browsers never send the fragment to a web server, so the key stays on the devices that open the link. After reading it, the second device removes the key from its address bar and keeps it only in that browser tab.

2. A direct connection between the devices

To find each other, the two browsers briefly exchange technical connection details (network addresses and the parameters of the connection) through a signaling server. Benoxy currently uses the public PeerJS server for this step. Once the devices have agreed on a route, a direct WebRTC connection is opened between them and your data flows over it. The signaling server is not involved in the transfer itself.

3. Two layers of encryption

4. Sending and receiving

Files are read from your disk in small pieces, encrypted and sent one piece at a time, so even large files don't have to fit in memory on the sending side. The receiving device checks that every piece arrives in order and that the final size matches before offering the Save button. The progress bar on the sender shows data confirmed by the receiver, not just data queued for sending.

Received files are kept in the receiving browser's memory until you save them or close the page. Nothing is written to a server, and nothing is written to your disk unless you click Save.

5. Who can join a session?

The link is the key to the session. The first device that opens it is connected automatically β€” that is the phone you scan the code with. After that, any other device must be approved on the device that shows the QR code, even while the first one is temporarily away. Only share the link with yourself or people you trust, and press End session if you think it leaked.

6. Sessions that survive a locked screen

When a device joins, it creates a random device identifier that is only ever sent inside the encrypted connection. If the connection drops β€” the phone locks, you switch apps, the network changes or a page reloads β€” the devices notice within seconds, and the device that joined reconnects automatically as soon as Benoxy runs on it again. The device showing the QR code recognises its identifier and lets it back in without asking.

This works for 10 minutes after the devices were last in contact. To make it possible, the joining browser keeps the session link, its key, the device identifier and the other device's name in its local storage. Benoxy deletes them once the session has expired (at the latest the next time you open Benoxy), or immediately when you press End session or Leave.

What our servers can and cannot see

ServerCan seeCannot see
Website hosting (benoxy.com)Standard request logs when the page loads (IP address, browser type)The session key, your files, file names, text
Signaling server (PeerJS)Random session identifiers, IP addresses and connection details exchanged during pairingThe session key, your files, file names, text

Limits worth knowing

Start a transfer