Magic Messages privacy

your drawings stay yours

Effective 2026-08-30 · applies to the Magic Messages apps for iOS and Android (org.erif.magicmessage), made by Kaolin Fire (erif.org).

Magic Messages collects nothing about you. There is no account, no sign-in, no analytics, no advertising, and no server of ours anywhere. Everything the app does — drawing, reading depth out of a photo, rendering the stereogram — happens on your device.

Your drawings

Drawings and the stereograms made from them are stored on your device.

On iOS, your gallery also syncs through your own private iCloud, so it follows you between your devices. That copy goes to Apple under your Apple ID — never to us, and we have no way to read it. If you are not signed in to iCloud, the gallery simply stays on the device.

On Android there is no cross-device sync. The gallery is included in Android’s standard Auto Backup, so it can survive moving to a new phone. That backup goes to your Google account, not to us.

Deleting the app deletes its data from the device. On iOS you can also remove the app’s data from iCloud in your iCloud settings; on Android, from your Google account’s backup settings.

Photos & camera

The app never gets access to your photo library. Choosing a picture uses the system photo picker on both platforms, which runs outside the app: you pick one image and the app receives only that image.

Saving a stereogram to your photos asks permission on iOS — add-only, meaning it can add pictures but never read them — and needs no permission on modern Android.

Taking a photo uses the system camera app on Android. On iOS the app opens the camera itself, which is why iOS asks for camera access: doing it that way is what lets it capture real depth information, so a picture you take becomes true 3D relief instead of a guess made from brightness.

Depth is read from the picture on your device — from real depth data when a photo has it, otherwise estimated by an AI model of about 50 MB that ships inside the app as an ordinary file. That model is never downloaded and never uploads anything. Your photos are not copied to us and do not leave your device unless you choose to share or send the result.

The keyboard

The Magic Messages keyboard on Android has no keys and cannot type. Its whole surface is a drawing canvas. It contains no code that reads, stores, or transmits anything you type: no key handling, no text insertion, and none of the Android interfaces for reading text around the cursor.

When it appears, it reads exactly two things about the app you are in: that app’s name (so it can say something like “Messages doesn’t take pictures here”) and which image formats that app accepts. To send, it hands over a picture you just drew — the same mechanism the system keyboard uses to send a GIF.

Android shows a warning whenever you enable any keyboard, because keyboards in general are capable of seeing what you type. That warning is about the category, not about this keyboard: this one is not built to, and has no text-reading code in it at all.

Purchases

Everything functional is free forever — drawing, photo and AI depth, the gallery, and every export. One optional purchase, All Themes ($1.99), unlocks the extra themes; Classic and Code Rain are free.

Purchases are handled entirely by Apple’s StoreKit or Google Play Billing. We never see, receive, or store payment information. The app keeps a single true/false flag on your device recording that the unlock is owned, and re-checks that with the store.

Network access

Our own code makes no network requests at all — no version check, no asset download, no remote configuration, no crash upload.

Three things do use the network, none of them ours: the store, for the purchase above; iCloud, for the gallery sync on iOS; and Android Auto Backup. On Android the app’s permission list therefore includes INTERNET and ACCESS_NETWORK_STATE — these are added automatically by Google’s billing library, not declared by us. The full Android permission set is: internet and network state (both from billing), billing itself, and write-to-storage limited to Android 9 and older for saving a picture. On Android there is no camera, location, contacts, or storage-read permission.

Analytics & crash reports

None, on either platform. No Firebase, no Crashlytics, no advertising SDK, no third-party analytics of any kind. The iOS app declares no tracking and no collected data types in its App Store privacy manifest.

Google’s billing library, which handles the one purchase, is Google’s own code and is subject to Google’s privacy policy; the same is true of Apple’s StoreKit and iCloud under Apple’s. Apple and Google also report their own standard install and crash statistics to developers for every app on their stores; that is their collection, not ours.

What Magic Messages doesn’t do

  • No selling of data, to anyone, ever.
  • No advertising and no tracking identifiers.
  • No account, no login, no server of ours.
  • No reading of what you type, anywhere.

Changes & contact

If this policy changes, the new version will be posted at this address with a new effective date. Questions: kaolin@erif.org.

About Magic Messages