Send it, with ErikrafT Drop™
Local file sharing 
Inspired by Apple's AirDrop and Schlagmichdoch's PairDrop.
Fork of PairDrop.
Minecraft Community
ErikrafT Drop™ Community
🔮|See possible old or future files that have not yet been released in the source code on Github or that have already been released in the past, which is on my computer in a 2nd public folder here on Mega 

File sharing on your local network that works on all platforms.
-
Desktop Applications
-
Extensions
-
A multi-platform AirDrop-like solution that works.
- Send images, documents or text via peer-to-peer connection to devices on the same local network.
-
Internet transfers
- Join temporary public rooms to transfer files easily over the Internet.
-
Web-app
- Works on all devices with a modern web-browser.
-
Discord integrations
- Send files directly from Discord using the example bot located at
Discord/Bot. The device appears on the website with a Discord icon, and transfers occur in real time using the official WebSocket fallback. - Publish a custom activity from
Discord/Activitiesto embed ErikrafT Drop™ directly inside Discord with automatic device identification.
- Send files directly from Discord using the example bot located at
-
iOS Share Menu integration
- Send images, files, folders, URLs, or text directly from the iOS share menu using a custom Shortcut.
Download the shortcut:
Send a file from your phone to your laptop?
Share photos in original quality with friends using Android and iOS?
Share private files peer-to-peer between Linux systems?
Want to help make ErikrafT Drop™ available in more languages? You can contribute to the translation efforts at:
https://crowdin.com/project/erikraft-drop
Join our community of translators and help bring ErikrafT Drop™ to users around the world!
🔀 Differences to the Snapdrop it is based on
👀|View all differences
Scope: This section describes the historical/architectural differences inherited by ErikrafT Drop™ from the PairDrop base relative to Snapdrop. It is not the list of differences between ErikrafT Drop™ and PairDrop.
- Transfer files over the Internet between paired devices or by entering temporary public rooms.
- Connect to devices in complex network environments (public Wi-Fi, company network, iCloud Private Relay, VPN, etc.).
- Connect to devices on your mobile hotspot.
- Devices outside of your local network that are behind a NAT are auto-connected via the ErikrafT Drop™ TURN server.
- Devices from the local network, in the same public room, or previously paired are shown.
Always connect to known devices
- Pair devices via a 6-digit code or a QR-Code.
- Paired devices always find each other via shared secrets independently of their local network.
- Pairing is persistent. You find your devices even after reopening ErikrafT Drop™.
- You can edit and unpair devices easily.
Connect to others in complex network situations, or over the Internet.
- Enter a public room via a 5-letter code or a QR-code.
- Enter a public room to temporarily connect to devices outside your local network.
- All devices in the same public room see each other.
- Public rooms are temporary. Closing ErikrafT Drop™ leaves all rooms.
- Files are transferred after a request is accepted. Files are auto-downloaded upon completing a transfer, if possible.
- Multiple files are downloaded as a ZIP file
- Download, share or save to gallery via the "Share" menu on Android and iOS.
- Multiple files are transferred at once with an overall progress indicator.
- Send files directly from context menu on Ubuntu (using Nautilus)
- Send files directly from the context menu on Windows
- Send directly from the "Share" menu on iOS
- Send directly from the "Share" menu on Android
- Send directly via the command-line interface
The old PairDrop list has intentionally been removed from this section. Features such as display-name changes, paste/send flow improvements, wake-lock behavior, multi-tab support, media previews, Node-only operation, auto-restart, general stability fixes, local-network discovery, custom STUN/TURN configuration, and translations are not automatically ErikrafT Drop™-specific simply because they are present in the current fork.
Historical PairDrop contributors remain credited by the upstream PairDrop project and history. They are not presented here as contributors to ErikrafT Drop™-specific work.
ErikrafT Drop™ is a fork of PairDrop. PairDrop itself is a fork of Snapdrop. The relationship is:
Snapdrop
↓
PairDrop
↓
ErikrafT Drop™
The Differences to Snapdrop section above explains changes introduced by PairDrop relative to Snapdrop. It should not be interpreted as a list of ErikrafT Drop™-specific features.
ErikrafT Drop™ extends and adapts the PairDrop foundation with additional code, integrations, documentation, branding, and transfer modes developed for the ErikrafT ecosystem.
This section lists only differences identifiable in the current ErikrafT Drop™ repository or its pinned Android submodule. Shared PairDrop functionality is intentionally excluded.
ErikrafT Drop™ contains an implemented animated QR transfer engine in public/scripts/erikraft-qr.js and associated UI/control code.
- Transfers files or text as a sequence of animated QR frames.
- The transfer is designed to work without WebRTC, WebSockets, or network connectivity once the application is loaded.
- Frames use the
EKQRprotocol header and contain transfer metadata, chunk indexes, Base64 payload data, CRC32 checksums, and a final SHA-256 digest. - The current implementation uses XOR-based parity recovery, not a general Fountain/Luby Transform implementation. Parity frames combine pairs of base chunks and can recover one missing chunk when the corresponding other chunk and parity frame are available.
- The receiver accepts duplicate and out-of-order frames and performs CRC32 validation before storing payload data.
- Completed transfers are reassembled and verified with SHA-256 before being delivered to the user.
See ERIKRAFT-QR.md for the protocol documentation.
ErikrafT Drop™ also has an ecosystem QR scanner. It is separate from Animated QR Transfer:
- QR Scanner: scans static QR codes/URLs and can recognize ErikrafT ecosystem links and pairing/room URLs.
- Animated QR Transfer: continuously renders or captures a stream of QR frames carrying file/text payload data.
These two functions must not be documented as the same feature.
The service worker precaches the QR transfer code, scanner dependencies, localization assets, and other client-shell resources. The Animated QR system is designed to continue after the application has been loaded, without network requests during the optical transfer itself.
This should not be described as "all ErikrafT Drop™ file transfer works offline". Normal WebRTC/WebSocket transfers still depend on their networking/signaling environment.
The repository contains integrations that are not part of the standard PairDrop README feature set, including:
- Discord bot integration and a Discord Activity for launching/using ErikrafT Drop™.
- iOS Share Menu integration through a dedicated Shortcut.
- Browser extensions and IDE integrations maintained under
Extensions/. - A dedicated command-line client under
erikraftdrop-cli/. - An Android application maintained as the
Android/submodule. - ErikrafT-specific branding, logos, domains, UI assets, and documentation.
These are ecosystem integrations, not claims that the underlying PairDrop transfer protocol was replaced.
The repository also contains an explicitly documented WebTorrent transfer mode. It is experimental/beta and uses magnet-based peer discovery and WebRTC between compatible peers. It should therefore be described as a beta transfer option rather than as the normal ErikrafT Drop™ transfer mechanism.
See docs/features/webtorrent-beta.md.
The following should be understood as part of the PairDrop/Snapdrop-derived foundation rather than as ErikrafT Drop™-exclusive functionality unless the ErikrafT Drop™ implementation has been materially changed:
- WebRTC/WebSocket-based peer-to-peer transfers.
- Local-network device discovery.
- Persistent device pairing and temporary public rooms.
- Six-digit pairing keys and QR-based pairing links.
- ZIP downloads for multiple files.
- Wake-lock/display-sleep prevention during transfers.
- Theme and display-name behavior inherited or adapted from the upstream client.
- Configurable STUN/TURN infrastructure for self-hosted deployments.
- General browser-based file/text transfer behavior.
The purpose of this section is to prevent shared upstream capabilities from being mistaken for unique ErikrafT Drop™ inventions.
About Snapdrop's current status: The original Snapdrop project was acquired by LimeWire. The
SnapDrop/snapdroprepository remains available as the classic open-source implementation and can still be self-hosted. The repository continues to contain the original WebRTC, WebSocket signaling, and PWA implementation. However, the current publicsnapdrop.netservice is no longer equivalent to the classic self-hosted implementation. The comparison below therefore distinguishes the classic open-source repository from the current public service where relevant.The following comparison is intentionally conservative.
✓means the feature is present in the referenced project or implementation;—means it was not identified as a documented/core feature of that project;✕means the feature was removed;✕*means the feature existed in the original Snapdrop implementation but is no longer provided by the current public Snapdrop/LimeWire service;✓*means the feature remains present in the classic open-source repository, but its availability in the current public service may differ;Experimentalmeans the feature exists but is explicitly beta/experimental.
| Feature | Snapdrop | PairDrop | ErikrafT Drop™ |
|---|---|---|---|
| WebRTC transfer | ✕* | ✓ | ✓ |
| WebSocket signaling | ✕* | ✓ | ✓ |
| PWA | ✓* | ✓ | ✓ |
| Persistent device pairing | — | ✓ | ✓ |
| Temporary public rooms | — | ✓ | ✓ |
| Static QR pairing/scanning | — | ✓ | ✓ |
| Animated QR optical file/text transfer | — | — | ✓ |
| XOR-based QR parity recovery | — | — | ✓ |
| Offline optical transfer | — | — | ✓ |
| Android integration | — | ✓ | ✓ |
| Discord integration | — | — | ✓ |
| iOS Share Menu integration | — | ✓ | ✓ |
| WebTorrent transfer | — | — | Experimental |
| ErikrafT-specific branding/ecosystem | — | — | ✓ |
Snapdrop notation:
✕*for WebRTC and WebSocket signaling refers to the current public Snapdrop/LimeWire service, not the classicSnapDrop/snapdroprepository. The classic repository still contains the original WebRTC/WebSocket implementation.✓*for PWA indicates that the PWA implementation remains present in the classic open-source repository; this does not necessarily represent the behavior or availability of the current public service.
This table does not claim that every implementation detail is absent from upstream projects. It distinguishes the documented/core capabilities relevant to this repository from the ErikrafT Drop™-specific additions.
ErikrafT Drop™ maintains a localization system using locale JSON files under public/lang/, with English and Brazilian Portuguese among the maintained locale files. The application also contains localization-specific client code and a Crowdin integration for translation work.
Translation coverage can vary by locale and should not be interpreted as every string being equally translated in every language.
ErikrafT Drop™ preserves the project's PairDrop/Snapdrop lineage and the existing license/attribution files. Contributors credited by PairDrop for upstream features are not reclassified as contributors to ErikrafT Drop™-specific changes by this documentation update.
The LICENSE file and third-party license files remain part of the repository and are not removed by this documentation change.
- Vanilla HTML5 / JS ES6 / CSS 3 frontend
- WebRTC / WebSockets
- Node.js backend
- Progressive web app (PWA) unified functionality
- IndexedDB API storage handling
- zip.js library
- cyrb53 super-fast hash function
- NoSleep display sleep, add wake lock ([MIT licenses/MIT-NoSleep])
- heic2any HEIC/HEIF to PNG/GIF/JPEG ([MIT licenses/MIT-heic2any])
- Crowdin web-based localization tool
- BrowserStack This project is tested with BrowserStack
📡|Host your own instance with Docker or Node.js.


✍🏻|Documentation
🛡️|Privacy Policy
🛡️|Terms of Use
🛡️|License
🛡️|Security

ErikrafT Drop™ is libre, and always will be.
If you find it useful and want to support free and open-source software, please consider donating using the button above.
I footed the bill for the domain and the server, and you can help create and maintain great software by supporting me.
Thank you very much for your contribution!
