Privacy policy
Last updated: 16 October 2026 · Version 1.2
HashKeep stores an encrypted SMS archive on your device. We do not operate a HashKeep message-storage backend. Optional Google Drive backup uploads encrypted files to your account. Optional Delivery sends readable copies of backed-up messages to your configured SMTP email, Telegram or Discord destination. These are different data paths: Delivery providers and recipients can read the copies you choose to send.
Summary
- SMS copies are stored in a SQLCipher-encrypted archive on your device. Restore adds messages to HashKeep, not the system Messages inbox.
- Optional Drive backups and local .hkv backups are encrypted files. New-phone recovery requires a portable backup created with a passphrase. Portable local files are available in Internal Testing from version 0.2.0 alongside device-bound local files; scheduled backups remain device-bound.
- Optional Delivery sends readable sender addresses, message bodies and timestamps through your configured SMTP, Telegram or Discord service. Exported CSV/PDF files are also readable.
- HashKeep does not send carrier SMS and does not request SEND_SMS.
- Content-free Firebase crash and usage diagnostics are on by default and can be disabled in Settings.
- We do not sell personal information or share it for cross-context behavioral advertising.
Who we are
HashKeep is published and operated under the Icemint Labs name by Icemint LLC, a Wyoming limited liability company and the data controller for the limited processing described here.
- Icemint LLC, 30 N Gould St Ste R, Sheridan, WY 82801, USA
- Privacy and data-rights requests: privacy@hashkeep.app
- General support: hello@hashkeep.app
Scope of this policy
This policy covers the HashKeep Android app and hashkeep.app website. Availability depends on the countries shown in Google Play. Google Drive, Google Play, Firebase and your selected Delivery providers have their own privacy policies.
What stays on your device
The local archive stores SMS sender addresses, bodies, timestamps, SIM slots and read states in a SQLCipher database encrypted with AES-256. The audit log records operations such as backup, restore and retention, without message content. Settings and wrapped keys are stored on the device.
Android Keystore protects device key material using StrongBox or other hardware where available, with a software fallback. Portable backup creation adds a passphrase-based key wrap for recovery on another installation. We do not hold your keys or passphrase. Optional Delivery and readable exports are described separately below.
What goes to your Google Drive
Connecting Google Drive is optional. HashKeep uses the drive.file scope to work with app-created backup files in your own account, rather than requesting access to your entire Drive. Backup files use AES-256-GCM before upload.
For a new phone, create a portable backup with a passphrase before losing access to the original device. Choose a portable Drive backup in HashKeep’s in-app backup chooser, or select a portable local .hkv file, and enter its passphrase on the new installation. Portable local files are available in Internal Testing from version 0.2.0. They do not require Google Drive. Device-bound local files and scheduled backups require the original device key. Older local files do not become portable, and we cannot recover a lost passphrase. Saving a local file does not satisfy a qualifying Drive-backup requirement or activate backup-dependent Delivery. Merely connecting Drive does not make a backup portable. Android may delay scheduled work; check completion in the app.
Optional Delivery and exports: Delivery sends readable copies of backed-up messages, including sender address, body and timestamp, through your configured SMTP email, Telegram or Discord destination. It is not an encrypted .hkv backup or carrier SMS. You configure and test the destination; the provider and recipients can read and retain the content under their policies. Generic HTTPS webhooks are not supported. CSV/PDF exports are readable files; protect them and any copies you share.
Diagnostics (crash & usage)
To keep HashKeep reliable, we collect a small set of content-free diagnostics through Google Firebase: Crashlytics (crash and error reports) and counter-only Analytics (for example, "a backup was created"). This is on by default, and can be turned off at any time with a single switch in Settings → General → "Share crash & usage diagnostics." Turning it off stops both crash reporting and usage analytics at runtime.
App diagnostic event fields exclude message sender addresses, bodies and search text. Error messages and causes are sanitized; diagnostic stack traces remain. Reports can include content-free context such as app version, OS version and device maker. Firebase also processes the technical identifiers required for its service under its own privacy policy.
What we never collect or do
- Receive your message content. No sender, body, or message metadata ever leaves your device to us.
- Send carrier SMS. HashKeep does not request SEND_SMS. Optional network Delivery sends readable copies only to your configured destinations.
- Read your contacts. The contacts permission is not requested.
- Read your call log or back up MMS/media. Not requested, not present in this version.
- Track your location. No location permission is requested.
- Use advertising identifiers. No ad SDK, no ad-identifier access.
- Analyze message content. Even hashed sender-frequency or social-graph data is never computed for transmission.
Tracking technologies we do not use
Neither the app nor the website uses advertising or attribution pixels (no Meta Pixel, Google Ads tags, AppsFlyer, Adjust, or Branch), session-recording or replay technology, heat-mapping tools, third-party analytics beyond the content-free in-app Firebase diagnostics above, any "wiretap"/call-recording/message-interception technology, or tracking cookies. See the Cookie policy for detail.
Third-party services
HashKeep uses the following services, depending on your settings:
- Google Drive (
drive.file): destination for your encrypted backups, in your own account. - Google Play Billing: processes the one-time Pro purchase. Google is the merchant of record.
- Google Firebase (Crashlytics + counter-only Analytics): the content-free diagnostics above.
- SMTP email, Telegram and Discord: optional readable Delivery to the destinations you configure.
- Website hosting and proxy services: serve the static website and may process standard access logs. Fonts are served locally from hashkeep.app, not Google Fonts CDN.
Each provider processes data under its own privacy policy. Contact privacy@hashkeep.app for questions about the website’s processing.
Where processing happens
The archive is processed on your device. Drive backups, optional Delivery, Firebase diagnostics and website requests are also processed by their respective providers, potentially outside your country. Readable Delivery content is accessible to the destination provider and recipients. Their storage locations and retention policies apply to those copies.
How long data is kept
Delivery copies and exported files remain with their providers or recipients until removed under their controls. Disabling a rule or wiping HashKeep does not recall delivered copies.
- Local archive (Free): a fixed 30-day rolling window; older messages are trimmed automatically on your device.
- Local archive (Pro): you choose — 30 days, 90 days, 1 year, 2 years, or 5 years.
- Backups in your Drive: kept until you delete them. HashKeep never deletes a Drive backup without an explicit action by you.
- Diagnostics: content-free crash and counter data retained by us in aggregate for up to 24 months.
Your rights — United States
Under the CCPA as amended by the CPRA, and under the general consumer-privacy laws of states such as Virginia, Colorado, Connecticut, and Utah, you have rights to know, access, delete, and correct your personal information, and to not be discriminated against for exercising them. Because we hold no message content on any server, most rights are exercised on your own device:
- Know / access / portability — your archive is on your device; export to CSV or PDF anytime, or copy the documented
.hkvfile. - Delete — "Wipe all local data" in Settings → Security irrecoverably deletes the database, keys, and logs; Drive backups can be deleted from within the app.
- Correct — you control the archive directly.
- Opt out of sale or sharing — not applicable: we neither sell nor share personal information.
For the limited content-free diagnostics we hold, email privacy@hashkeep.app and we will action your request as required by law. You may use an authorized agent where the law permits.
Your rights — Canada
Under PIPEDA, you have rights of access to and correction of personal information, and the right to withdraw consent. HashKeep satisfies these natively: your information stays under your control on your device, optional Drive backup and Delivery transfer data to your selected providers, and you can disable diagnostics anytime via the Settings → General switch. Copies already delivered remain subject to the destination’s retention and deletion controls. Questions: privacy@hashkeep.app.
No sale or sharing of personal information
We do not sell your personal information, and we do not "share" it for cross-context behavioral advertising as those terms are defined under California law. We run no advertising and no ad tracking.
Disputes about data handling
Any dispute relating to how data is collected, used, or processed under this policy is governed by the dispute-resolution provisions of our Terms of Service — including the pre-dispute notice requirements, the informal-resolution period, binding arbitration, the class-action waiver, and the governing-law and venue terms. A pre-dispute notice should describe the alleged violation, the dates involved, and the basis for your claim, so we can investigate it meaningfully. This does not limit any right you have under applicable law.
Children
HashKeep is a utility for adults and is not directed to children. We do not knowingly collect personal information from children under 13 (or the higher minimum age that applies where you live).
Security
The local archive uses SQLCipher AES-256; backup files use AES-256-GCM. Android Keystore uses available hardware or a software fallback. Network connections use TLS with platform certificate validation; the app does not implement certificate pinning. Readable Delivery and CSV/PDF exports are not encrypted backup envelopes. We do not escrow keys or passphrases. Report security concerns to hello@hashkeep.app. Where law requires breach notification, we will comply within the mandated timeframe.
Changes to this policy
If we make material changes, we will announce them in-app and update the "last updated" date and version above. Continued use after a change takes effect constitutes acceptance.
Contact
Privacy and data-rights requests: privacy@hashkeep.app. General support: hello@hashkeep.app. Postal: Icemint LLC, 30 N Gould St Ste R, Sheridan, WY 82801, USA.
Document history — v1.0, 26 June 2026: first published version for HashKeep 1.0 (US, Canada, Ukraine). Supersedes all prior drafts.
Revision 1.1, 12 October 2026: corrected current Delivery, backup portability, pricing and self-hosted font disclosures where applicable. Existing rights and dispute terms are unchanged.
Revision 1.2, 16 October 2026: clarified portable local backups from version 0.2.0 in Internal Testing. Existing rights and dispute terms are unchanged.