Who We Are

Comin is an end-to-end encrypted messenger for chats and audio/video calls, operated by Egor Sazanov, Individual Entrepreneur (addicted studio). Website: comin.chat. Privacy questions: privacy@comin.chat.

The short version: Comin is designed so that we cannot read your messages even if we wanted to. Messages and media are encrypted on your device before reaching our servers using the MLS protocol (RFC 9420). We never hold the keys — you do. No ads. No data sales. No third-party analytics SDKs. What we can access — account details, avatars, a copy of a message you report, access requests, app reports, call ratings, purchases and call usage — is listed below.

1. What We Collect and Why

Account Data

DataWhy we need it
Username (handle)Your unique identifier. Required to create an account.
Display nameOptional. Shown to other users instead of your handle.
Profile and room avatarsOptional. Stored on our server without end-to-end encryption (up to 512 KB), so we can technically access them. On the server's disk they are encrypted with a key kept outside the database, so a copy of the database alone does not reveal them; avatars uploaded before 24 October 2026 stay as they were until you change them. Your profile avatar can be seen by any signed-in Comin user who knows your username; a room avatar — by the room members.
Password (hashed)We store a one-way hash — never the password itself. Used to authenticate you.
Recovery emailStrictly opt-in. You add it yourself in Settings. Used only for password-reset and verification emails. Never for marketing. Verified via a confirmation link before storing. In our server’s technical logs the address appears only masked (for example, a***@example.com).

No phone number is required. Ever.

Requests for access

If you choose “Request access” in the app or on this website, we collect the name and email you enter and your optional comment, with your explicit consent. We use them to review your request personally and reply about access to Comin, including sending you an invitation if your request is approved. Submitting a request does not create an account or guarantee an invitation. Your email is not verified by this form. We also record whether the request came from the website or the app and its language (Russian or English).

Comin news. The form has a separate, unticked box: “Send me Comin news”. Only if you tick it do we send you news about the launch and new features. You can unsubscribe at any time by replying to any such email or writing to hello@comin.chat. Without that box we only write to you about your request and invitation. If we start sending news through a dedicated email service, we will name it in this policy before using it.

The request is sent over HTTPS to our server, then through Postmark to hello@comin.chat. It is not end-to-end encrypted: the developer and the email providers involved in delivery and storage can process its contents. Do not include passwords, private chat history or sensitive documents.

Requests are saved in our server's database so the developer can review them in a private admin panel, mark who has been invited and keep a short note. The same database may also hold people who asked us for access directly, for example in a message, and whom we added by hand. Requests and the delivered emails are kept until we delete them or you ask us to; there is no automatic expiry. You can withdraw your request or ask for deletion at hello@comin.chat or privacy@comin.chat. Deleting a Comin account does not automatically remove your request or this separate email correspondence; ask us and we will delete them.

To limit abuse, the server keeps IP-based request counters in memory. Limits use one-hour windows; old counters are discarded when the next window is used or the server restarts. These counters do not contain your name, email or comment. Infrastructure and email providers also process connection and delivery data to operate their services.

Website preferences

The website stores your language choice locally in your browser. It does not use advertising trackers or analytics SDKs. Visiting the website sends ordinary connection data, including your IP address, to our hosting provider Vercel.

Device & Session Data

DataWhy we need it
Push tokens (APNs / FCM)To deliver message and call notifications to your device.
Device info (model, OS, client version)Shown on your Devices screen so you can manage your active sessions.
Approximate location from IPShown alongside each device on your Devices screen (e.g. "Frankfurt, Germany") to help you spot devices you don't recognise. Our server looks it up in a local database (DB-IP Lite); your IP address is not sent to any third party.
IP addressUsed transiently to derive the approximate city above. For this geolocation feature, the IP address is not stored; the city is kept only in server memory and disappears on restart. The access-request abuse counters and infrastructure processing described above are separate.
Last seen timeOne timestamp per account, overwritten each time you connect. Any signed-in Comin user who knows your username can see it as “last seen …”, together with whether you are online right now; there is no setting to hide it. Online status is derived from the open connection and is not stored.

“Animate character”. If this switch is on and the app has camera access, your profile character follows your face through the front camera. The face is detected on your device: Apple Vision on iPhone, Google ML Kit on Android. Frames are not stored and are never sent anywhere. You can turn it off with the switch under the character.

Message & Media Data

Your message content, media files, and encryption keys are never visible to our servers. What the server does handle:

  • Encrypted message payloads — kept only until delivered: removed as soon as your device confirms delivery. Undelivered messages are deleted after 30 days at most. The server cannot decrypt them.
  • Encrypted media files — photos, videos, voice notes and files sent in chats. Deleted automatically 30 days after upload. The key lives only on the devices in the chat; we cannot read the content.
  • Chat membership and routing metadata — to deliver messages and connect calls, the server stores which accounts and devices belong to each chat and sees which device sends to which chat and when. We do not analyse communication patterns, use this for advertising or share it.

Location in chats. A point on the map is sent as an ordinary end-to-end encrypted message; our server never sees it. The map and address search come from the system: Apple Maps (MapKit) on iPhone; OpenFreeMap map tiles and the device’s built-in geocoder on Android. These requests go from your device directly to those services and do not include your Comin account.

Link previews. When you send a message with a link, your device opens the page itself (without cookies) and puts its title, description and image inside the encrypted message. The website sees your device’s IP address, just as when you open a link. Our server does not learn which links you send, and the recipient loads nothing. To turn it off: Settings → Security → “Link previews”.

Music cards. A Spotify, Apple Music or YouTube Music link is shown as a card. The player loads from the service’s website only after you tap ▶︎ — then the service sees your device’s IP address. The player opens without stored cookies; for the YouTube player the app sends only comin.chat in the Referer header, without the chat or the link.

Voice message transcription. Voice messages are transcribed on your device; the audio goes nowhere. On iPhone the system does the recognition; if the language model is missing, it is downloaded from Apple. On Android it is Vosk: the language model is downloaded once from alphacephei.com, which sees your device’s IP address.

Chat restrictions. “Block media downloads” and “Block screenshots” are passed to members inside encrypted messages — the server does not see them. They remove saving and forwarding in members’ apps (screenshots are blocked on Android only), but they cannot stop someone from filming the screen with another device. If a member takes a screenshot of the chat, the others see a line about it in the chat.

Calls

Audio, video and screen sharing in calls are end-to-end encrypted. Every media frame is encrypted on your device (AES-GCM, LiveKit frame encryption) with a key derived from the chat’s MLS group (MLS exporter secret, RFC 9420). The key is known to every current member of that chat, including members who are not in the call, and it changes whenever the chat membership changes. Our self-hosted LiveKit server only relays encrypted media and cannot decrypt it. We do not record calls. To connect a call, the server knows which accounts take part and for how long.

Relay node

To keep Comin working on networks that restrict direct connections to our server, the app may connect through one of our intermediate relay nodes, hosted by UpCloud Ltd. (Helsinki data centre, Finland) or by Cherry Servers (data centre in Lithuania). Both providers act as our data processors. The app switches to a relay node automatically only when the direct connection does not work. The node forwards encrypted traffic to our main server and relays encrypted call media. It can see your device's IP address and the time and volume of connections, but it cannot read your messages or access call audio or video: messages are protected by end-to-end encryption and TLS, call media by SRTP and Comin's end-to-end encryption. The node keeps no connection logs and stores no user data.

Your own proxy

In Settings → Security → “Proxy” you can set your own proxy server (SOCKS5 or HTTP); on Android also Tor via Orbot. Then everything the app opens by itself — the connection to our server, link previews, the music player and, on Android, transcription model downloads — goes through the proxy, and the Comin server and websites see the proxy’s address instead of yours. The proxy operator sees your device’s IP address, which addresses you connect to, and the time and volume of traffic, but not the content: it is protected by TLS and end-to-end encryption. You choose the proxy; its operator is not our processor. Calls bypass the proxy, so the call server sees your IP — the app warns you before the call. Push notifications and purchases also go directly, through Apple and Google. Proxy settings stay on your device.

Call usage (Comin Flame limits)

For group calls the server counts how many seconds of calls took place during the calendar month in rooms you own, and how many trial calls you have used. Only the monthly totals are stored — no rooms, participants or individual calls. They are used to apply the limits of the free plan and are deleted together with your account.

Call rating

After a call the app may ask “How was the call?”. Only if you tap “Send” or “Share log” do we receive: a rating from 1 to 5, the tags you chose (for example “Echo” or “Dropouts”), the connection time, the call type (one-to-one or group), whether the network was poor or the connection failed, the platform, the app and OS versions, and a room tag — a short hash of the room ID that shows ratings come from the same room, but not which room. A rating has no text, names or call content. It is linked to your account. There is no retention limit; when you delete your account, the link to it is erased and the rating stays without an author. If you close the prompt without rating, nothing is sent.

Reports

If you report a message, your device decrypts it and sends us a copy of its text (up to 4,000 bytes — about 4,000 Latin or 2,000 Cyrillic characters; longer text is cut off), the reason you chose, the author’s username and the chat and message identifiers, linked to your account. This is the only case in which message content reaches our server, and only when you decide to report. A moderator reviews the copy; our support mailbox receives a notice about the report without the message text. Reports are kept for up to 180 days and are deleted earlier if the reporting account is deleted.

App reports

Only if you send a report yourself — after rating a call (“Share log”), or with “Send log to developer” in Settings — the app sends us its event log: call quality, microphone and audio events, app version, phone model and OS version, plus an optional note you type. The log starts with on-device counters of how many photos were sent with each preset; they are never sent apart from a report. There is no message or call content in it; before sending, the app removes anything that looks like a token, key, link path or email address, and our server filters it again. The report is linked to your account, is kept for 7 days and then deleted (earlier if you delete your account), and only the developer can see it, to investigate the problem. Our support mailbox receives a notice about a new report without the log or your note. You can still share the log file yourself instead.

Purchases

Comin Flame and the Early access pack are bought through the App Store or Google Play. Apple and Google process the payment; we never receive your card or payment details. To link a purchase to your account, the app passes your Comin account ID to the store with the purchase. Our server stores the product, the store’s transaction identifier (Apple original transaction ID or Google Play purchase token), whether it is a real or test purchase, the paid-through date and a mark if the purchase was cancelled or refunded. To keep this up to date, the server receives purchase notifications from Apple and Google and checks the purchase status with Google Play. The record is kept until you delete your account.

2. What We Do NOT Collect

  • Message and call content — except a copy of a message you choose to report (see “Reports”)
  • Automatic crash reports or usage analytics — the app log and call ratings reach us only when you send them yourself (see “App reports” and “Call rating”)
  • Camera frames for “Animate character” — the face is detected on your device
  • Your precise location — a point on the map travels only inside an encrypted message
  • Payment card details — payments are handled by Apple and Google
  • Your phone number
  • Your contacts or address book
  • Advertising identifiers (IDFA / GAID)
  • Data from any third-party analytics or tracking SDK — we use none

3. Legal Basis for Processing (GDPR)

For users in the EEA or UK, we process personal data under the following legal bases:

Processing activityLegal basis
Providing the messaging service (account data, push tokens, encrypted payloads)Contract Art. 6(1)(b) GDPR
Access requests (name, email, optional comment) and Comin news if you tick the boxConsent Art. 6(1)(a) GDPR. Withdraw by contacting hello@comin.chat or privacy@comin.chat.
Recovery email (opt-in)Consent Art. 6(1)(a) GDPR. Withdraw by removing the email in Settings.
IP-based geolocation for session managementLegitimate interest Art. 6(1)(f) GDPR — security & fraud prevention, minimal transient processing.
Purchases and Comin Flame limits (purchase records, call usage)Contract Art. 6(1)(b) GDPR
Reviewing reports (copy of the reported message)Legitimate interest Art. 6(1)(f) GDPR — keeping users safe and enforcing the Terms of Use.
App reports you choose to send (event log)Consent Art. 6(1)(a) GDPR — given each time you send a report. Ask us to delete a report earlier at any time.
Call ratings you choose to sendConsent Art. 6(1)(a) GDPR — given each time you tap “Send” or “Share log”.
Compliance with legal obligationsLegal obligation Art. 6(1)(c) GDPR

4. How We Use Your Data

  • To operate and deliver the messaging service
  • To review and reply to requests for access
  • To authenticate you and protect your account
  • To display active sessions on the Devices screen
  • To send password-reset and verification emails (only if you added a recovery email)
  • To deliver push notifications for messages and calls
  • To verify purchases and apply Comin Flame limits
  • To review reports and enforce the Terms of Use
  • To investigate app problems you send us a report about
  • To improve call quality using the ratings you send
  • To comply with applicable law when required

We do not use your data for advertising, profiling, or selling to third parties.

5. Third-Party Sub-Processors

We do not sell or share your data with advertising networks or data brokers. We use a small number of infrastructure providers who process data on our behalf:

ProviderRoleLocation
DigitalOceanServer hosting and file storage (Spaces) for encrypted mediaEU (Frankfurt, Germany)
UpCloudRelay node: forwards encrypted traffic and call media when the direct connection to our server does not work; sees connection IP addresses, keeps no logs (details)EU (Helsinki, Finland)
Cherry ServersRelay node: forwards encrypted traffic and call media when the direct connection to our server does not work; sees connection IP addresses, keeps no logs (details)EU (Lithuania)
Postmark (ActiveCampaign)Transactional email: to your recovery address (verification, password reset, device-reset codes and alerts) and report notices to our support mailbox (usernames and reason, no message text; for app reports — username, app version and phone model, without the log); access-request emails to hello@comin.chat, including the submitted name, email and commentUSA
PurelymailMailboxes at comin.chat (hello@, support@, privacy@): stores the email we receive, including access requests and report noticesUSA
LiveKit (self-hosted)Call media relay — on our own infrastructure; media is end-to-end encryptedEU (Frankfurt)
ApplePush notifications on iPhone (APNs); App Store purchases and purchase notifications; Apple Maps (MapKit) for the map and address search on iPhone; speech recognition models if your iPhone lacks them; the Apple Music player when you tap ▶︎USA
GooglePush notifications on Android (Firebase Cloud Messaging); Google Play purchases and purchase status; on Android devices with Google services, the system geocoder for address search; the YouTube Music player when you tap ▶︎USA
VercelHosting of the comin.chat website and invite link pages (processes your IP address when you open them)USA
OpenFreeMapMap tiles on Android, requested by your device directly, without your Comin account—
SpotifyThe Spotify player when you tap ▶︎, loaded by your device directly, without your Comin account—
Alpha Cephei (Vosk)Voice transcription models on Android, downloaded by your device directly, without your Comin account—

Push notifications do not contain message text in readable form or the sender’s name. To let the app open the right chat, each notification carries the chat identifier (a random ID), so Apple and Google can see that your device received a notification for a particular chat and when. In incoming-call notifications, older app versions also receive the caller’s username. Apple and Google process App Store and Google Play payments as independent controllers under their own privacy policies.

All sub-processors are engaged under DPAs where required by GDPR. We will not add new sub-processors without updating this policy.

6. Data Retention and Deletion

Data typeRetention period
Account profile (username, display name, avatar, password hash)Until account deletion
Access requests and repliesIn our server’s database and mailbox until deleted; request deletion by email. No automatic expiry.
Access-request IP countersIn memory; reset on the next one-hour window used or server restart
Recovery emailUntil removed in Settings or account deleted
Push tokensUntil replaced, revoked, or account deleted
Encrypted messages awaiting deliveryDeleted once delivered; undelivered — after 30 days at most
Stale device sessionsAuto-purged ~every 6 hours
Encrypted media files30 days from upload
Reports (copy of the reported message)Up to 180 days; earlier if the reporting account is deleted
App reports you sent (event log, app version, phone model, your note)7 days, then deleted; earlier if the account is deleted
Purchase recordsUntil account deletion
Call usage (monthly totals)Until account deletion
Call ratingsNo limit; unlinked from the account when it is deleted
Last seen timeUntil account deletion (overwritten on each connection)
Message historyOn your device only — server does not archive conversations
IP address (geolocation)Not stored; the derived city is kept in server memory only

Deleting your account: Go to Settings → Delete account and confirm with your password. Instructions without the app: comin.chat/delete-account. Account-linked data in the application database is deleted; call ratings stay, unlinked from the account. Separate email correspondence, including access requests, requires a deletion request by email. Device-local message history is unaffected — you can clear it separately within the app.

7. Your Rights

Under GDPR (EEA/UK residents), you have the right to:

RightHow to exercise it
AccessRequest a copy of the personal data we hold about you
RectificationUpdate most data directly in the app; contact us for the rest
ErasureDelete your account in the app, or contact us
RestrictionContact us to pause processing in certain circumstances
PortabilityRequest your data in a structured, machine-readable format
ObjectionObject to processing based on legitimate interests
Withdraw consentRemove your recovery email in Settings; contact us to withdraw an access request or delete a submitted app report

Contact us at privacy@comin.chat. We respond within 30 days. EEA residents may also lodge a complaint with their local data protection authority.

8. Security

  • All message content is end-to-end encrypted using the MLS protocol (RFC 9420) before leaving your device. Servers hold only ciphertext.
  • Calls are end-to-end encrypted with a key from the chat’s MLS group; the call server relays only encrypted media.
  • Passwords are stored as one-way hashes — we cannot recover your password.
  • All device-to-server connections use TLS.
  • We conduct periodic security reviews.

No system is 100% secure. If you discover a vulnerability, please disclose it responsibly to privacy@comin.chat.

9. Children

Comin is not directed to children under 13 years of age (or the applicable minimum age in your jurisdiction). We do not knowingly collect personal data from children under 13. If you are a parent or guardian and believe your child has created an account, please contact privacy@comin.chat and we will promptly delete it.

10. Changes to This Policy

We may update this policy as the service evolves. When we make material changes, we will notify you within the app and update the "Last updated" date. Continued use of Comin after the effective date constitutes acceptance of the changes.

11. Open-Source Software

Comin is built on open-source software. We are grateful to its authors. Licence texts are available in each project's repository.

Encryption core (MLS, RFC 9420)

  • mls-rs, mls-rs-core, mls-rs-crypto-rustcrypto (AWS) — Apache-2.0 / MIT
  • comin-mls — our fork of mls-rs-uniffi (AWS) — Apache-2.0 / MIT
  • RustCrypto (curve25519, AES-GCM, HKDF, SHA-2 and others) — MIT / Apache-2.0
  • UniFFI (Mozilla) — MPL-2.0
  • zeroize, thiserror, async-trait, maybe-async — MIT / Apache-2.0

iOS app

Android app

  • Kotlin, kotlinx.coroutines, kotlinx.serialization (JetBrains) — Apache-2.0
  • Jetpack Compose and AndroidX (Core, Lifecycle, Activity, Room, DataStore, Security, Biometric, CameraX, ExifInterface, Material Icons) — Apache-2.0
  • OkHttp / Okio (Square) — Apache-2.0
  • LiveKit Android SDK — Apache-2.0; WebRTC (Google) — BSD-3-Clause
  • JNA — Apache-2.0 / LGPL-2.1
  • ZXing — Apache-2.0
  • Vosk and Kaldi (on-device speech recognition) — Apache-2.0
  • Firebase Cloud Messaging SDK (Google) — Apache-2.0

The Android app also uses Google ML Kit (barcode scanning), which is not open source and is provided under the ML Kit Terms of Service.

Server and infrastructure

12. Contact

Egor Sazanov, Individual Entrepreneur (addicted studio)

Website: https://comin.chat

Privacy: privacy@comin.chat

Кто мы

Comin — мессенджер с сквозным шифрованием для чатов и аудио/видеозвонков, оператор — ИП Егор Сазанов (студия addicted). Сайт: comin.chat. По вопросам конфиденциальности: privacy@comin.chat.

Коротко о главном: Comin спроектирован так, что мы не можем читать ваши сообщения, даже если бы захотели. Сообщения и медиафайлы шифруются на вашем устройстве ещё до отправки на серверы — по протоколу MLS (RFC 9420). Ключи шифрования никогда не передаются нам. Без рекламы. Без продажи данных. Без сторонних аналитических SDK. Какие данные нам доступны — данные аккаунта, аватары, копия сообщения при жалобе, заявки на доступ, отчёты о работе приложения, оценки звонков, покупки и учёт звонков, — описано ниже.

1. Что мы собираем и зачем

Данные аккаунта

ДанныеЗачем нужны
Username (никнейм)Ваш уникальный идентификатор. Необходим для создания аккаунта.
Отображаемое имяНеобязательно. Показывается другим пользователям вместо никнейма.
Аватар профиля и комнатыНеобязательно. Хранится на сервере без сквозного шифрования (до 512 КБ), то есть технически нам доступен. На диске сервера аватары зашифрованы ключом, который хранится отдельно от базы данных: по одной копии базы их не увидеть; аватары, загруженные до 24 октября 2026 г., остаются как были, пока вы их не смените. Аватар профиля может увидеть любой вошедший пользователь Comin, который знает ваш ник; аватар комнаты — её участники.
Пароль (хэш)Мы храним только одностороннюю хэш-функцию, никогда не сам пароль. Используется для аутентификации.
Email для восстановленияИсключительно по вашему желанию (opt-in). Добавляете сами в Настройках. Только для писем сброса пароля и верификации. Никакого маркетинга. Адрес верифицируется перед сохранением. В технических логах сервера адрес виден только маской (например, a***@example.com).

Номер телефона не требуется. Никогда.

Заявки на доступ

Если вы выбираете «Запросить доступ» в приложении или на сайте, с вашего явного согласия мы получаем указанные имя, email и необязательный комментарий. Они нужны для индивидуального рассмотрения заявки и ответа о доступе к Comin, в том числе чтобы прислать приглашение, если заявка одобрена. Отправка не создаёт аккаунт и не гарантирует приглашение. Форма не подтверждает владение указанным email. Мы также отмечаем, откуда пришла заявка — с сайта или из приложения, — и её язык (русский или английский).

Новости Comin. В форме есть отдельная галочка «Присылайте новости Comin», по умолчанию она не отмечена. Только если вы её поставите, мы пришлём новости о запуске и новых функциях. Отписаться можно в любой момент: ответьте на такое письмо или напишите на hello@comin.chat. Без галочки мы пишем вам только о заявке и приглашении. Если для новостей мы начнём использовать отдельный почтовый сервис, назовём его в этой политике до начала использования.

Заявка передаётся по HTTPS на наш сервер, затем через Postmark на hello@comin.chat. Она не защищена сквозным шифрованием: разработчик и почтовые провайдеры, участвующие в доставке и хранении, могут обрабатывать её содержимое. Не указывайте пароли, личную переписку и конфиденциальные документы.

Заявки сохраняются в базе нашего сервера: разработчик разбирает их в закрытой админке, отмечает, кого пригласил, и оставляет короткую заметку. Там же могут быть люди, которые попросили доступ напрямую, например в сообщении, и которых мы добавили вручную. Заявки и доставленные письма хранятся, пока мы их не удалим или вы не попросите об этом; автоматического срока удаления нет. Отозвать заявку или попросить удалить данные можно через hello@comin.chat или privacy@comin.chat. Удаление аккаунта Comin не удаляет заявку и эту отдельную почтовую переписку автоматически — напишите нам, и мы их удалим.

Для защиты от злоупотреблений сервер держит счётчики заявок по IP в памяти. Лимиты действуют в часовых окнах; старые счётчики сбрасываются при использовании следующего окна или перезапуске сервера. В них нет имени, email и комментария. Инфраструктурные и почтовые провайдеры также обрабатывают данные соединений и доставки для работы своих сервисов.

Настройки сайта

Сайт сохраняет выбранный язык локально в вашем браузере. Рекламных трекеров и аналитических SDK нет. При посещении сайта обычные данные соединения, включая IP-адрес, получает наш хостинг-провайдер Vercel.

Данные об устройстве и сессиях

ДанныеЗачем нужны
Push-токены (APNs / FCM)Для доставки уведомлений о сообщениях и звонках.
Информация об устройстве (модель, ОС, версия)Показывается на экране Устройства для управления активными сессиями.
Приблизительная геолокация по IPПоказывается рядом с каждой сессией на экране Устройства (например, «Франкфурт, Германия») — чтобы вы заметили подозрительные входы.
IP-адресИспользуется транзитно, чтобы определить примерный город. Для этой функции сам адрес не сохраняется; город держится только в памяти сервера и пропадает при перезапуске. Отдельно действуют описанные выше счётчики заявок и обработка инфраструктурными провайдерами. Определяем по локальной базе (DB-IP Lite) — третьим лицам адрес не передаётся.
Время последнего подключенияОдна отметка на аккаунт, перезаписывается при каждом подключении. Любой вошедший пользователь Comin, который знает ваш ник, видит её как «был(а) …» и видит, в сети ли вы сейчас; настройки, чтобы это скрыть, нет. Статус «в сети» сервер понимает по открытому соединению и не сохраняет.

«Оживить персонажа». Если переключатель включён и у приложения есть доступ к камере, персонаж вашего профиля следит за лицом через фронтальную камеру. Лицо ищется на устройстве: на iPhone — Apple Vision, на Android — Google ML Kit. Кадры не сохраняются и никуда не отправляются. Выключить можно переключателем под персонажем.

Данные сообщений и медиафайлов

Содержимое ваших сообщений, медиафайлы и ключи шифрования никогда не доступны нашим серверам. Что сервер обрабатывает:

  • Зашифрованные сообщения — хранятся только до доставки: удаляются, как только устройство подтвердит получение. Недоставленные удаляются не позже чем через 30 дней. Сервер не может их расшифровать.
  • Зашифрованные медиафайлы — фото, видео, голосовые и файлы из чатов. Удаляются автоматически через 30 дней после загрузки. Ключ есть только на устройствах участников чата — мы не можем прочитать содержимое.
  • Состав чатов и метаданные маршрутизации — чтобы доставлять сообщения и соединять звонки, сервер хранит, какие аккаунты и устройства входят в каждый чат, и видит, какое устройство когда пишет в какой чат. Мы не анализируем, кто с кем общается, не используем это для рекламы и никому не передаём.

Геопозиция в чатах. Точка на карте уходит обычным сообщением со сквозным шифрованием — наш сервер её не видит. Карту и поиск адреса даёт система: на iPhone — Apple Карты (MapKit); на Android — плитки карты OpenFreeMap и встроенный геокодер устройства. Эти запросы идут с вашего устройства напрямую к этим сервисам, без вашего аккаунта Comin.

Превью ссылок. Когда вы отправляете сообщение со ссылкой, ваше устройство само открывает страницу (без cookies) и кладёт заголовок, описание и картинку внутрь зашифрованного сообщения. Сайт видит IP-адрес вашего устройства, как при обычном открытии ссылки. Наш сервер не узнаёт, какие ссылки вы отправляете, а получатель ничего не загружает. Выключить: Настройки → Безопасность → «Превью ссылок».

Музыкальные карточки. Ссылка на Spotify, Apple Music или YouTube Music показывается карточкой. Плеер загружается с сайта сервиса только после нажатия ▶︎ — тогда сервис видит IP-адрес устройства. Плеер открывается без сохранённых cookies; плееру YouTube приложение сообщает в заголовке Referer только адрес comin.chat — без чата и ссылки.

Расшифровка голосовых. Голосовые распознаются на устройстве, аудио никуда не уходит. На iPhone распознаёт система; если модели языка нет, её скачивают у Apple. На Android — Vosk: модель языка один раз скачивается с сайта alphacephei.com, он видит IP-адрес устройства.

Запреты в чате. «Запрет скачивания медиа» и «Запрет скриншотов» передаются участникам внутри зашифрованных сообщений — сервер их не видит. Они убирают сохранение и пересылку в приложениях участников (скриншоты блокируются только на Android), но не защищают от съёмки другим устройством. Если участник делает скриншот чата, остальные видят об этом строку в чате.

Звонки

Аудио, видео и демонстрация экрана в звонках защищены сквозным шифрованием. Каждый кадр шифруется на вашем устройстве (AES-GCM, шифрование кадров LiveKit) ключом, который выводится из группы MLS этого чата (MLS exporter secret, RFC 9420). Ключ знает каждый текущий участник этого чата, в том числе те, кто не в звонке, и он меняется при каждом изменении состава чата. Наш собственный сервер LiveKit только пересылает зашифрованные медиаданные и расшифровать их не может. Звонки не записываются. Чтобы соединить звонок, сервер знает, какие аккаунты в нём участвуют и сколько он длится.

Промежуточный узел

Чтобы Comin работал в сетях, где прямое соединение с нашим сервером ограничено, приложение может подключаться через один из промежуточных узлов (relay): у провайдера UpCloud Ltd. (дата-центр в Хельсинки, Финляндия) или у провайдера Cherry Servers (дата-центр в Литве). Оба провайдера действуют как наши обработчики данных. Приложение переключается на узел само и только тогда, когда прямое соединение не работает. Узел передаёт зашифрованный трафик на наш основной сервер и пересылает зашифрованные медиаданные звонков. Он видит IP-адрес вашего устройства, время и объём соединений, но не может прочитать ни сообщения, ни звук или видео звонков: сообщения защищены сквозным шифрованием и TLS, медиа — SRTP и сквозным шифрованием Comin. На узле не ведутся журналы соединений и не хранятся данные пользователей.

Свой прокси

В Настройки → Безопасность → «Прокси» можно указать свой прокси-сервер (SOCKS5 или HTTP), на Android — ещё Tor через Orbot. Тогда всё, что приложение открывает само, — связь с нашим сервером, превью ссылок, плеер музыки, на Android загрузка модели расшифровки — идёт через прокси, и сервер Comin и сайты видят адрес прокси вместо вашего. Оператор прокси видит IP-адрес вашего устройства, к каким адресам вы подключаетесь, время и объём трафика, но не содержимое: его защищают TLS и сквозное шифрование. Прокси выбираете вы, его оператор — не наш обработчик. Звонки идут мимо прокси, и сервер звонков видит ваш IP — перед звонком приложение предупреждает об этом. Push-уведомления и покупки тоже идут напрямую, через Apple и Google. Настройки прокси хранятся только на устройстве.

Учёт звонков (лимиты Comin Flame)

Для групповых звонков сервер считает, сколько секунд за календарный месяц шли звонки в комнатах, которыми вы владеете, и сколько пробных звонков вы использовали. Хранятся только суммы за месяц — без комнат, участников и отдельных звонков. Они нужны для лимитов бесплатного плана и удаляются вместе с аккаунтом.

Оценка звонка

После звонка приложение может спросить «Как прошёл звонок?». Только если вы нажали «Отправить» или «Поделиться журналом», нам уходят: оценка от 1 до 5, выбранные теги (например, «Эхо» или «Обрывы»), длительность соединения, тип звонка (личный или групповой), признаки плохой сети и ошибки подключения, платформа, версии приложения и системы и метка комнаты — короткий хэш её идентификатора: по нему видно, что оценки из одной комнаты, но не саму комнату. Текста, имён и содержимого звонка в оценке нет. Оценка связана с вашим аккаунтом. Срока хранения нет; при удалении аккаунта связь с ним стирается, и оценка остаётся без автора. Закрыли без оценки — ничего не отправляется.

Жалобы

Если вы жалуетесь на сообщение, ваше устройство расшифровывает его и отправляет нам копию текста (до 4000 байт — это около 2000 русских или 4000 латинских букв; длиннее обрезается), выбранную причину, ник автора и идентификаторы чата и сообщения — вместе с вашим аккаунтом. Это единственный случай, когда содержимое сообщения попадает на наш сервер, и только по вашему решению. Копию разбирает модератор; на почту поддержки приходит уведомление о жалобе без текста сообщения. Жалобы хранятся до 180 дней и удаляются раньше, если удалён аккаунт пожаловавшегося.

Отчёты о работе приложения

Только если вы сами отправили отчёт — после оценки звонка («Поделиться журналом») или через «Отправить журнал разработчику» в Настройках — приложение отправляет нам журнал событий: качество связи, события микрофона и звука, версию приложения, модель телефона и версию системы, а также необязательный комментарий, который вы напишете. В начале журнала — счётчики с устройства: сколько фото отправлено с каждым пресетом; отдельно от отчёта они никуда не уходят. Содержимого сообщений и разговоров в журнале нет; перед отправкой приложение убирает из него всё, похожее на токен, ключ, путь ссылки или адрес почты, а наш сервер фильтрует его ещё раз. Отчёт связан с вашим аккаунтом, хранится 7 дней, затем удаляется (раньше — если вы удалите аккаунт); доступ к нему — только у разработчика для разбора ошибки. На почту поддержки приходит уведомление о новом отчёте без журнала и комментария. Вместо отправки журнал по-прежнему можно переслать самому через «Поделиться».

Покупки

Comin Flame и пакет раннего доступа покупаются через App Store или Google Play. Оплату проводят Apple и Google — данных вашей карты мы не получаем. Чтобы привязать покупку к аккаунту, приложение передаёт магазину идентификатор вашего аккаунта Comin. Сервер хранит: товар, идентификатор транзакции магазина (original transaction ID у Apple или токен покупки Google Play), признак настоящей или тестовой покупки, дату, до которой оплачено, и отметку об отмене или возврате. Чтобы данные были актуальны, сервер получает уведомления о покупках от Apple и Google и сверяет статус покупки с Google Play. Запись хранится до удаления аккаунта.

2. Что мы НЕ собираем

  • Содержимое сообщений и звонков — кроме копии сообщения, которую вы сами отправляете в жалобе (см. «Жалобы»)
  • Автоматические отчёты о сбоях и аналитику использования — журнал приложения и оценка звонка попадают к нам, только если вы сами их отправили (см. «Отчёты о работе приложения» и «Оценка звонка»)
  • Кадры с камеры для «Оживить персонажа» — лицо ищется на устройстве
  • Точную геопозицию — точка на карте уходит только в зашифрованном сообщении
  • Данные платёжных карт — оплату проводят Apple и Google
  • Ваш номер телефона
  • Ваши контакты или адресную книгу
  • Рекламные идентификаторы (IDFA / GAID)
  • Данные сторонних аналитических или трекинговых SDK — мы их не используем

3. Правовые основания обработки (GDPR)

Для пользователей из ЕЭЗ и Великобритании мы обрабатываем данные на следующих правовых основаниях:

Вид обработкиПравовое основание
Заявки на доступ (имя, email, комментарий) и новости Comin, если поставлена галочкаСогласие Ст. 6(1)(a) GDPR. Отозвать можно через hello@comin.chat или privacy@comin.chat.
Предоставление сервиса (данные аккаунта, push-токены, зашифрованные сообщения)Договор ст. 6(1)(b) GDPR
Email для восстановления (opt-in)Согласие ст. 6(1)(a) GDPR. Отозвать — удалить email в Настройках.
Геолокация по IP для управления сессиямиЗаконный интерес ст. 6(1)(f) GDPR — безопасность, минимальная транзитная обработка.
Покупки и лимиты Comin Flame (записи о покупках, учёт звонков)Договор ст. 6(1)(b) GDPR
Разбор жалоб (копия сообщения из жалобы)Законный интерес ст. 6(1)(f) GDPR — безопасность пользователей и соблюдение условий использования.
Отчёты о работе приложения, которые вы отправили сами (журнал событий)Согласие ст. 6(1)(a) GDPR — даётся каждой отправкой отчёта. Попросить удалить отчёт раньше срока можно в любой момент.
Оценки звонков, которые вы отправилиСогласие ст. 6(1)(a) GDPR — даётся каждым нажатием «Отправить» или «Поделиться журналом».
Исполнение законодательных требованийЮридическое обязательство ст. 6(1)(c) GDPR

4. Как мы используем ваши данные

  • Для работы и предоставления мессенджера
  • Для аутентификации и защиты вашего аккаунта
  • Для отображения активных сессий на экране Устройства
  • Для отправки писем сброса пароля и верификации (только если вы добавили email)
  • Для доставки push-уведомлений
  • Для проверки покупок и лимитов Comin Flame
  • Для разбора жалоб и соблюдения условий использования
  • Для разбора ошибок приложения, о которых вы прислали отчёт
  • Для улучшения качества звонков по оценкам, которые вы отправили
  • Для соблюдения требований применимого законодательства

Мы не используем ваши данные для рекламы, профилирования или продажи третьим лицам.

5. Субпроцессоры

Мы не продаём и не передаём ваши данные рекламным сетям или брокерам данных. Мы используем ограниченный круг инфраструктурных провайдеров:

ПровайдерРольРасположение
DigitalOceanХостинг серверов и хранилище файлов (Spaces) — зашифрованные медиафайлыЕС (Франкфурт, Германия)
UpCloudПромежуточный узел: пересылает зашифрованный трафик и медиа звонков, когда прямое соединение с нашим сервером не работает; видит IP-адреса подключений, журналов не ведёт (подробнее)ЕС (Хельсинки, Финляндия)
Cherry ServersПромежуточный узел: пересылает зашифрованный трафик и медиа звонков, когда прямое соединение с нашим сервером не работает; видит IP-адреса подключений, журналов не ведёт (подробнее)ЕС (Литва)
Postmark (ActiveCampaign)Служебные письма: на почту восстановления (подтверждение, сброс пароля, коды и предупреждения о сбросе доступа) и уведомления о жалобах на почту поддержки (ники и причина, без текста сообщения; об отчётах о работе приложения — ник, версия приложения и модель телефона, без журнала); письма с заявками на hello@comin.chat, включая указанные имя, email и комментарийСША
PurelymailПочтовые ящики comin.chat (hello@, support@, privacy@): хранит письма, которые приходят нам, в том числе заявки на доступ и уведомления о жалобах и отчётахСША
LiveKit (self-hosted)Ретрансляция медиа для звонков — на нашей инфраструктуре; медиа зашифрованы сквозным шифрованиемЕС (Франкфурт)
ApplePush-уведомления на iPhone (APNs); покупки в App Store и уведомления о них; Apple Карты (MapKit) — карта и поиск адреса на iPhone; модели распознавания речи, если их нет на iPhone; плеер Apple Music по нажатию ▶︎США
GooglePush-уведомления на Android (Firebase Cloud Messaging); покупки в Google Play и их статус; на Android с сервисами Google — системный геокодер для поиска адреса; плеер YouTube Music по нажатию ▶︎США
VercelХостинг сайта comin.chat и страниц ссылок-приглашений (обрабатывает ваш IP-адрес, когда вы их открываете)США
OpenFreeMapПлитки карты на Android — их запрашивает ваше устройство напрямую, без вашего аккаунта Comin—
SpotifyПлеер Spotify по нажатию ▶︎ — его загружает ваше устройство напрямую, без вашего аккаунта Comin—
Alpha Cephei (Vosk)Модели расшифровки голосовых на Android — их скачивает ваше устройство напрямую, без вашего аккаунта Comin—

Push-уведомления не содержат ни текста сообщений в читаемом виде, ни имени отправителя. Чтобы приложение открыло нужный чат, в уведомлении есть идентификатор чата (случайный ID) — Apple и Google видят, что вашему устройству пришло уведомление по такому-то чату и когда. В уведомлениях о входящем звонке старые версии приложения получают ещё ник звонящего. Оплату в App Store и Google Play Apple и Google обрабатывают как самостоятельные операторы — по своим политикам конфиденциальности.

Со всеми субпроцессорами заключены DPA там, где это требует GDPR. Новые субпроцессоры — только после обновления этой политики.

6. Хранение и удаление данных

Тип данныхСрок хранения
Профиль аккаунта (никнейм, имя, аватар, хэш пароля)До удаления аккаунта
Заявки на доступ и ответыВ базе сервера и в почтовом ящике до удаления; удаление по запросу. Автоматического срока нет.
Счётчики заявок по IPВ памяти; сброс при использовании следующего часового окна или перезапуске сервера
Email для восстановленияДо удаления в Настройках или удаления аккаунта
Push-токеныДо замены, отзыва или удаления аккаунта
Зашифрованные сообщения в очереди доставкиУдаляются после доставки; недоставленные — не позже чем через 30 дней
Устаревшие сессии устройствАвтоудаление ~каждые 6 часов
Зашифрованные медиафайлы30 дней с загрузки
Жалобы (копия сообщения из жалобы)До 180 дней; раньше, если удалён аккаунт пожаловавшегося
Отчёты о работе приложения (журнал событий звонка, версия приложения, модель телефона, ваш комментарий)7 дней, затем удаляются; раньше, если удалён аккаунт
Записи о покупкахДо удаления аккаунта
Учёт звонков (суммы за месяц)До удаления аккаунта
Оценки звонковБез срока; при удалении аккаунта отвязываются от него
Время последнего подключенияДо удаления аккаунта (перезаписывается при каждом подключении)
История перепискиТолько на вашем устройстве — сервер её не архивирует
IP-адрес (геолокация)Не сохраняется; город — только в памяти сервера

Удаление аккаунта: Настройки → Удалить аккаунт, подтвердить паролем. Как удалить без приложения — comin.chat/delete-account. Связанные с аккаунтом данные базы приложения удаляются; оценки звонков остаются без привязки к аккаунту. Для удаления отдельной почтовой переписки, включая заявки на доступ, обратитесь по email. История на устройстве не затрагивается — её можно очистить отдельно.

7. Ваши права

В рамках GDPR (жители ЕЭЗ и Великобритании) вы вправе:

ПравоКак воспользоваться
ДоступЗапросить копию хранимых данных
ИсправлениеОбновить данные в приложении или обратиться к нам
УдалениеУдалить аккаунт в приложении или по запросу
ОграничениеОбратиться к нам для приостановки обработки
ПортируемостьЗапросить данные в машиночитаемом формате
ВозражениеВозразить против обработки на основании законных интересов
Отзыв согласияУдалить email для восстановления в Настройках; написать нам для отзыва заявки на доступ или удаления отправленного отчёта

Обращайтесь: privacy@comin.chat. Отвечаем в течение 30 дней. Жители ЕЭЗ могут подать жалобу в местный надзорный орган по защите данных.

8. Безопасность

  • Всё содержимое сообщений шифруется по протоколу MLS (RFC 9420) ещё до отправки. На серверах — только зашифрованный текст.
  • Звонки защищены сквозным шифрованием ключом из группы MLS чата; сервер звонков пересылает только зашифрованные медиаданные.
  • Пароли хранятся в виде одностороннего хэша — восстановить его невозможно.
  • Все соединения защищены TLS.
  • Мы проводим периодические проверки безопасности.

Ни одна система не обеспечивает абсолютной защиты. Если вы обнаружили уязвимость, ответственно сообщите на privacy@comin.chat.

9. Дети

Comin не предназначен для детей младше 13 лет (или минимального возраста в вашей юрисдикции). Мы не собираем намеренно данные детей до 13 лет. Если вы считаете, что ваш ребёнок создал аккаунт, обратитесь на privacy@comin.chat — мы незамедлительно его удалим.

10. Изменения в политике

Мы можем обновлять эту политику по мере развития сервиса. При существенных изменениях уведомим вас в приложении и обновим дату вверху документа. Продолжение использования Comin означает согласие с изменениями.

11. Открытое ПО

Comin построен на открытом программном обеспечении. Спасибо его авторам. Тексты лицензий — в репозиториях проектов.

Крипто-ядро (MLS, RFC 9420)

  • mls-rs, mls-rs-core, mls-rs-crypto-rustcrypto (AWS) — Apache-2.0 / MIT
  • comin-mls — наш форк mls-rs-uniffi (AWS) — Apache-2.0 / MIT
  • RustCrypto (curve25519, AES-GCM, HKDF, SHA-2 и др.) — MIT / Apache-2.0
  • UniFFI (Mozilla) — MPL-2.0
  • zeroize, thiserror, async-trait, maybe-async — MIT / Apache-2.0

Приложение для iOS

Приложение для Android

  • Kotlin, kotlinx.coroutines, kotlinx.serialization (JetBrains) — Apache-2.0
  • Jetpack Compose и AndroidX (Core, Lifecycle, Activity, Room, DataStore, Security, Biometric, CameraX, ExifInterface, Material Icons) — Apache-2.0
  • OkHttp / Okio (Square) — Apache-2.0
  • LiveKit Android SDK — Apache-2.0; WebRTC (Google) — BSD-3-Clause
  • JNA — Apache-2.0 / LGPL-2.1
  • ZXing — Apache-2.0
  • Vosk и Kaldi (распознавание речи на устройстве) — Apache-2.0
  • Firebase Cloud Messaging SDK (Google) — Apache-2.0

Приложение для Android также использует Google ML Kit (сканирование штрих-кодов) — это не открытое ПО, оно предоставляется на условиях ML Kit Terms of Service.

Сервер и инфраструктура

12. Контакты

ИП Егор Сазанов (студия addicted)

Сайт: https://comin.chat

По вопросам конфиденциальности: privacy@comin.chat