dDrop is a private, encrypted file drop built on IPFS.
Files never leave your browser in plaintext — encryption happens locally
before anything is sent to the network.
How it works
- You enter a passphrase and select a file. The file is encrypted entirely in your browser using AES-256-GCM before upload — the server never sees the original.
- The encrypted bytes are sent to an IPFS node via a token-gated proxy. The node stores only ciphertext and returns a CID — a content address that identifies the encrypted blob on the network.
- You share the CID and passphrase with your recipient through separate channels. The CID alone is useless without the passphrase.
- The recipient opens this page, enters the CID and passphrase, and the file is fetched from a public IPFS gateway and decrypted locally in their browser. Nothing is sent to any server during decryption.
What the network sees
- The IPFS node receives and stores only ciphertext. It has no way to read your file or learn the passphrase.
- Public gateways used during download see the same encrypted bytes — still useless without the passphrase.
- The passphrase never leaves your browser. It is used locally for key derivation and then discarded.
Encryption details
- Algorithm: AES-256-GCM
- Key derivation: PBKDF2-SHA256, 100,000 iterations, 16-byte random salt
- Blob layout:
[ 16B salt ][ 12B IV ][ ciphertext ]
- All cryptography uses the browser's native Web Crypto API — no third-party crypto libraries.
Limitations
- Files are loaded entirely into memory — practical limit is roughly 500MB–1GB depending on your device.
- Once a CID propagates to other nodes it cannot be reliably deleted. Conversely, if only your node holds it and the daemon stops — or the garbage collector runs before the content spreads — it may be lost. Encryption is the only meaningful confidentiality control; persistence is not guaranteed.
- If you lose the passphrase the file is permanently unrecoverable. There is no reset.