anti-fingerprinting · manifest v3 · no dependencies

Every browser leaks a fingerprint. algoblocker flattens yours into the crowd.

One extension rewrites the dozens of signals sites read to single you out — user-agent, canvas, WebGL, audio, fonts, hardware, timezone, WebRTC — to values shared by everyone running it. It's also honest about the surfaces it can't reach.

JS surface after~2 bits
~2 bits
Down from ~20+ bits. Near-indistinguishable from every other algoblocker user.
Network surface~26 bits
~26 bits
Below the extension's reach — IP, TLS/JA3. Close it with the WARP script ↓

Download

Free, MIT, zero external code. Verify the SHA-256 against SHA256SUMS.txt before loading. Click a checksum to copy it.

Chromium

Chrome · Edge · Brave · Opera · Vivaldi · Arc
v0.1.1 · 62.6 KB · Chrome 111+
sha256 2f0e1b7c…b1a5f3
Download .zip
Then: unzip → chrome://extensions → Developer mode → Load unpacked → pick the folder.

Firefox

Firefox 115+ · LibreWolf · Waterfox
v0.1.1 · 62.7 KB · Firefox 115+
sha256 ed1a4a49…7bd667
Download .xpi
Then: about:debugging → This Firefox → Load Temporary Add-on. Permanent install needs self-signing — see below.

What gets flattened

Each row is a signal sites read to identify you. Hover or tap a sealed value to see what your browser leaks by default — and what algoblocker returns instead.

Surface
Leaked by default
algoblocker returns
User-Agentnavigator.userAgent + headers
sealedChrome/126 · Win10 · your build
canonical
CanvastoDataURL / getImageData
sealedstable per-device hash
noise
WebGLUNMASKED_RENDERER
sealedNVIDIA/AMD/Intel GPU string
canonical
AudioAudioBuffer / AnalyserNode
sealedDSP-stack fingerprint
noise
FontsqueryLocalFonts / measureText
sealedyour installed-font set
blocked
Hardwarecores · memory · touch
sealedreal CPU / RAM / battery
canonical
Screenresolution · depth · DPR
sealedyour exact display geometry
1920×1080
Timezone & languageIntl · Date · navigator
sealedyour region + locale
UTC · en-US
WebRTCICE candidates · devices
sealedlocal + public IP leak
blocked
Pointer dynamicsgetCoalescedEvents · movement
sealed~1000 Hz micro-tremor stream
coarsened
Clockperformance.now()
sealedsub-ms timing skew
1 ms + jitter

canonical = flat across all users · noise = changes per page load · blocked = refused / empty. Overrides mask Function.prototype.toString so they report as [native code].

Close the network layer

The extension can't touch your IP, ASN, or TLS handshake — those live below the browser. One script routes your whole device through Cloudflare WARP, a free tunnel whose exit IP is a shared pool of millions of users. Your traffic stops being yours to correlate. Read it before you run it — it's ~300 lines, no dependencies.

Linux / macOS

bash · warp-cli
11.8 KB · apt · dnf · Homebrew
sha256 015a3672…318801
Download deploy-vpn.sh
run
copy$ chmod +x deploy-vpn.sh
$ ./deploy-vpn.sh

Windows

PowerShell 5.1+ · winget
9.7 KB · elevated shell for install
sha256 192899d8…072e0f
Download deploy-vpn.ps1
run
copyPS> Set-ExecutionPolicy -Scope Process Bypass -Force
PS> .\deploy-vpn.ps1

Both take the same flags: --team NAME for a Zero Trust org · --worker to deploy the health-check Worker · --browser-doh to pin browser DNS · --status / --disconnect. A full-device tunnel carries every browser — no per-app setup.

Honest scope: this closes source IP, ASN, DNS-to-ISP, and the TLS fingerprint — it shifts network-layer trust from your ISP to Cloudflare, it does not make you anonymous. If your threat model needs anonymity from a well-resourced adversary, use Tor Browser instead. Different tool, different guarantees.

Scope

The layers that used to be caveats are handled now. WARP closes IP, ASN, DNS, and the TLS/JA3 handshake. On the browser side, behavioral biometrics are coarsened always-on — pointer metadata, event timing, and the high-frequency getCoalescedEvents tremor stream (new in v0.1.1) — with an opt-in strict mode that throttles mouse and scroll, and a live counterintel monitor that flags BioCatch / Castle / FingerprintJS-Pro when a page runs them.

Two residuals no extension can erase, stated plainly: an adversary averaging canvas/audio noise across many visits can still narrow the field, and the presence of any extension is weakly detectable via timing side-channels. And WARP shifts network trust to Cloudflare — that is unlinkability, not anonymity. If your threat model needs anonymity from a well-resourced adversary, use Tor Browser.

Install

Sideload from the download above — the extension is unpacked, no store listing. It references its own files by absolute URL, so keep the unzipped folder at a stable path.

Chromium-family Chrome · Edge · Brave · Opera · Vivaldi · Arc
  1. Unzip algoblocker-chromium-0.1.1.zip to a permanent location.
  2. Open chrome://extensions (or edge://, brave://).
  3. Toggle Developer mode on (top-right).
  4. Click Load unpacked and select the unzipped folder (the one holding manifest.json).
  5. Pin the toolbar icon; the options page opens on first install — confirm everything's enabled.
Firefox Firefox 115+ · LibreWolf · Waterfox

Temporary (resets on restart):

  1. Open about:debugging#/runtime/this-firefox.
  2. Click Load Temporary Add-on… and select the .xpi (or the unzipped manifest.json).

Permanent: Firefox refuses unsigned add-ons. Either self-sign the .xpi free via addons.mozilla.org (unlisted signing, no review), or use Firefox Developer Edition / Nightly with xpinstall.signatures.required = false in about:config.

Note: Firefox uses an ISOLATED-world injector instead of MAIN-world scripts; strict behavioral mode is off in this build.

Verify it worked probe

Click the toolbar icon → Test probe, or open an external check:

  1. amiunique.org — compare with and without the extension.
  2. browserleaks.com/canvas — hash should change every reload.
  3. browserleaks.com/webrtc — no local/public IP should appear.
copied