Skip to main content
This page walks you through how HashDrop’s peer-to-peer file transfer works, from selecting files on the sender’s device to the automatic download on the receiver’s side. The entire exchange happens directly between two browsers; no file ever touches a server.
HashDrop never stores your files. The signaling server only brokers the initial connection and steps away before any data moves. Once the WebRTC tunnel is open, your files travel exclusively between the two devices.

How transfer works

HashDrop splits each file into 16 KB binary chunks and streams them over an encrypted WebRTC data channel (DTLS/SRTP). When all chunks arrive, the receiver reassembles them and verifies the result against a SHA-256 hash computed on the sender’s side. If the hashes match, the file downloads automatically.

Transfer status lifecycle

The UI reflects the following states as a transfer progresses:
StatusMeaning
idleNo file selected, waiting for user action
generatingCreating the secure warp code via Web Crypto API
readyCode generated, waiting for a receiver to connect
connectingWebRTC handshake in progress
connectedPeer connection established
transferringChunks streaming to the receiver
completedAll chunks received and SHA-256 verified
failedConnection or integrity check failed

Sender workflow

1

Open the transfer page

Navigate to File Transfer from the home screen. Enter a username when prompted — it will be shown to the receiver on the incoming request screen.
2

Select your files

Click Choose files or drag and drop one or more files onto the drop zone. HashDrop supports any file type up to 10 GB per file. You can select multiple files at once.
3

Get your warp code

HashDrop generates a cryptographically secure ADJECTIVE-NOUN code (e.g., COSMIC-FALCON) using the Web Crypto API. Share this code — or the auto-generated QR — with your receiver. The code expires in 5 minutes.
4

Wait for connection

The status moves from readyconnectingconnected as the receiver enters the code and the WebRTC handshake completes.
5

Transfer starts automatically

Once connected, HashDrop begins streaming 16 KB chunks immediately. A live transfer speed indicator shows the current throughput in MB/s.
6

Transfer complete

When the status reaches completed, the receiver has the file and SHA-256 verification has passed. You can start a new transfer or close the tab.
If you only need to send a URL or a short text snippet rather than a file, switch to Text / Link mode on the transfer page. The same warp code flow applies — the receiver gets the text delivered directly over the data channel and can copy it instantly.

Multiple files

When you select more than one file, HashDrop automatically packages them into a single ZIP archive (hashdrop-<timestamp>.zip) using DEFLATE compression before transfer. The receiver downloads one ZIP containing all your files.
You can also manually zip your files before dropping them if you want a custom archive name or specific compression settings. Using multi-file selection is more convenient, but both approaches result in a single transfer.

Build docs developers (and LLMs) love