VermCloud

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.

Scroll to see how it works
1

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.

2

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.

3

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.

4

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 serversWhat never does
A random identifier for the uploadThe contents of your file
The sealed data, which we cannot openThe key that would open it
Its size and when it expiresThe name of your file
A scrambled form of your address, to stop abuseYour address in readable form
Three separate locksEvery block passes through three ciphers with three keys, built on unrelated mathematics. If one were ever broken, the others still hold.
It deletes itselfYou choose how long a link lives. When the time runs out the file leaves the disk and the link stops working. No archive, no undelete.
Reported by handAnything that should not be here can be reported by anyone holding the link, and a person reviews it.

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.

Uploading needs an account. Create one or sign in. Opening a link someone sent you never requires an account.
Drag files or a folder here
or use the buttons below. Nothing is uploaded until you press Encrypt and Upload
0 files

Preparing…

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.

This file also needs its password. Send the password through a different channel than the link.

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.

Your password is the only key to your file list. It is never sent to the server, so it cannot be reset or recovered. Store it somewhere safe.

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

NameWhat it isWhenLasts
__Host-vc_sYour sign in session. Marked HttpOnly, so no script can read it.Only after you sign in14 days
__Host-vc_cA token that stops another site acting as you.Only after you sign in14 days
vault keyHeld 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 inUntil you sign out
vc_seenRemembers that you have read this notice, so it stops appearing.When you dismiss itUntil 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.

This site sets no tracking or advertising cookies and loads nothing from anyone else. Signing in stores a session cookie, and your browser keeps a key that only it can read. To enforce bans, a fingerprint of this browser is sent with requests. What is stored, exactly.