CONSENT
What the baseline reading log contains
The post-v1.0 read-link design would serve the file and store exactly three records before consent: one opaque session cookie, one "opened" row, and a truncated-IP abuse counter deleted at 24 hours.
This page describes a class of document in general terms. It is not legal advice, it is not about your situation, and it is not a substitute for the advice of an attorney. Reading it creates no attorney-client relationship.
Product status
OctoDoc-specific descriptions of proof files, public verification, read links, reading logs, AATL or B-LTA trust, and Object Lock on this page describe post-v1.0 designs, not capabilities in the current product. The cited standards and primary-source facts remain educational references.
01
One response and three records
| Item | What it holds | OctoDoc's necessity basis |
|---|---|---|
| The served file | The document bytes returned over TLS from the document plane in answer to the read-link request. A response, not a stored record. | Returning the file is the service that was explicitly requested. There is no version of a read link that omits this and still exists. |
| One opaque session cookie | A 128-bit random value. HttpOnly, Secure, SameSite=Lax, host-only, and set with no expiry attribute, so the browser treats it as session-scoped. | It binds a run of range requests and page navigations to one authorised read-link session, so authorisation is evaluated once per session instead of once per byte range, and the abuse counter is scoped per session instead of per request. It is not what makes byte delivery work: range requests are stateless and the read-link identifier is already in the URL path. |
| One "opened" row | file id, read link id, server-side timestamp. No IP, no user agent, no party reference. | The sender treats the read link as a delivery mechanism. Whether the file was served at all is the state of that delivery, not an observation of how the visitor behaved after it arrived. |
| A truncated-IP abuse counter | IPv4 truncated to /24, IPv6 truncated to /48, plus a timestamp and a request count. Deleted at 24 hours. | A read link is an unauthenticated URL in front of a private document, enumerable by anyone who holds or guesses one. The design limits the counter to coarse network data for 24 hours and treats it as security for the explicitly requested file-delivery service. Server-side storage does not itself put the source IP outside Article 5(3); the design depends on the strictly-necessary exemption rather than storage location. |
02
What the baseline does not contain
- 1No per-page dwell. Nothing records which page was on screen, in what order, or for how long.
- 2No scroll depth, no viewport geometry, no pointer or keyboard events, no visibility-change timing.
- 3No device fingerprint. Canvas rendering, font enumeration, screen metrics, timezone, hardware concurrency and audio context are not read. The fingerprinting module was removed from the product in v1 rather than switched off behind a flag.
- 4No TLS or JA3/JA4 fingerprint. The terminating proxy persists no handshake signature, cipher ordering or extension set.
- 5No third-party beacon. Zero analytics vendors, zero tag managers, zero tracking pixels, zero fonts or scripts from an origin OctoDoc does not serve.
- 6No full IP address in the reading log, and none anywhere at all once the 24-hour abuse window elapses.
- 7No link between the reading record and a signer's identity. The "opened" row is keyed to the read link, never to a party row.
04
Necessary to provide the service, not necessary to run the business
Article 5(3) of Directive 2002/58/EC, in its consolidated form, sets a default and then names two carve-outs: "Member States shall ensure that the storing of information, or the gaining of access to information already stored, in the terminal equipment of a subscriber or user is only allowed on condition that the subscriber or user concerned has given his or her consent, having been provided with clear and comprehensive information, in accordance with Directive 95/46/EC, inter alia, about the purposes of the processing. This shall not prevent any technical storage or access for the sole purpose of carrying out the transmission of a communication over an electronic communications network, or as strictly necessary in order for the provider of an information society service explicitly requested by the subscriber or user to provide the service."
Two phrases do the work. "Strictly necessary" governs the second carve-out, anchored to the service the visitor explicitly asked for — for a read link, delivery of one file behind one URL. "Terminal equipment" bounds the Article's technical scope, but the location of the resulting server record does not settle whether the source information originated there. EDPB Guidelines 2/2023 say at paragraph 55: "Unless the entity can ensure that the IP address does not originate from the terminal equipment of a user or subscriber, it has to take all the steps pursuant to the Article 5(3) ePD." The planned counter therefore rests on a narrow security purpose and lifetime under the strictly-necessary exemption, not on its server-side location.
The closest technical pattern in the Article 29 Working Party's Opinion 04/2012 on Cookie Consent Exemption is "User input cookies (session-id), for the duration of a session or persistent cookies limited to a few hours in some cases." The planned cookie shares the first-party, random, temporary Session-ID mechanics described in the opinion, but purpose controls the exemption: a read link is not an authentication cookie because no user logs in. The same opinion separately lists "User centric security cookies, used to detect authentication abuses, for a limited persistent duration." That category supports purpose and lifetime discipline for the abuse control without deciding the legal treatment of an IP-based server counter by label alone.
Version 2.0 of the European Data Protection Board's Guidelines 2/2023 on the technical scope of Article 5(3), adopted 7 October 2024, closes a second escape route at paragraph 12: "In conclusion, the notion of information includes both non-personal data and personal data, regardless of how this data was stored and by whom, i.e. whether by an external entity (also including other entities than the one having access), by the user, by a manufacturer, or any other scenario." On that reading a pseudonymous or wholly anonymous value written into a browser is still information in terminal equipment, so OctoDoc does not treat "the value is anonymous" as an answer to the storage question.
05
Everything above the baseline is one consent event
- Event name
- consent.telemetry
- Default state
- declined
- Recorded from
- an affirmative act only — no pre-selected control, no consent inferred from continued reading or scrolling
- Versioned
- consent_version, pinned to the exact notice text presented
- Hashed
- sha256 of the canonicalised notice text, stored on the consent row
- Sec-GPC: 1
- recorded as a declined answer; the prompt is not re-presented in that session
- Withdrawal
- halts collection immediately; rows already gathered keep their consent_version
- EU-region orgs
- device and TLS fingerprinting surfaces are absent from the build, not consent-gated
- Pre-consent records stored
- 3 — session, "opened" row, abuse counter
- Pre-consent responses served
- 1 — the file itself
- Third-party origins on the read link surface
- 0
06
Why the list has to be closed to be worth anything
A privacy answer of "minimal analytics" or "only what is necessary" carries no information. It cannot be falsified, so it cannot be relied on, and it cannot go into a data processing agreement without a schedule underneath it.
The rows above are the whole of the pre-consent path. Anything a future release adds to it changes this page, the privacy notice, and the consent notice text whose hash is stored on every consent row — not an implementation detail that lands quietly in a deploy.
That planned shape would be checkable from outside. Once the post-v1.0 read link exists, a network recording should show one document fetch on one origin, one host-only session cookie with no expiry attribute, and no request to any other hostname.
The operative standard the second half of this design is written against is Article 4(11) of the General Data Protection Regulation, which defines consent as "any freely given, specific, informed and unambiguous indication of the data subject's wishes by which he or she, by a statement or by a clear affirmative action, signifies agreement to the processing of personal data relating to him or her". Recital 32 restates it as a "clear affirmative act", but a recital is an interpretive aid rather than operative text, so the design is pinned to the Article. Storing the notice hash alongside the event is how OctoDoc keeps a record of which words were on screen when the affirmative act happened.
SOURCES
Where each figure came from
1. “Member States shall ensure that the storing of information, or the gaining of access to information already stored, in the terminal equipment of a subscriber or user is only allowed on condition that the subscriber or user concerned has given his or her consent, having been provided with clear and comprehensive information, in accordance with Directive 95/46/EC, inter alia, about the purposes of the processing. This shall not prevent any technical storage or access for the sole purpose of carrying out the transmission of a communication over an electronic communications network, or as strictly necessary in order for the provider of an information society service explicitly requested by the subscriber or user to provide the service.”
EUR-Lex, Publications Office of the European Union · https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:02002L0058-20091219 · checked 2026-07-27
2. “In conclusion, the notion of information includes both non-personal data and personal data, regardless of how this data was stored and by whom, i.e. whether by an external entity (also including other entities than the one having access), by the user, by a manufacturer, or any other scenario.”
European Data Protection Board · https://www.edpb.europa.eu/system/files/documents/2024-10/edpb_guidelines_202302_technical_scope_art_53_eprivacydirective_v2_en_0.pdf · checked 2026-07-30
3. “Unless the entity can ensure that the IP address does not originate from the terminal equipment of a user or subscriber, it has to take all the steps pursuant to the Article 5(3) ePD.”
European Data Protection Board · https://www.edpb.europa.eu/system/files/documents/2024-10/edpb_guidelines_202302_technical_scope_art_53_eprivacydirective_v2_en_0.pdf · checked 2026-07-30
4. “User input cookies (session-id), for the duration of a session or persistent cookies limited to a few hours in some cases.”
Article 29 Data Protection Working Party (WP 194, Opinion 04/2012 on Cookie Consent Exemption) · https://ec.europa.eu/justice/article-29/documentation/opinion-recommendation/files/2012/wp194_en.pdf · checked 2026-07-30
5. “User centric security cookies, used to detect authentication abuses, for a limited persistent duration.”
Article 29 Data Protection Working Party (WP 194, Opinion 04/2012 on Cookie Consent Exemption) · https://ec.europa.eu/justice/article-29/documentation/opinion-recommendation/files/2012/wp194_en.pdf · checked 2026-07-30
6. “any freely given, specific, informed and unambiguous indication of the data subject's wishes by which he or she, by a statement or by a clear affirmative action, signifies agreement to the processing of personal data relating to him or her”
EUR-Lex, Publications Office of the European Union · https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679 · checked 2026-07-27
7. “Consent should be given by a clear affirmative act establishing a freely given, specific, informed and unambiguous indication of the data subject's agreement to the processing of personal data relating to him or her, such as by a written statement, including by electronic means, or an oral statement.”
EUR-Lex, Publications Office of the European Union (GDPR Recital 32) · https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679 · checked 2026-07-27
NEXT
OctoDoc, the signing system of record
Nobody wants to read the contract. OctoDoc is being built so you do not have to: write a document from a prompt, ask plain-language questions about the one you were sent, and keep every one of them in a single place instead of four accounts and an inbox.
Unlimited human sends on the paid tier.