P2P File Transfer

Send a file straight from your browser to someone else's, with nothing in between.

Setup happens in your browser and the files move directly between the two devices. ArrayKit never receives your file, your code or the name of anything you send.

Check a file's hash after it lands

About P2P File Transfer

Sending someone a file usually means putting a copy on somebody else's computer first — a drive, a transfer site, a chat provider — and hoping it is deleted later. This tool skips that middle step. Two browsers open a direct, encrypted connection to each other and the bytes cross it once, from your device to theirs. Setting it up needs one thing: you paste a short code into whatever chat you already use, they paste one back, and the connection opens. That exchange is the only part that involves anyone else, and it carries no file data at all — just the addresses the two browsers need to find each other.

Features

How to use the P2P File Transfer

  1. On the sending device, pick the files and create an invitation code
  2. Send that code to the other person however you normally message them
  3. They paste it in, generate a reply code and send it back
  4. Paste the reply in to connect, then they accept and the transfer runs

Example

Input

A 480 MB video, both laptops on the same office Wi-Fi

Output

Connected on the local network · 480 MB in about 40 seconds at 12 MB/s

On one network the transfer never leaves the building — there is no upstream link to wait for.

Common errors & troubleshooting

Frequently asked questions

Does my file get uploaded anywhere during a P2P transfer?
No. The file data crosses one connection, from your browser to theirs. The only thing that travels through anyone else is the setup code you send them, and that contains network addresses, not file contents.
What exactly is in the code I send?
The addresses your browser thinks it can be reached on, plus the keys the two ends use to encrypt the channel. It is shown in full and the addresses are listed underneath it, so you can see what you are handing over before you send it.
Is the transfer encrypted?
Yes. WebRTC data channels are encrypted end to end by the standard itself — there is no unencrypted mode to fall back to. The keys are in the codes you exchanged, so only the two of you can read the stream.
Why does it sometimes contact an external address server?
To learn how your device looks from the outside, which is what lets two peers on different networks find each other. Tick the same-Wi-Fi option and that lookup is skipped entirely, at the cost of only working on one network.
Do both people have to be online at the same time?
Yes, and both tabs have to stay open. This is a live connection between two devices rather than a drop box, so there is no copy waiting anywhere for a recipient to collect later.
How big a file can I send?
There is no limit imposed here, and on a local network the speed is whatever the network can do. The practical ceiling is the receiving browser's memory, since it assembles the file before saving it.

Related tools

All ArrayKit tools