Security model

What Sweeper can do, what it can't do, and how you can verify both yourself.

Threat model

Sweeper is designed to protect against two classes of risk:

Sweeper does not protect against: a compromised browser extension, malware on your machine, a screen recorder, or a compromised RPC endpoint that returns false data. Those are outside our control.

Key handling

Your mnemonic is entered into an HTML <textarea>. It is processed entirely in JavaScript, in the browser tab. It is never serialized, never stored in localStorage, never sent to a server, and cleared from memory when you click "Clear" or close the tab.

Derived private keys exist only in the JavaScript heap for the duration of a signing operation. They are not written to disk, not logged, and not included in any telemetry.

Verification: open DevTools → Network. Paste a mnemonic. Run a full preview. Search every request and response for any word from your phrase, any derived address, or any hex string longer than 32 characters. None appear.

Signing

All transaction signing happens locally:

No server-side component has the ability to construct, sign, or broadcast a transaction on your behalf.

What the servers do

Sweeper runs two Cloudflare Workers:

Neither worker can spend funds, sign transactions, or access your keys.

Release integrity

Every build publishes a SHA-256 hash and an SRI hash. The HTML pins the SRI hash on the <script> tag, so the browser refuses to execute app.js if the file's contents have changed since we published it.

To verify the bundle yourself:

curl -s https://sweeper.cloud/app.js | openssl dgst -sha256

Compare against sha256_hex in /releases/latest.txt. If they match, the bundle is unmodified.

Why the source isn't public

Sweeper's source is proprietary. This is a trade-off we discuss in detail at /private-source.html. Security researchers can request NDA access to the private repository by emailing security@sweeper.cloud.

Reporting a vulnerability

If you believe you've found a security issue, email security@sweeper.cloud. Include:

We aim to acknowledge within 72 hours. We do not currently run a paid bounty program, but we credit reporters (with permission) and grant NDA repo access to anyone who reports a valid issue.

What we will never do