TraceHold Browser Extension (Enterprise) — Privacy Policy
This policy explains what the TraceHold enterprise browser extension (Chrome, Edge and Firefox) processes, why, and who receives it. The extension is installed and configured by your organisation (your employer), not by you as an individual, and it only works together with an organisation account. The free TraceHold extension and the tracehold.com website have their own policy: see Privacy Policy.
- Your organisation decides. Your employer is the data controller; TraceHold B.V. is its processor and acts on your organisation's instructions.
- We declare three data categories, honestly: personally identifiable information, website content and user activity. They are described in section 3 and map one-to-one to the Chrome Web Store form and to the Firefox declaration.
- Detection runs in your browser. The text you type to an AI assistant is analysed locally. In the standard configuration the text itself does not leave your browser: the TraceHold backend receives event metadata and masked findings.
- Two optional functions can send more, and both are OFF by default: the language classifier (the message text goes, in transit only, to OVHcloud AI Endpoints in France) and "Conversation fragment" (a bounded excerpt around a detection is stored, encrypted). Your organisation must turn each one on.
- We never sell data, never use it for advertising, and never use it to train AI models.
- No third-party analytics, advertising or tracking SDKs are present in the extension.
1. Who is responsible for your data
The TraceHold enterprise extension is published by TraceHold B.V. ("TraceHold", "we", "us"), a Dutch private limited company (besloten vennootschap), established in the European Union at Werfkade 25, 1033 TA Amsterdam, Netherlands (KvK 97572896, VAT NL868118278B01). Tracehold is the brand of the product (formerly Verifia).
When your employer installs TraceHold on your work browser, your employer (the customer organisation) is the data controller for the data described here, and TraceHold B.V. acts as its processor (Article 28 GDPR), processing data on your organisation's behalf and under its instructions, under a Data Processing Agreement (see our DPA page). The organisation chooses which AI assistants are monitored, what is warned, redacted or blocked, and which optional functions are active. Questions about why monitoring is used in your workplace, and about its legal basis, must be answered by your organisation.
TraceHold B.V. is the controller only for the data of the organisation's own account administrators and for the operation and security of the service itself; that is covered by the Privacy Policy of the website.
This extension has no standalone consumer mode. If no organisation account is behind it, it does nothing.
2. Data categories declared to the browser stores
Browser stores ask us to declare what the extension collects, and they compare that declaration with this page. We declare the following. We do not declare that the extension "collects no data", because that would be false.
| Category | Chrome Web Store / Edge Add-ons form | Firefox (manifest.firefox.json) | Described in |
|---|---|---|---|
| Personally identifiable information | Personally identifiable information (ticked) | personallyIdentifyingInfo (required) |
Section 3.1 |
| Website content | Website content (ticked) | websiteContent (required) |
Sections 3.3 and 3.4 |
| User activity and technical data | User activity (ticked) | technicalAndInteraction (listed under optional) |
Section 3.2 |
Not collected, and not declared: health information, financial information, authentication information beyond the account identity described in 3.1, and location. Message text is covered by the website content category (sections 3.3 and 3.4).
Note on Firefox. Mozilla's manifest schema (Firefox 140 and later) only allows technicalAndInteraction to be listed under optional, never under required. That is a limitation of the schema, not a user switch: the extension sends the technical and interaction data of section 3.2 with every event, and the browser does not offer a separate toggle for it. The real controls are those of your organisation, set in its TraceHold console. Firefox versions earlier than 140 ignore this declaration field; the same data is still processed.
3. Data we process
The extension is active only once it has been enrolled in an organisation and the organisation account has validated the installation. Before that it is passive: it detects nothing and sends no events.
3.1 Personally identifiable information
- Corporate identity of the user: the work e-mail address or user identifier, taken from the organisation's managed configuration, from the browser profile (Chrome and Edge, permissions
identityandidentity.email), from the endpoint agent, or from the manual sign-in of the extension. It associates the activity with the employee inside the organisation. - Device identification at enrolment and every five minutes: an installation identifier (a random UUID created by the extension), the browser name and version, the operating system, the device host name, and, when they are provided by your organisation's managed configuration or by the TraceHold endpoint agent, the operating-system user name, the directory domain (Active Directory, Entra or LDAP) and the machine identifier. Credentials and passwords are never read.
- File names of uploads, downloads and attachments evaluated by the organisation's file-transfer policy (not the file content in the standard configuration; see 3.4).
3.2 User activity and technical data
Every event the extension sends to the TraceHold backend (app.tracehold.com), with or without a detection, includes:
- the domain of the AI assistant or site involved (for example
chatgpt.com) and the address (URL) of the page on which the event happened, including its query string, as reported by the browser. If you type a prompt into the address bar, the part of the URL that carries the prompt is removed before the event is sent (see 3.5); - the date and time, the action taken (allowed, warned, redacted, blocked or logged) and the severity;
- the browser type and the extension version;
- the type of the actor where detectable (a person or an AI browsing agent) and a short fingerprint of the analysed text, which is not the text and is used to avoid counting repeated events twice;
- for file downloads from AI assistants: the file name, extension, size, MIME type and the download address.
Your TraceHold server also associates each event with the user and installation resolved from the extension's authenticated session. The extension does not send an IP address in the event; as with any internet request, the server receives the connecting IP address.
3.3 Website content: detections
- When the local detection engine finds sensitive data in the text you are about to send to an AI assistant (an API key, an IBAN, a national ID number, a customer record), the event carries the finding: the rule that matched, a label, the category and severity, and a masked form of the matched value. Values of 12 characters or fewer are fully masked; longer values show the first eight and last four characters. The clear value is not sent.
- Labels of findings about files can contain the file name or the domain (for example "Uninspectable file: data.bin").
- If the organisation has enabled the optional functions of 3.4, more content can be involved, as described there.
3.4 Optional functions your organisation can switch on (all off by default)
These functions are controlled by your organisation in the TraceHold console. They are described here because, when active, they change what leaves your browser.
| Function | What it sends | Where it goes | Stored? |
|---|---|---|---|
| Language classifier (sensitivity classification and prompt-injection detection). Off by default; requires the Governance plan and a documented data-protection impact assessment acknowledgement by the organisation. | The text of the message you are sending, so the classifier can decide whether it contains sensitive data or an injection attempt. If the organisation also enables conversation context, preceding turns of the same conversation, already redacted, are added to the classification request. | TraceHold backend (EU), then OVHcloud AI Endpoints, France. The backend does not run the model itself. | No. The text is used to issue the verdict and is not stored or logged by TraceHold. The provider publicly states that it does not store or train on AI Endpoints requests; that is the provider's own declaration. |
| Conversation fragment. Off by default; enabled by the organisation in the console. | A bounded excerpt of the message around each detection (typically around 2,600 characters and at most 4,096 per detection), in a version where the detected items are redacted and, additionally, the same excerpt unredacted. It also sends a conversation thread identifier derived from the page path. | TraceHold backend (EU). | Yes. The unredacted excerpt is encrypted (AES-256-GCM) in the database and is excluded from SIEM, webhook and alert deliveries. Excerpt content is removed after 90 days by default. |
| Extension inventory (third-party extension governance). Off by default. | For each other extension installed in the browser: its identifier, name, version, enabled state, install type, declared permissions and host permissions, update address and home page. It does not read your browsing data or the data of those extensions. | TraceHold backend (EU), about every 30 minutes and when an extension is installed, removed, enabled or disabled. | Yes, as part of the organisation's inventory. |
| Backend OCR fallback and backend file-scan fallback. Both off by default. | Only if local text extraction and OCR are not possible: the image (OCR) or the file (scan), with its file name. | TraceHold backend (EU). With the language classifier consent in place, extracted text can be classified as described above. | The backend returns the findings to the extension. |
3.5 Prompts typed in the address bar (extension 1.31 and later; Chrome and Edge)
Typing a prompt in the address bar or in a search box can open an AI assistant with the prompt inside the web address (for example https://chatgpt.com/?q=...). Because that text would leave in the navigation request itself, the extension redirects such navigations to a local page of the extension that checks the text with the local detection engine in your browser, without calling the language classifier, and then lets you continue, redacts the prompt, warns or blocks according to the organisation's policy. Only addresses of known AI assistants that carry a prompt in the address are affected; ordinary web searches are not. The event records the provider, the names of the parameters that carried the prompt, the number of redactions and the masked findings. The prompt text is not sent, and the page address in the event has the prompt parameters and fragment removed. This function is not available in Firefox.
3.6 Other websites
The extension is loaded in every website so that it can recognise AI assistants, including those internal to your organisation, but it reads no text from pages that are not AI assistants. The only exceptions are policies your organisation has defined: a blocked domain (the extension shows a notice and records the domain and the page address) and file-upload rules for collaboration sites (the extension evaluates the file name, size and type, and reads the content of small text files, .txt, .csv, .json and .md up to 5 MB, locally).
4. What runs locally in your browser
- Detection. The detection rules (regular expressions, checksums and heuristics) run inside your browser against the text you type, paste or attach, before it is sent to the AI assistant.
- OCR and document reading. Text in images and PDFs and in office documents is extracted locally (browser text detection, Tesseract and PDF.js bundled in the extension). The OCR language data are part of the package; nothing is downloaded from a CDN. The fallbacks that send an image or file to TraceHold exist only if your organisation enables them (3.4).
- Prompts in the address bar are checked locally (3.5).
- Rules and updates. The extension downloads detection rules from the TraceHold backend about every 15 minutes. They are data, integrity-checked and, when signed, verified with an ed25519 signature, and are never executed as JavaScript. All executable code is part of the published package; the extension loads no remote code.
The extension keeps working with the local engine if the language classifier or the backend is unavailable.
5. Who receives the data, and sub-processors
- Your organisation (controller). Its authorised administrators see the events, findings and, where enabled, the stored fragments in the TraceHold console, and can forward events to the organisation's own SIEM, webhook or alert destinations. Those destinations are chosen by the organisation and are not TraceHold sub-processors.
- TraceHold B.V. (processor). The backend is hosted in the European Union.
- Sub-processors. For this extension there are two: (1) the infrastructure providers that host the backend and database in the European Union, listed with their purpose and location on our Sub-processors page; and (2) only when your organisation enables the language classifier, OVHcloud AI Endpoints (France, EU), which receives the message text in transit to return a verdict and is named here for that purpose. Transactional e-mail is sent from TraceHold's own self-hosted mail infrastructure in the EU.
- The AI assistants you use (for example ChatGPT, Claude, Gemini or Copilot) are not TraceHold sub-processors. They are the traffic that the extension monitors, and the extension does not send them anything. Your text does not reach the assistant through TraceHold.
The extension contains no third-party analytics, advertising or error-reporting service. Its only network destination is the TraceHold backend configured for your organisation (by default app.tracehold.com). Interface fonts are bundled with the extension. When the extension is removed, the browser opens one anonymous request to the same backend so that the installation can be deregistered.
6. What TraceHold does not do
- We do not sell data and do not share it with advertising or data-broker networks.
- We do not use your data to train AI or machine-learning models, and we do not allow the classifier provider to do so on our behalf.
- We do not use the data for creditworthiness or lending decisions, or for any purpose unrelated to data-loss prevention and the organisation's AI governance.
- We do not build a browsing-history profile: outside AI assistants and the organisation's own policy rules (3.6) the extension reads no page content.
- We do not send the text you type to the AI assistant, to advertisers or to analytics services. The text leaves your browser only in the two cases of 3.4 that your organisation has switched on.
7. Browser permissions and why the extension needs them
Permissions of the Chrome and Edge package (manifest 1.31.0). The Firefox package declares a subset, marked below. Each permission is used only for the purpose stated.
| Permission | Why |
|---|---|
storage, unlimitedStorage |
Queue of events waiting to be sent, cache of the organisation's policy and detection rules, enrolment state and a few local counters. |
tabs |
Identify the tab and domain where a message is being sent to an AI assistant, and the page address recorded in the event. |
webRequest |
Observe the browser's own requests: recognise AI browsing-agent connections and downloads that start on an AI assistant. It does not read or modify the content of requests. |
declarativeNetRequestWithHostAccess, webNavigation (not in Firefox) |
Prompts in the address bar (3.5): redirect a navigation to a known AI assistant that carries a prompt to the local checking page, and detect the browser's fallbacks on Edge. |
downloads |
Evaluate downloads that start on an AI assistant and, according to policy, pause, warn or block them. |
notifications |
Tell you when a policy blocks or flags a send. |
alarms |
Periodic policy and rule synchronisation, batching of events and the five-minute device heartbeat. |
offscreen (not in Firefox) |
Run OCR and PDF reading locally in an offscreen document without blocking the page. (Firefox runs the same code in the extension's background page.) |
identity, identity.email (not in Firefox) |
Read the e-mail of the browser profile to resolve your corporate identity inside your organisation. |
management (not in Firefox) |
Inventory and, where the administrator enables the module, control of third-party extensions (3.4). It is declared as required because the extension is force-installed by the organisation. The inventory is sent only if the organisation enables the module. |
nativeMessaging |
Channel with the TraceHold endpoint agent, if your administrator installed it (section 8). Without the agent the channel stays inactive. |
Host access *://*/* |
Your organisation can add any AI assistant, including internal or self-hosted ones that are not on a public list, so the extension must be able to run on any site. Outside AI assistants and the organisation's policy rules the extension reads no page content (3.6). |
The extension also contains a bridge for the TraceHold add-in for Outlook (Chrome and Edge only) that runs only on the add-in's own addresses and passes the text the add-in asks to scan to the local agent. It makes no internet request.
8. Native messaging with the TraceHold endpoint agent
If your administrator also installs the TraceHold endpoint agent and its native messaging host (com.tracehold.host), the extension and the agent exchange messages through the browser's native messaging channel, on your own device only. The extension asks the host for the operating-system identity described in 3.1; it can ask the local agent to analyse a text, to extract or OCR a file and to relay a request to the TraceHold backend; and it tells the agent whether a screen-capture signal is active. The agent answers with identity data, its status and verdicts. If the agent is not installed, the channel has no counterpart and the extension works on its own. The agent has its own data handling, set by your organisation and described in the TraceHold documentation provided to it.
9. Storage and retention
In your browser. The extension stores in the browser's extension storage the enrolment and session data, the organisation's policy and detection rules, a queue of up to 500 events waiting to be sent, and local counters. In Chrome and Edge the queue is held in session storage and is discarded when the browser closes; in Firefox it is held in local storage. Uninstalling the extension removes this data.
On TraceHold servers. Events are stored in TraceHold's European infrastructure. These are the default retention periods set by TraceHold for the platform:
| Data | Default period |
|---|---|
| Content inside findings (masked values and excerpts) and conversation fragments, including the encrypted copy | 90 days; afterwards the content is removed and the event row is kept |
| Event rows (metadata, action, severity, domain, page address, user and device association) | 365 days, then deleted |
| Extension installation records (device heartbeat data) | 180 days after the last contact |
| Endpoint agent telemetry | 90 days |
| Message text sent to the language classifier | Not stored by TraceHold (usage records keep only the model, token counts, latency and verdict category) |
Your organisation's contract with TraceHold can add terms; direct questions about your organisation's retention choices to your organisation. When a person's data is erased on request, the profile is anonymised and the content linked to that person is removed; aggregated audit rows without their identity may be kept for compliance purposes.
10. Security
Data is sent to the TraceHold backend over HTTPS with the authenticated session of the installation. Stored unredacted excerpts are encrypted at rest (AES-256-GCM), tenant data is isolated per organisation, and detection rules are integrity-checked (and signature-verified when signed) before use. See the Security page for the general security overview.
11. Your rights (GDPR)
You have the right to access, rectify, erase, restrict or object to the processing of your personal data, to data portability, and, where consent is the basis, to withdraw it.
- As an employee of a customer organisation, send your request to your employer (the controller). TraceHold, as processor, supports the organisation, whose administrator can export or erase a person's data from the TraceHold console. Erasure is an auditable pseudonymisation, not a total deletion: the profile is anonymised and the content linked to the person is removed, while aggregated audit rows without the person's identity may be kept for compliance reasons.
- You can also write to privacy@tracehold.com or to the Data Protection Officer at dpo@tracehold.com; we will forward your request to the controller when it is not us.
- You may lodge a complaint with a supervisory authority. For TraceHold B.V. it is the Dutch Autoriteit Persoonsgegevens (autoriteitpersoonsgegevens.nl); you can also contact the authority of your own country.
Automated decisions. According to the organisation's policy, the extension can redact or block a send automatically when a detection rule matches. The decision is based only on detection rules applied to the message being sent, it does not evaluate you as a person, and you receive a notice when it happens. Your organisation can adjust the rules and review the events.
12. Browser store user-data policies
The use of data received by this extension adheres to the Chrome Web Store User Data Policy, including its Limited Use requirements. We use the data only to provide the extension's single purpose, preventing sensitive data from reaching AI assistants and giving the organisation an audit trail; we do not sell it; we do not transfer it to third parties other than as described in section 5 or as required by law; and we do not use it for personalised advertising, creditworthiness or lending.
13. Children
TraceHold is a workplace tool for organisations and their staff. It is not directed to children and we do not knowingly process their personal data.
14. Changes to this policy
If the extension's data handling changes, we update this policy and the extension's manifests in the same release, and we revise the "Last updated" date above. For material changes we will provide a more prominent notice on this page.
15. Contact us
- Privacy enquiries: privacy@tracehold.com
- Data Protection Officer: dpo@tracehold.com
- General: hello@tracehold.com
- Post: TraceHold B.V., Werfkade 25, 1033 TA Amsterdam, Netherlands
The extension's own screens link to a copy of this policy bundled with the extension. This page is the current version. See also our Privacy Policy (free extension and website), Terms, DPA and Sub-processors.
See it on your own data
Book a demo, or leave your work email and we’ll get back to you.