ProtoConsent
ProtoConsent
← Back to home

Privacy Policy

Last updated: April 2026

Short version

ProtoConsent does not collect, store, or share any personal data. Everything runs in your browser. There is no backend, no analytics, no tracking.

What data the extension handles

ProtoConsent stores your per-site purpose preferences (profile and purpose toggles) and your domain whitelist in your browser's local extension storage (chrome.storage.local). This data never leaves your device.

The extension does not:

  • Collect browsing history or page content
  • Send data to any server or third party
  • Use cookies, analytics, or telemetry
  • Create user accounts or identifiers
  • Access or read personal information

What the extension does locally

  • Reads the current tab URL to identify which domain you are managing
  • Stores your purpose preferences and domain whitelist per site in local storage
  • Creates declarative network rules to block requests matching denied purposes and to allow whitelisted domains
  • Sends a Sec-GPC: 1 header to sites where privacy-relevant purposes are denied
  • Removes high-entropy Client Hints headers (Sec-CH-UA-*) when advanced tracking is denied, reducing browser fingerprinting surface. No data is sent; headers are removed before the request leaves your browser.
  • Fetches .well-known/protoconsent.json from sites when you open the side panel in the popup, to display their declared data practices (cached locally, never forwarded)
  • Queries matched blocking rules to display request counts in the popup
  • Downloads optional third-party enhanced list data from public CDN sources (jsDelivr, GitHub) when you activate Enhanced Protection lists. Remote fetching requires your explicit consent (opt-in during onboarding or in Purpose Settings). Only the list file is fetched - no personal data, cookies, or identifiers are sent. Downloaded lists are stored locally in your browser.

Permissions and why they are needed

Permission Why it is needed
tabs Read the active tab URL to apply per-site rules
storage Persist preferences locally in the browser
scripting Register the GPC content script at runtime
declarativeNetRequest Create and manage blocking and header rules
declarativeNetRequestFeedback Count blocked requests for the popup display
webRequest Observe blocked requests and GPC headers in real time for the Log tab (read-only, no modification)
unlimitedStorage Store downloaded enhanced list data locally (lists can be large)
host_permissions (<all_urls>) Apply blocking and header rules across all domains

The website (protoconsent.org)

protoconsent.org is a static site hosted on GitHub Pages. It does not use cookies, analytics, ads, or any form of tracking. No personal data is collected, stored, or shared.

This site publishes a .well-known/protoconsent.json file declaring its own data practices, which the extension can read.

The declaration validator (validate.html) can check a domain's .well-known/protoconsent.json file via a proxy hosted on third-party infrastructure (currently Cloudflare Workers, at api.protoconsent.org). When you use this feature, the domain you enter is sent to the proxy to fetch the file. The infrastructure provider may log standard request metadata (IP address, timestamp). No personal data is stored by ProtoConsent beyond the provider's standard logging. Paste and file upload validation run entirely in your browser with no network requests.

Open source

The extension source code is publicly available at github.com/ProtoConsent/ProtoConsent under GPL-3.0+. You can inspect exactly what the extension does.

Contact

Questions about this policy: contact@protoconsent.org.

Changes to this policy

If this policy changes, the updated version will be published at this URL. The extension does not auto-update policies or collect version information.