PocketDropPrivacy & connection details

Your devices. Your files.

Updated October 31, 2026 · Version 0.8.15

Files stay on your devices

PocketDrop moves selected files through a direct WebRTC data connection. File contents, names, folder information, and transfer messages are encrypted on the sending device before transmission. They are not uploaded to a file-storage service. Incoming phone files stream into a real PC folder explicitly selected with Chrome’s folder picker. PocketDrop does not retain their contents in IndexedDB or create a second library copy. A successful transfer is reported only after integrity validation and the file writer closes. The resulting files are ordinary readable files on your PC, not encrypted at rest by PocketDrop. Chrome may use a temporary staging file during a write; this is not a retained PocketDrop library copy.

Existing library files and files manually imported from the PC still use the encrypted library. That library stores encrypted file contents and filenames in Chrome IndexedDB. Its non-exportable AES key is stored in the same browser profile. Folder names, file sizes, folder assignments, and timestamps are local metadata. This protects stored file bytes from casual inspection; it is not a password-protected vault and cannot protect an unlocked or compromised browser profile.

Phone downloads stay in your device’s Downloads or Files location. Received phone files use encrypted browser storage as a recovery copy and remain available after a reload until deleted. Downloads are started automatically after receipt; a browser may block them or show a save prompt. The phone webpage cannot confirm download completion: check your downloaded file before using Delete to remove its temporary copy. Preparing a large phone save also creates a temporary decrypted export; Delete removes both the encrypted source and that export. Ordinary file deletion does not promise forensic erasure from an SSD or downloaded copies.

Services used for connecting

Only after you choose Connect phone, open a valid private QR pairing link, or choose Connect to my PC does the app contact PeerJS Cloud at 0.peerjs.com to exchange connection setup messages. PeerJS can see random connection identifiers, network addresses, connection descriptions, and timing. Google STUN at stun.l.google.com helps the browsers discover their network addresses; it can see IP and connection metadata. Neither receives the pairing secret or application-decrypted file contents.

There is no TURN relay configured. Some carrier networks, VPNs, guest Wi-Fi, and firewalls will prevent a direct connection. Use the same home Wi-Fi and retry. Free signaling is shared infrastructure with no reliability guarantee; high-volume deployment needs a capacity review. Do not advertise unlimited or guaranteed connectivity.

The optional mobile app page is served as static code by GitHub Pages. GitHub receives ordinary page requests and logs visitor IP addresses. The URL fragment after # carries the private pairing information and is not part of the HTTP request. The app removes it from the displayed address when loaded. The phone keeps the private pairing credential in that tab’s sessionStorage to reconnect after a reload; it is not placed in localStorage or sent to the webpage host. Disconnect on the phone clears it. Expired credentials cannot reconnect. GitHub does not store your transferred files.

Provider information: PeerJS Cloud, Google privacy, GitHub privacy.

You choose every action

No AI services, analytics, tracking pixels, ads, browsing-history access, page content access, third-party account login, or scheduled transfers. The toolbar icon opens the working file manager in a popup. After you click Connect, an offscreen WebRTC document keeps your session and selected transfers running when the popup or PC page closes. The toolbar badge shows ON while a session is active and arrows during transfers. Reopening the popup restores the session controls. Connection heartbeats and live transfer messages run only while you explicitly have a pairing session open. Click Disconnect to stop them. Closing Chrome, clicking Disconnect on the PC, or session expiry ends the pairing. If the phone page reloads, the PC waits and the same phone tab reconnects within the original one-hour pairing period. Interrupted file transfers must be sent again.

Opening a valid private QR pairing link automatically starts pairing and authorizes that phone to send selected files to the PC and receive files the PC user selects. Only one phone can use a connection at a time. Pairing lasts up to one hour. Keep the QR/link private; someone with it could connect before your phone. Pairing authentication happens automatically using the private QR link.

The extension requests offscreen to maintain user-started WebRTC transfers and prepare user-requested local saves, downloads to save files and confirm completion, storage to retain only its own save-job identifiers for recovery after a restart, and host access only to https://0.peerjs.com for connection setup. It checks only downloads it starts and does not inspect unrelated downloads or browsing history. It requests no access to all websites, camera, microphone, or contacts. Your normal phone camera reads the QR code outside the extension.

Folders, retention, and deletion

For incoming phone files, choose a real PC folder before connecting. The folder handle and unfinished write metadata are stored locally in IndexedDB, without incoming file bytes. A local receipt keeps the most recently received filename, folder name, and completion time so the popup can show where that file was saved. Chrome controls folder permission and may ask you to grant it again. If access is unavailable, receiving fails rather than silently creating a library copy. Name collisions receive a numbered filename. Cancelled writes are aborted; interrupted sessions may leave an empty placeholder or browser staging data until recovery. Recovery preserves completed files; a zero-byte placeholder can remain after a crash because it cannot safely be distinguished from a completed empty file. Manage received real files in File Explorer; extension Trash and uninstall do not remove them. PC files to send appear in a single list. Deleting a file removes the library entry and encrypted contents. Saved Downloads copies are unaffected. Neither real received files nor completed PC library files have a scheduled expiry. Clicking Save prepares a temporary decrypted export in Chrome’s private file storage. Saving never deletes the encrypted PocketDrop file or its metadata. Completed, failed, or cancelled saves release the temporary decrypted export. Clicking To phone removes the PC library copy only after the updated phone page confirms receipt in its local browser storage. Failed transfers and older phone pages keep the PC copy. The phone starts a download automatically, but browser prompts or restrictions may require the user to tap Save. Download completion cannot be confirmed by the phone webpage; its recovery copy remains until the user deletes it. Trash also removes library copies; downloaded copies are unaffected. A restart recovery check handles unfinished saves; a crash can leave temporary data until recovery runs. The source and exported copy coexist briefly during saving, so sufficient disk space is required. Original files on your phone or files you previously selected from your PC are never deleted.

Uninstalling the extension, clearing Chrome data, losing your profile, or browser storage eviction can remove library files and keys. Download important files elsewhere. Your color-theme preference is stored locally on each device and is not sent to the connection service. No account, cloud backup, or recovery service exists. The file limit is 500 MB (524,288,000 bytes), encrypted temporary storage is limited to 5 GB / 500 files per browser library, and library folders to 50. Direct PC-folder receiving uses available filesystem space rather than the library quota. Large files are processed in bounded chunks. Saving a large file temporarily needs additional space for the export and downloaded file. Available Chrome storage can be lower.

Security scope and support

Uses WebRTC transport encryption plus AES-256-GCM application encryption, HMAC-SHA-256 pairing authentication, HKDF-SHA-256 directional session keys, ordered message counters, and SHA-256 integrity checks (complete-file hashes for legacy small transfers and an ordered digest of chunk hashes for streamed large transfers). It is unaudited software, not a promise of WhatsApp-equivalent security, anonymity, or protection from malware. People controlling either endpoint can access its files. Mobile users trust the delivered webpage code; extension users trust the installed package and its updates.

PocketDrop does not sell user data, use it for advertising or credit decisions, or send it to unrelated services. Use is limited to the disclosed personal file-transfer purpose, consistent with Chrome Web Store Limited Use requirements.

Project and issue reporting: FileTransfer on GitHub. Do not include private files, active pairing links, or secrets in public issues. Publisher: Tasnim Akhter. Support: tasnim454247734@gmail.com. Please do not send sensitive files or active pairing links when reporting an issue.