KanjiBoard

Privacy Policy

Last updated: September 28, 2026

KanjiBoard is a kanji handwriting practice app. It does not require an account and does not display advertising. Contact the developer at support.kanjiboard@gmail.com for privacy questions or requests.

iPhone and iPad

The iOS app keeps handwriting, grading, dictionary searches, learning history and settings on your device. It does not upload this practice data to KanjiBoard's service. iOS may include local app data in system backups according to your Apple backup settings. Reset progress removes learning history; deleting the app removes its local app-container data. Copies in system backups or exported files must be managed separately.

Import and export use Apple's Files picker. A .kanjiboard backup contains learning data and settings, without purchase receipts, support totals or device identifiers. The file is compressed, not encrypted. If you choose iCloud Drive or another storage provider, that provider handles the file under its own policies. KanjiBoard does not upload the backup to its support service.

The iOS app includes Google ML Kit for optional on-device Japanese handwriting recognition. Downloading its model needs an internet connection. Google states that recognition inputs and results stay on device. ML Kit sends Google device and app information, per-installation identifiers, performance measurements, API configuration, feature events, error codes and configured language for diagnostics and usage analytics. See Google's iOS data disclosure and ML Kit's privacy information. The bundled matcher and dictionary work without downloading this model.

Apple processes TestFlight installation, usage, crash and feedback information and makes testing reports available to the developer. Feedback you submit may include your comments, screenshots and contact information. See Apple's TestFlight privacy notice. Use TestFlight or the support email above to report problems; avoid including sensitive information in screenshots.

Optional support purchases on iOS

All learning features are free. Where enabled, optional one-time tips use Apple's in-app purchase system. Apple handles payment details; KanjiBoard does not receive your card number, payment credentials or billing address. TestFlight purchases use Apple's sandbox and do not contribute real money.

To confirm a tip or recover your personal support total, the app sends an Apple-signed purchase or app transaction receipt over HTTPS to KanjiBoard's support service on Fly.io in the United States. The receipt identifies the app and purchase history. The service verifies it with Apple and reads signed purchase history, including amounts, currencies and refunds. It calculates your total in memory; it does not persist or log raw Apple receipts or purchase history. Network providers process connection information needed to deliver these requests.

The app saves its recovery receipt and last confirmed total in a separate, device-only Keychain item. Learning resets and KanjiBoard backup imports/exports do not change it. Keychain data may survive reinstalling the app on the same device; it does not migrate through KanjiBoard backups. Apple's verified app receipt can recover purchase history for the same Apple account when available. Switching accounts or using an older system may affect recovery. Confirmed refunds reduce the total after an online refresh; offline, the last confirmed total remains visible. Test payments do not increase or erase real cached contributions. Amounts remain in their original currencies, and this total is not a tax receipt.

Apple remains the source of purchase records. Requests to delete records held by Apple must be made to Apple. For questions about local recovery data, contact support. The Google Play payment, device-identifier and security processes below apply only to Android.

Your practice stays on your device

Handwriting, grades, learned kanji, high scores, daily reviews, streaks and preferences are processed and stored on your device. KanjiBoard does not upload this practice data to its support service. Dictionary entries and example sentences are bundled with the app. Android app backup is disabled.

Reset progress deletes your local learning history, daily reviews and streaks while keeping settings and the support-purchase total. Clearing app storage or uninstalling removes the app's local data.

You can export progress, preferences and up to 5,000 recent attempts to a compressed .kanjiboard file in Downloads, or import a file you select using Android's file picker. These files contain no purchase receipts, donation totals or device identifiers. They are not encrypted; anyone you share a backup with can read its learning data. KanjiBoard does not upload backups. Exported files remain in your chosen storage until you delete them separately.

Google handwriting recognition on Android

KanjiBoard uses Google ML Kit to download a Japanese recognition model and recognize handwriting on your device. Google states that the handwriting input and recognition results are not sent to Google servers. The bundled shape recognizer also works without a model download.

ML Kit sends Google diagnostic and usage information, including device and app information, device or installation identifiers, performance measurements, model and language configuration, feature events and error codes. These transfers use HTTPS. See ML Kit's privacy information, its data disclosure and Google's Privacy Policy. The Windows app does not include ML Kit.

Optional support purchases

All learning features are free. Optional one-time purchases on Android are handled by Google Play. Google handles payment details; KanjiBoard's service does not store your card number, payment credentials or billing address.

To verify purchases and recover the support total on the same device, the Android app sends a pseudonymous device key to KanjiBoard's HTTPS service hosted on Fly.io in the United States. The key is a SHA-256 hash of the app package and Android's app-signing-key, user and device-scoped identifier. The raw Android identifier is not sent. If that identifier is unavailable, the app uses a locally generated identifier.

For a purchase, the app also sends its product ID and Google Play purchase token. The service checks the receipt and order with Google. It stores only a hashed receipt, the pseudonymous device key, the Google order ID, the verified paid and refunded amounts in US dollars, and creation and verification times. Raw purchase tokens and full order responses are not stored in the ledger or application logs. Network providers process connection information needed to deliver these requests.

These records prevent duplicate credit and restore your total. Test purchases do not increase the real-money total. Reset progress does not erase support records. A different signing key, Android user or factory reset may prevent automatic recovery. The total excludes confirmed refunds and chargebacks. Refunds are checked with Google when the app refreshes support records; an offline device keeps its last confirmed balance until it reconnects. The total is not a tax receipt.

Checkout security

Opening Support prepares Google Play Integrity, and starting a new support purchase requests a security check. Google processes app and signing information, Play licensing status, device attestation information, recent integrity activity, Android version, Play Protect status, and signals about apps that could capture the screen, control inputs or display overlays. A hash binds the check to the selected support purchase. No handwriting or learning history is included.

Our support service sends the encrypted integrity token to Google to verify the result and decide whether checkout may start. Tokens and full security verdicts are not logged or stored by KanjiBoard. Request hashes are held in memory for up to 150 seconds to prevent replay. These checks are used for fraud prevention, not advertising or tracking. Learning remains available offline, and already-paid purchases can still be confirmed through Google's receipt verification if an integrity check is unavailable. See Google's Play Integrity data information.

Retention and your choices

Local practice data remains until you reset it or remove it from your device. Support records remain while needed to restore totals, prevent duplicate receipt use and meet applicable recordkeeping obligations. The Android support ledger uses encrypted storage and scheduled backups with seven days of retention. Apple purchase history is only processed in memory by our service. Apple, Google and Fly.io handle data under their own policies.

Request data deletion

Email support.kanjiboard@gmail.com with the subject “KanjiBoard data deletion”. For support purchases, include your Google Play order number so the developer can locate and verify your record. Do not send card details or passwords.

The request covers the support service's hashed receipt, device key, order ID, paid and refunded amounts, and creation and verification times. Deleting those recovery records removes the ability to restore that support total. Deleted records may remain in encrypted backups until those backups expire, within seven days. Google retains its own payment and diagnostic records under its policies; this request does not delete those records.

To remove learning history from your device, use Reset progress. On Android, clear KanjiBoard's app storage or uninstall it to remove local preferences and cached support data as well. These local actions do not delete server recovery records. On iOS, deleting the app removes its app-container data but may leave the device-only Keychain recovery item described above. You may also email to request access or correction of support records.

Parents or guardians may contact the same address with questions about a child's use or data. There are no chat, public profiles or user-to-user sharing features.

Changes

This page will be updated when KanjiBoard's data practices change. The date above identifies the current policy.