Skip to privacy policy

Privacy Policy

1. Controller and contact

The person or organisation responsible as data controller for operating PrivateChat is Thomas Firas. The controller determines why and how personal data are processed for the service.

For privacy questions or a request concerning your information, contact support@privatechat.tv. The controller's verified identity and suitable contact details must replace the provisional information before this notice is published.

This policy covers the PrivateChat application, its public pages and support or voucher communications handled by the operator. An external email provider, social network or invitation-sharing service also has its own privacy practices.

2. Information processed

Creator accounts and vouchers
Username, an internal account identifier, a password hash, account status and creation time, and the password-change time when known. Voucher records include hashed identifiers, issuance or redemption information and creator-access entitlement. The account does not require your civil name, phone number or email address. A username or account identifier can still be personal data.
Authentication sessions
Hashed session tokens, session identifiers, the associated account, creation, last-seen and expiration times, and a session label. The current application uses a generic browser-session label rather than deriving it from your browser's User-Agent. An authenticated session is associated with its account.
Room and delivery information
Room identifiers, associated creator accounts and any explicitly linked guest accounts, participant roles, invitation and access-verification records, approval or rejection state, cryptographic public material, timestamps, expiry, event ordering, message counts and encrypted-payload sizes. Anonymous guest access still uses technical credentials and room/session identifiers; it does not make all activity unobservable.
Conversation content
The relay stores encrypted messages or protocol payloads so it can deliver them. Participant browsers handle readable message content and the cryptographic state needed to use the room. Encryption does not by itself remove encrypted records or associated metadata from the scope of data-protection law.
Terms acceptance
For registrations using the new acceptance flow, the account is associated with the accepted Terms of Service version, the Privacy Policy version made available with that registration and a server-generated acceptance time. The acceptance record does not add an IP address or device fingerprint. Older accounts are not assigned an acceptance they never gave.
Connections and abuse prevention
Connecting to PrivateChat exposes an IP address and ordinary request information to the network and hosting path. Application rate limits use temporary pseudonymous client identifiers derived from connection information. These controls do not establish that reverse-proxy, hosting or infrastructure logs contain no IP addresses. Section 14 distinguishes application records, diagnostics and infrastructure logging.
Support and voucher requests
If you contact support or request a voucher by email or another channel, the operator receives the address or profile you use, your message, attachments and related correspondence. These communications are separate from an encrypted PrivateChat room. Do not send your password, session tokens, room keys or invitation secrets to support.

3. Purposes and legal bases

The intended legal bases for this draft are:

Accepting the Terms of Service is a contractual action. Making this policy available is an information obligation; it is not a request for blanket consent to every form of processing. Any future optional processing that requires consent must have its own appropriate choice.

A valid voucher and credentials are necessary to create a creator account. Without the required information, the requested account or room operation cannot be completed. Guest entry through an invitation does not require creating a creator account.

4. Encryption and practical limits

PrivateChat is designed to encrypt message content before it reaches the relay and decrypt it on participant devices. The server still processes operational metadata, including room membership state, timing, ordering and encrypted-payload sizes. It is not an anonymity network.

Protection depends on the browser, device and delivered application code. A compromised device, malicious extension or altered client can expose information while it is used. An interlocutor can copy or disclose a conversation. An invitation and creator approval control access, but do not independently verify a person's civil identity.

V2 adds an MLS-based protocol, invitation codes and encrypted durable browser state. The local V2 implementation and test results do not establish that those features are already deployed in the public service. Features and security claims must match the version actually released. No independent security audit is claimed by this policy.

5. Cookies and browser storage

The application uses an authentication cookie to maintain an account session. Its configured maximum lifetime is 30 days; logout, revocation or other security actions can end access earlier. Production cookie policy includes HttpOnly, Secure transport and SameSite restrictions.

PrivateChat also uses browser storage for room credentials, cryptographic state, locally stored conversations, pending messages, recovery records and preferences. The storage used depends on the protocol and feature. V2 seals persistent conversation records using browser-held encryption keys. A local room name is a browser-side label.

The reviewed application source contains no advertising or third-party analytics integration. This statement does not describe extensions installed in your browser or tracking by a separate service you choose to use. Introducing non-essential tracking would require a separate assessment and, where required, prior consent.

You can clear site data through your browser or use the available local-wipe control. Clearing local data can remove keys permanently and make conversations unrecoverable on that browser. It does not itself delete the server account or every server room.

6. Retention and deletion

Accounts, entitlements and vouchers
These records remain while needed to maintain the account, creator access and voucher-redemption integrity. The current application has no automatic account-expiry or self-service account-deletion feature. A deletion request can be made through the contact above and must be assessed against any applicable retention duty or justified need to retain limited records.
Terms acceptance
The initial acceptance record remains associated with the account. It identifies the document versions and time, rather than recording a history of browsing or communication. A final retention schedule for contractual evidence must be set before public use of this draft.
Authentication
A session stops authorising access when it expires or is revoked. Session records are removed through the application's revocation and cleanup paths. Cookie expiry is not a promise that every corresponding database record is physically erased at exactly 30 days.
Rooms and encrypted messages
Room access ends at expiry or confirmed destruction. The application removes the active server room and its stored encrypted messages through its deletion and cleanup paths. Availability of a cleanup worker affects the timing of removal; loss of access and physical erasure are different events.
Browser records
Local data can remain until the relevant client cleanup completes or the user removes site data. An offline or closed browser cannot be assumed to have run cleanup. Browser or operating-system backups and copies held by another participant are outside a server room-deletion operation.
Connection logs, infrastructure backups and correspondence
The deployed configuration and provider arrangements determine whether connection logs are retained and for how long. Actual periods or sufficiently specific criteria for logs, backups and support correspondence must be completed before publication. Disabling access logs would not by itself remove operational diagnostics, database records or older backups. Section 14 describes this boundary.

Deletion in the application is logical deletion through its storage mechanisms. It does not guarantee physical overwrite across storage devices, database journals, replicas, backups, screenshots or exported copies.

7. Recipients and international transfers

The other participant receives the messages you choose to send. Information needed to host, secure and support the service can also be processed by authorised operators and relevant infrastructure or communication providers, within their actual roles and applicable arrangements.

If a binding legal obligation requires disclosure, the operator may have to provide information it actually holds. This policy does not promise immunity from lawful requests, or the ability to recover plaintext or keys that the service does not possess.

Primary application hosting: Germany, within the European Union and European Economic Area. This identifies the application-server location supplied by the operator. It does not establish the locations of every backup, support mailbox, provider support operation or other recipient.

The actual providers and their roles, backup locations and any transfers outside the European Economic Area must be documented before publication, including the applicable safeguards where required. Hosting in Germany alone does not establish that every related processing operation stays in Germany or remove the controller's obligations.

8. Your rights

Subject to the conditions in applicable law, you may request access, correction, erasure, restriction or portability of personal data, and object to processing based on legitimate interests. Where processing relies on consent, you may withdraw that consent without changing the lawfulness of processing already carried out.

Send a request to support@privatechat.tv. Explain the request and give only the information reasonably needed to identify the relevant account or records. Proportionate verification may be necessary; never email passwords, private keys or live access tokens. A privacy request does not provide a password-reset or lost-key recovery mechanism.

The GDPR normally requires a response within one month. An extension of up to two further months can apply when justified by the complexity or number of requests, with notice and reasons within the first month. Rights do not require reconstructing information or plaintext the controller does not hold.

You may complain to the Italian Garante per la protezione dei dati personali or another competent supervisory authority. Contacting support first is not a condition for making a complaint.

9. Young users

Applicable age, contractual-capacity and parental-authorisation requirements continue to apply. An age threshold for consenting to some online data processing is distinct from the ability to enter a service contract. The final eligibility policy must be settled before this draft becomes effective; the current registration form does not verify age.

10. Automated controls

The application uses automated request validation, rate limits and access controls to protect accounts and rooms. These can reject or temporarily restrict requests. The reviewed source does not implement advertising profiles or automated decisions of the kind described in Article 22 GDPR producing legal or similarly significant effects.

11. Changes to this policy

Changes must carry a new version and date and describe the practices actually introduced. A material change in processing may require further information or a separate legal basis before it begins. An account's recorded notice version identifies the notice supplied with that registration; it is not proof of consent to future changes.

12. Details to complete before publication

This draft deliberately leaves the following matters unresolved rather than replacing them with assumptions:

These are publication requirements for this draft. The placeholder and this section must be resolved in a reviewed final version; local tests do not establish legal compliance.

13. Technical reference: browser, relay and invitations

This reference describes the reviewed application and the implemented V2 development flow. It does not establish which V2 features are deployed in the public service. The running version, its client code and operational configuration determine the protections actually available.

Content and transport are separate layers
Participant browsers encrypt and decrypt message content. The relay receives encrypted payloads and the identifiers and delivery information needed to route them. HTTPS protects transport to the service; it is not a substitute for end-to-end content encryption. The operator still distributes the browser application and must secure that delivery path.
V2 conversation state and membership
V2 uses an MLS-based conversation protocol through a local WebAssembly module. The creator reviews a guest claim and approves admission bound to the reviewed cryptographic material. Membership changes and epochs have explicit state transitions. Approval does not prove a person's civil identity, and protocol labels alone do not establish an independently audited implementation or protection against every compromise.
Invitation links and short codes
The two entry paths coexist with creator approval. The V2 code flow uses a blinded VOPRF evaluation with the ristretto255-SHA512 suite and an AES-GCM-protected invitation envelope. Blinding concerns the evaluation input; it does not hide connection metadata or turn a six-character code into an unlimited-strength secret. The evaluation service has its own secret, and online throttling, valid invitation state and creator approval remain important controls.
Browser persistence and origin trust
V2 seals durable protocol and conversation records with AES-GCM before storing them in IndexedDB. Protected conversation state uses browser-held, non-exportable Web Crypto keys. Non-exportability restricts direct key export through that API; code with the relevant origin privileges may still use accessible keys or read content while the application runs. Storage loss can mean permanent loss of local access. Clearing server records does not remotely overwrite an offline browser.
What the relay can observe
The relay handles room and account associations, participant roles, access and approval state, event type and order, protocol epochs, timestamps and encrypted-payload sizes. Message padding uses bounded size classes; it reduces precise length disclosure within a class but does not conceal timing, traffic volume or every size distinction. These operational records are distinct from readable message content.
Credentials and abuse controls
Server-side account, session and room-access records use the application's password or token verification mechanisms. The authentication-session table includes an account reference and creation, last-seen and expiry fields; avoiding an email field does not make an account unidentifiable in every context. The application derives pseudonymous rate-limit keys with HMAC-SHA256 from connection information and keeps limiter state in process memory. Pseudonymisation does not eliminate network-layer IP visibility.
Deletion and verification limits
Expiry and authorised destruction stop room access and invoke active-record cleanup. Database journals, backups, recipient copies and browser or device backups have separate lifecycles. Development tests check specific cases and versions; there is no claimed independent security audit, absolute anonymity, post-quantum guarantee or universal forensic-erasure guarantee.

Technical reviewers can contact support@privatechat.tv for questions about an identified version or a reproducible issue. Never send real credentials, invitation secrets, private keys or another participant's conversation to support.

14. Logging scope and operational records

No plaintext message-transcript logger is implemented in the reviewed chat application. The relay's conversation records are encrypted payloads with the functional metadata described above. That statement is deliberately narrower than saying that no logs or personal data exist anywhere in the service.

Application records
Accounts, authentication sessions, voucher redemption, room membership and delivery records are retained for their stated functions. New-registration acceptance records contain an account reference, document versions and server time, without adding an IP address or device fingerprint. These are still records and may still be personal data; they must not be described as absent under a blanket no-log claim.
Operational diagnostics
The reviewed cleanup worker can emit generic failure messages. Runtime errors and process supervision can also produce diagnostics. The manual development runner disables HTTP access logging, but that setting does not establish the production backend configuration or the absence of diagnostic output. The logging destinations and retention depend on how the service is operated.
Proxy, host and provider layers
A reverse proxy, operating-system journal, hosting provider or network security service can process connection data independently of a dedicated application logger. HTTP access logging, error logging, request-URL handling, IP handling, rotation, backups and provider retention must be checked separately. No infrastructure-wide zero-log claim is made by this draft.

Before final publication, the operator must replace unresolved operational details with the verified policy for the actual deployment. Any final no-logging statement must name its scope and match both the configuration and its ongoing operation. Choosing not to retain a class of data does not mean it is never processed transiently.