Send a file.
Nobody in the middle can read it.
VermCloud seals your file inside your own browser, before any part of it reaches us. We keep the sealed result and we cannot open it. Neither can anyone who walks off with our servers.
Step one
It starts on your machine
You pick a file. Nothing has moved yet, and nothing is going to move until it has been sealed.
Everything that follows happens in your browser, on your side of the connection.
Step two
The lock closes before it travels
Most services take your file first and lock it once it lands on their machines. That leaves a window where the file sits there in the open.
Here the seal closes first. What reaches us is already unreadable, so there is no moment where you have to trust us with the original.
Step three
It is cut into sealed blocks
Large files are split, and every block is sealed on its own with its position recorded inside the seal.
Change one byte, drop a block, or swap two around, and the file refuses to open. It will not hand you something quietly wrong, which is the failure that actually causes harm.
Step four
The key never reaches us
Your browser tucks the key into the share link, after the hash symbol. Browsers treat that part as private and never send it to any website.
So it travels in the message you send your friend, and nowhere else. We do not receive it, which means we cannot pass it on however politely we are asked.
No small print
Exactly what we hold
Plenty of services describe themselves as private. Here is the specific list, so you can judge it rather than take our word for it.
| What reaches our servers | What never does |
|---|---|
| A random identifier for the upload | The contents of your file |
| The sealed data, which we cannot open | The key that would open it |
| Its size and when it expires | The name of your file |
| A scrambled form of your address, to stop abuse | Your address in readable form |
If our servers were seized tomorrow, whoever took them would hold a pile of sealed data and no way in. That is not a promise about our intentions. It is a consequence of where the key is kept.
Ready when you are
Uploading needs an account, which is what keeps this place usable for everyone. Sharing does not. The people you send links to never sign up for anything.
Anonymous Encrypted File Upload
Files are encrypted in your browser before they leave it. Links expire automatically after 7 days.
Any HTTP client can fetch this and get the real file, decrypted and decompressed. The key is part of the URL, so treat it as public: anyone holding it can download, and it will show up in server logs.
The recipient's browser recomputes this after decrypting and refuses the file if it differs. The server never sees it.
Encrypted file
This file is decrypted in your browser. The server never had the key.
Sign in
Your password never leaves this device.
No account? Create one
Create an account
Optional. Anonymous uploads work without one.
Nothing sexual. No exceptions.
Do not upload sexual or nude material of any kind. This applies whether or not everyone depicted is an adult, whether or not it was made with consent, and whether or not it is legal where you live. There is no artistic, medical or personal exemption here. Uploads are refused automatically where possible and removed on sight where not.
Sexual material involving anyone under 18 is reported to the authorities. It is preserved as evidence rather than quietly deleted, together with the address, browser and account it arrived from, and those details are handed over on a lawful request.
Also prohibited
- Malware, or anything built to damage or take control of a system
- Material you have no right to distribute
- Private information about someone who did not agree to it being shared
- Content depicting real violence, or promoting harm to people
- Any deliberate attempt to exhaust the storage or bandwidth of this service
What happens if you break this
The file is removed, its contents are recorded so the same file cannot be uploaded again, and the account, address and browser are banned. Serious cases are referred to law enforcement.
What this service does not promise
It is provided as is, with no guarantee of availability or durability. Keep your own copy of anything you care about. Links expire and are deleted on the schedule shown when you upload.
Already registered? Sign in
My files
Decrypted locally from your vault key. The server sees only ciphertext.
Account
Change password
Every stored file key is re-wrapped on this device before anything is sent. All other sessions are signed out.
Admin
Moderation and storage. Files stay unreadable here: no key for them exists on this server.
FAQ
- What does the server actually store?
- A random 128-bit identifier, the ciphertext, its length, an expiry timestamp, and hashes of your management tokens. Not the filename, not the type, not the key.
- Where is the key?
- In the part of the link after the #. Browsers never transmit that part, so it is never in a request, a log or a proxy. Anyone with the whole link can decrypt; anyone without it cannot.
- How long do links last?
- 7 days. After that the record and the ciphertext are deleted from disk. There is no archive and no undelete.
- Is there a size limit?
- No fixed limit. Files upload in encrypted chunks, so the only ceiling is the disk on the host.
- Can I upload a folder?
- Yes. It is packed into a ZIP inside your browser, then encrypted. The recipient gets one ordinary .zip file.
- What does "private" mean?
- The file can only be opened while signed in as the account that uploaded it. To everyone else the link returns "not found".
- I forgot my password.
- Then the file list is gone. The server holds nothing that could recover it. That is exactly what makes it zero knowledge.
What is stored
Everything this site keeps, on your machine and on the server.
On your device
| Name | What it is | When | Lasts |
|---|---|---|---|
| __Host-vc_s | Your sign in session. Marked HttpOnly, so no script can read it. | Only after you sign in | 14 days |
| __Host-vc_c | A token that stops another site acting as you. | Only after you sign in | 14 days |
| vault key | Held in IndexedDB so your file list can be decrypted on this device. Stored so it cannot be read back out, only used. | Only after you sign in | Until you sign out |
| vc_seen | Remembers that you have read this notice, so it stops appearing. | When you dismiss it | Until cleared |
Nothing above is set for a visitor who never signs in, apart from the last one. There are no analytics, no advertising, and no requests to any other company. The only other host contacted is the CDN that serves the encrypted file blocks, which is ours.
Browser fingerprint
This one deserves a straight description rather than a euphemism, because it is thorough.
Your browser measures a set of its own characteristics and sends hashes of them. Nothing is sent in the clear and none of it is readable back, but the measurements are detailed:
- Your graphics hardware: the driver and card names, the limits and precisions it reports, and the exact pixels it produces when asked to draw a test shape
- Your audio stack, measured by rendering a tone silently and hashing the result. Nothing is played and no microphone is touched
- How your machine draws text and blends colours onto a canvas
- Which fonts are installed, tested against a list of about ninety
- Processor count, memory size, platform, screen dimensions and colour depth, timezone
- Which audio and video formats your browser can play, and its video-call capabilities
- Small numerical quirks of its JavaScript engine, and the shape of its error messages
- Language settings, display preferences such as dark mode, counts of attached cameras and microphones (never their names), permission states, and available speech voices
Together this usually identifies a particular browser on a particular machine. That is the point: it is what allows a ban to survive someone changing address or clearing their cookies.
What it is not used for. No profile is built, nothing is shared or sold, it is never linked to your activity beyond enforcing bans, and no advertiser or analytics company receives any of it. Only salted hashes are stored, so the underlying values cannot be recovered from what is kept.
This is disclosed rather than offered as a choice, because it is an anti-abuse measure and anyone able to switch it off would be exactly the person it exists to stop. If you would rather not be identifiable this way, do not use this service. Under GDPR the basis is legitimate interest in preventing abuse; if you are deploying this in the EU, take your own advice on whether that holds for your circumstances.
Why your address alone will rarely get you banned
Many people share one address: anyone on a VPN, a university network, or a mobile carrier. Banning such an address to stop one person would lock out everyone behind it and stop that person for about ten seconds. So the number of distinct browsers and accounts seen behind an address is tracked, and an address that looks shared is never banned. The account and the browser are banned instead, since those follow the person rather than the network.
On the server
For each upload: a random identifier, the encrypted data, its length, an expiry, and hashes of the management tokens. If checking is enabled, a hash of the file contents as well, which is what lets material already removed be refused if uploaded again.
Your address is stored as a salted hash for rate limiting, not in the clear, unless the operator has explicitly turned on retention for abuse handling. Filenames, types and keys never reach the server at all, and it could not read your files if it were asked to.
Deletion
Uploads are deleted when their link expires. Signing out removes the vault key from this device. Material preserved after an upheld abuse report is the one exception, and is kept only as long as the law requires.
Terms of use
VermCloud is provided as-is, with no warranty and no guarantee of availability or durability. Keep your own copy of anything you care about.
Not permitted
No sexual or nude material of any kind, regardless of the age of anyone depicted, whether consent was given, or whether it is lawful where you are. Uploads are checked automatically where that is possible and removed on sight where it is not.
Sexual material involving anyone under 18 is preserved as evidence rather than deleted, recorded together with the address, browser and account it came from, and referred to the authorities.
Also prohibited: malware, material you have no right to distribute, private information about someone who did not agree to it being shared, content depicting real violence, and any deliberate attempt to exhaust the host's storage or bandwidth.
Retention
Every upload is deleted automatically 7 days after it is created. Deletion is unconditional and cannot be extended.
Privacy
No account is required. No analytics, cookies for tracking, or third-party requests exist on this site. IP addresses are stored only as a salted hash, purely to enforce rate limits, and are discarded with the record.
API
All endpoints live at api.php?a=<action>. Writes require the header X-VC: 1. Encryption is the client's responsibility. The server accepts ciphertext only.
Upload
POST ?a=init → {id, up, del, chunks, chunk, expires}
POST ?a=chunk&id=&i= (raw body, header X-Up-Token) → {ok, have, need}
POST ?a=finish {id, up} → {ok, expires}
Download
GET ?a=info&id= → {meta, salt, pw, chunks, chunk, size, expires}
GET ?a=blob&id=&i= → raw ciphertext chunk
Delete
POST ?a=del {id, token}
Chunk i is exactly chunk plaintext bytes plus a 16-byte GCM tag, except the last. The server rejects any other length.
Report abuse
Send the full link and a short description to the address in this site's WHOIS or hosting contact. Because content is encrypted client-side, a report must include the link. Without it the operator cannot identify, view or remove anything.
Reported files are deleted on receipt. Everything expires within 7 days regardless.