Legal

Privacy Policy

Last updated: September 7, 2026. Effective date: September 21, 2026

This Privacy Policy explains what data Cloak collects, why we collect it, and how you can control it. Ordinary chat messages, private file uploads, and call media are encrypted on your device. Account and service metadata, public uploads, and the specific integrations described below are not end-to-end encrypted.

Cloak is operated by Cloak Software LLC ("the Company", "we", "us", "our"). You can reach us at admin@cloak.chat.

What We Collect

Account Information

When you register, we collect:

  • Email address: for account verification, password recovery, and policy updates
  • Username: your display identity on the platform (max 32 characters, alphanumeric)
  • Password: stored as a bcrypt salted hash, never in plaintext
  • Date of birth: to verify you are at least 13 years old (COPPA compliance)
  • Referral code: optional, to attribute a referral and apply eligible rewards

Profile Information

You may optionally provide:

  • Profile avatar and icon images
  • Status message

All profile information is user-provided and visible to other Cloak users.

Messages and Content

Ordinary messages composed in Cloak are encrypted on your device before transmission. Our servers store their ciphertext rather than readable message bodies. Direct messages use AES-256-GCM with conversation keys shared using X25519-based HPKE. Server messages use shared server keys and a random IV for each message.

Voice, video, and screen-sharing media are end-to-end encrypted on participating devices using the client platform's media encryption implementation. Call signaling and routing metadata are processed by the service.

End-to-end encryption does not cover all service data. We process account IDs, server and channel membership, permissions, message routing information, timestamps, reactions, and presence to operate the service. The exceptions below also apply.

Private and Public Attachments

Cloak has two deliberate upload paths. Private uploads are encrypted on your device with AES-256-GCM before being sent over HTTPS to our file service. File keys are encrypted before storage and shared with the users or servers you authorize. Private uploads are managed through your encrypted vault.

Public uploads are intended for shareable media such as memes, reels, and other content you choose to share publicly. These files are uploaded over HTTPS without end-to-end encryption and served through a public CDN. Anyone with the public link can access the file. Posting that link in an encrypted chat does not make the file private. Use the private upload option for content that needs end-to-end encryption.

Integrations and Imported Content

Incoming webhooks and server-hosted flow bots produce content that our servers can read and store without end-to-end encryption. Independently hosted bots that participate as encrypted members decrypt their authorized content on the bot operator's infrastructure. Only add bots you trust.

If you use the Discord importer, our import service receives readable Discord history and stages messages and attachments in private object storage. This staging archive is accessible to the service and is not end-to-end encrypted. Your Cloak client encrypts message bodies as it writes them into Cloak history. Import archives expire after 30 days and are removed by a periodic cleanup process, rather than immediately when an import finishes.

Feedback, report notes, and screenshots you choose to submit are readable by our support and moderation team. Submitting them does not give us the keys to your encrypted conversations.

Technical Data

  • Authentication tokens: session tokens used to authenticate requests and manage signed-in devices
  • Email verification status: timestamp indicating when your email was verified
  • Subscription status: your plan tier and payment status (payment details handled by Stripe)

IP Addresses and Approximate Location

Our services and hosting providers receive your IP address when you connect. We store registration and referral-related IP information to detect referral abuse and related-account activity. Recent IP records used by these checks expire after 30 days. Registration and referral records are stored separately and do not share that automatic 30-day expiry.

We also derive approximate location from your IP address, such as country or region, to select nearby service infrastructure. This does not use device GPS or precise device-location permission. Network and security processing is separate from the application telemetry described below.

Billing Information (Paid Members)

If you subscribe to a paid plan, we additionally collect:

  • Billing address: street address, city, state, postal code, and country, processed by our service and sent to Stripe, which stores the billing address for your subscription
  • Payment history: transaction amounts, payment status (succeeded or failed), and timestamps, stored on our servers for your records
  • Stripe customer ID: a unique identifier linking your Cloak account to your Stripe customer record

Card summary details (brand, last 4 digits, and expiration date) are retrieved from Stripe for display in your account settings but are not stored on Cloak's servers.

Feedback and Reports

If you submit feedback or a report, we collect:

  • Your user ID and username
  • Feedback type and message content
  • Optional attachments or screenshots you choose to include
  • For reports: the reported user's information and your notes

Google Analytics: Marketing Website Only

Google Analytics runs only on our marketing website at cloak.chat, including its website account pages. It does not run in the Cloak desktop app, mobile apps, or the web chat app at app.cloak.chat.

It collects website usage information such as page views, referral sources, and device/browser information. Google Analytics uses cookies and browser/session identifiers to distinguish visits, so we do not describe this data as fully anonymous. See Google's Privacy Policy and Google's explanation of Analytics cookies.

Application Analytics

Desktop, web, and mobile clients send separate first-party usage and performance telemetry to Cloak. This is not Google Analytics. Application analytics are enabled by default and can be disabled in the app's privacy settings on each device.

  • A randomly generated installation identifier, retained between launches, and a new session identifier for each app session
  • Event names and timestamps, such as a feature being used, along with performance values such as startup time, memory usage, and session duration
  • Platform and app version, release channel, OS type and version, architecture, locale, and screen dimensions, where available on the platform

These events do not include message bodies, encryption keys, email addresses, or account IDs. Installation and session IDs let us associate events from the same installation or session, so this is pseudonymous data, not fully anonymous data. The telemetry event table does not store IP addresses; the intake endpoint uses IP addresses temporarily for rate limiting. Other IP processing is described above.

Cookies and Local Storage

The website uses cookies for sign-in sessions and referral attribution as well as Google Analytics. The referral cookie lasts seven days. Applications use local storage for settings, authentication, encryption material, and the installation identifier described above. Browser controls can block or remove website cookies, but blocking sign-in cookies can prevent account pages from working.

Data We Do Not Require

Creating a Cloak account does not require your real name, phone number, an imported contact list, or device GPS access. You may still provide identifying information in your profile, billing details, public content, or a support request.

Encryption and Security

End-to-end encryption protects ordinary chat message bodies, private uploads, and call media. It does not hide the metadata or service-readable content described above. Recipients can retain or share content they have already decrypted.

Message Encryption

  • Direct messages use AES-256-GCM, with the conversation key exchanged using X25519 (Curve25519) public key cryptography
  • Server and channel messages use AES-256-GCM with a random initialization vector (IV) generated for each message
  • Voice and video use end-to-end media encryption through WebRTC-based call implementations, including browser and native client support

Key Storage and Encrypted Backups

Clients generate and use private encryption keys locally. Local protection depends on the platform: desktop and mobile use their platform storage mechanisms, while the web app uses browser storage. We also store public keys and encrypted recovery backups of identity and conversation-key material on our servers. Those backups are not plaintext copies of your private keys.

Recovery Secret

Account setup generates a random 32-character recovery secret, separate from your login password. It protects encrypted key backups and can be exported for safekeeping. Cloak stores encrypted recovery material, including an encrypted copy of the secret, but does not receive a plaintext copy of that recovery secret through the backup process.

Keep your recovery secret safe. You can restore encryption keys using it or link a new device from an existing device. If you lose the secret and access to all devices holding your keys, Cloak cannot restore your encrypted history. Resetting your login password does not recover those encryption keys.

Password Storage

Passwords are hashed using bcrypt with an automatically generated salt before storage. We never store passwords in plaintext. Password requirements include a minimum of 10 characters with at least one uppercase letter, one number, and one special character.

Transport Security

Cloak uses several transports: HTTP/3 WebTransport over QUIC/TLS 1.3 where supported, secure WebSockets for other real-time connections including mobile, HTTPS for REST API requests, file uploads, and this website, and WebRTC for calls. Not every connection uses WebTransport or HTTP/3. Message and private-file encryption happens on the client independently of the transport used to carry it.

How We Use Your Data

We use your data to:

  • Operate the service: deliver encrypted messages, manage your account, authenticate you
  • Verify your age: ensure compliance with COPPA (minimum age 13)
  • Send transactional emails: account verification, password recovery, and policy updates only
  • Process payments: if you purchase a subscription (handled by Stripe)
  • Report errors: only if you opt in to crash reporting (see below)
  • Improve the application: usage and performance telemetry helps us prioritize features, fix bugs, and optimize performance

We do NOT use your data to:

  • Send marketing emails or newsletters
  • Serve advertisements
  • Build advertising profiles from your conversations
  • Sell or rent to third parties
  • Train machine learning models

Third-Party Services

These services receive limited data to provide specific functionality:

Stripe (Payments)

Processes subscription payments. Our service processes your billing address and sends it to Stripe for storage. Card summary information (brand, last 4 digits, expiration) is retrieved from Stripe to display in your account settings but is not stored on Cloak's servers. Your Stripe customer ID is stored to manage your subscription, and payment amounts and statuses are stored locally for your transaction history.

Privacy policy: https://stripe.com/privacy

Resend (Email)

Delivers transactional emails including account verification, password recovery, and subscription receipts. Only your email address and the email content are shared.

Privacy policy: https://resend.com/legal/privacy-policy

BugSplat (Crash Reporting, Opt-In)

Cloak uses BugSplat for crash reporting. This is fully opt-in. By default, no crash data is sent. You can control this in your user settings:

  • Off (default): no crash data is sent
  • On: crash logs, stack traces, app version, and basic OS information are sent to BugSplat

You can change this setting at any time.

Google Analytics (Website Only)

Used only on the cloak.chat marketing website, including website account pages. Google Analytics is not used in our desktop or mobile apps or the web chat app at app.cloak.chat. It uses cookies and identifiers as described above.

Privacy policy: https://policies.google.com/privacy

Tenor (GIF Search)

Powers GIF search within the application. Your search queries are sent to Tenor's API. GIF favorites are stored on our servers, not shared with Tenor.

Hosting, Storage, and Call Infrastructure

Hosting and network providers, including Cloudflare, process requests and connection metadata to deliver the service. Object-storage and CDN providers store private ciphertext, public uploads, and service-readable import archives according to the paths described above. Call infrastructure processes signaling and routing metadata and relays encrypted media.

We do not sell your data to advertisers or data brokers.

Legal Basis for Processing (GDPR)

If you are in the EU/EEA, here is the legal basis we rely on for each type of processing:

  • Contract (Art. 6(1)(b)): account registration, encrypted message delivery, payment processing, and all core service functionality
  • Legal obligation (Art. 6(1)(c)): age verification (COPPA) and responding to lawful government requests
  • Consent (Art. 6(1)(a)): opt-in crash reporting via BugSplat. You can withdraw consent at any time in your settings
  • Legitimate interest (Art. 6(1)(f)): service security, referral-abuse prevention, and pseudonymous application usage and performance analytics

International Data Transfers

Our servers and several of our third-party service providers (Stripe, Resend, BugSplat) are based in the United States. If you are located outside the US, your data will be transferred to and processed in the US. Ordinary message bodies, private uploads, and call media remain end-to-end encrypted in transit through our infrastructure. Account and network metadata, website analytics, public content, reports, and import archives can be processed in readable form as described in this policy.

These transfers are necessary to perform our contract with you (Art. 49(1)(b) GDPR) and are further protected by our providers' data processing agreements.

Cloak Software LLC is the data controller. Our third-party service providers act as data processors under data processing agreements.

Data Retention and Deletion

Account records are retained while your account exists. Chat history persists until it is deleted or expires. Any user, on any plan, can set an expiry timer (from 30 seconds to 4 weeks) on a per-message basis, and server administrators can configure per-channel expiry; expired messages are purged from storage automatically. Ordinary chat message bodies are stored as ciphertext. Webhook and server-hosted flow-bot content are exceptions, as described above.

Application telemetry is stored separately using installation and session identifiers. The configured retention cleanup uses a 365-day cutoff; this is not an automatic per-event expiry. Disabling application analytics stops future collection on that device; it does not delete previously received events. Account deletion does not automatically identify or remove those historical events. Contact us about telemetry access or deletion requests.

You can delete your account in the app's settings, or request deletion and assistance by contacting us at admin@cloak.chat. Account deletion removes your profile, credentials, authentication tokens, memberships, and associated account records. One-to-one direct-message history is deleted. Group conversations can survive a member leaving, and messages in servers you do not own can remain in shared history. Deleting your account is not a guarantee that every message you have sent disappears from every conversation.

Copies retained by recipients and records held by payment or other third-party providers are not erased by deleting your Cloak account. Public uploads are also subject to plan-based age and storage limits. Import archives and recent referral IP records follow the separate expiry rules described above.

This deletion is permanent and cannot be undone. Encryption keys stored locally on your devices are not affected by server-side deletion. You should remove the application from your devices separately.

Your Rights

Regardless of where you live, you can:

  • Access your data: view your profile, messages (on your device), and settings through the app
  • Correct your data: update your profile, email, and username at any time
  • Delete your data: request permanent deletion of your account and all associated data
  • Control crash reporting: opt in or out of crash reporting at any time

For EU/EEA Residents (GDPR)

You additionally have the right to:

  • Request a copy of your personal data
  • Object to processing of your data
  • Request restriction of processing
  • Data portability: receive your data in a machine-readable format
  • Withdraw consent at any time
  • Lodge a complaint with your local data protection authority

For California Residents (CCPA/CPRA)

We do not sell or "share" (as defined by the CPRA) your personal information for cross-context behavioral advertising.

CategoryWhat We CollectSourcePurposeShared With
IdentifiersEmail, username, IP addresses, installation and session IDsYou / automatedAccount operation, security, referrals, analyticsResend (email), infrastructure providers
Customer recordsEmail, hashed passwordYouAuthenticationNone
Commercial infoSubscription status, billing address, payment historyYou / StripePayment processingStripe
Sensory dataPrivate encrypted files, public media, report attachmentsYouFile sharing, support, moderationStorage/CDN providers; recipients of shared content
Age / DOBDate of birthYouCOPPA age verificationNone
Internet/electronic activityApp events, timestamps, device information; website visits and cookie IDsAutomatedProduct and website improvementGoogle Analytics (marketing website only), hosting providers
Approximate locationIP-derived country or regionNetwork connectionRegional service routingInfrastructure providers

We do not collect: protected classifications, biometrics, precise device geolocation, professional/employment info, or education records as required account fields. Approximate IP-derived location is described above.

Your CCPA/CPRA rights:

  • Right to know: what data we collect and how we use it (see above)
  • Right to delete: request deletion of your data at any time
  • Right to opt-out of sale: we do not sell your data, so there is nothing to opt out of
  • Right to non-discrimination: we will not treat you differently for exercising your rights

To exercise any of these rights, contact us at admin@cloak.chat.

Children's Privacy

Cloak requires users to be at least 13 years old. We collect date of birth at registration to verify this. If you believe a child under 13 has created an account, please contact us at admin@cloak.chat and we will delete it.

Disclosure for Legal Reasons

We may disclose your data if required by law, court order, or government request. Ordinary encrypted message bodies and private files would be ciphertext; we cannot supply plaintext we do not hold. Account and network metadata, public uploads, reports, webhook/flow-bot content, and retained import archives may be available in readable form. We also reserve the right to reject unlawful requests to protect our users' privacy and safety.

Changes to This Policy

We will notify you of significant changes by posting the updated policy and updating the date above. Continued use of Cloak after changes constitutes acceptance of the revised policy.

Contact

If you have questions about this Privacy Policy: