Authenticator privacy policy

Effective 11 October 2026 · Bakir Apps

Authenticator generates two-factor authentication codes, stores passwords, and includes a built-in web browser. If you turn them on, it can also sync your accounts through your own iCloud Keychain, fill codes and passwords through iOS AutoFill, and show codes in widgets. This policy explains what data the app handles, where each kind is stored, and how it is protected. It applies to the Authenticator app for iOS published by Bakir Store LLC ("we", "us"), which publishes its apps under the Bakir Apps brand.

The short version

What the app stores, and where

Everything the app saves lives in one of two places on your device, and most of it lives in both. Secrets are only ever in the iOS Keychain. The details around them are kept in the Keychain too, in a separate item beside the secret they describe, and in a local database the app works from. Nothing in either is sent to us. If you turn on iCloud Sync, the Keychain items for your accounts and saved passwords also sync through your own iCloud Keychain, as described under iCloud Sync below.

DataWhere it is storedHow it is protected
Two-factor secret keysiOS KeychainReadable only while the device is unlocked. With iCloud Sync off, marked device-only, so it never syncs to iCloud and is not carried over to a new device. With iCloud Sync on, synced through your iCloud Keychain instead
Saved passwordsiOS KeychainSame as above
Your app PINiOS Keychain, as a salted hash — never the digits themselvesReadable only while the device is unlocked, and always device-only: it never syncs, with or without iCloud Sync
Account and entry details: issuer, account name, service name, web address, username, notes, icon, order, dates, and code settingsKept in both: the iOS Keychain, beside the secret it describes, and a local database file the app works fromThe Keychain copy carries the same protection as the secret — readable only while the device is unlocked, and device-only unless you turn on iCloud Sync, which syncs it with the secret. The database copy is encrypted at rest by iOS under its default file protection, which makes it readable once you have unlocked the device for the first time after a restart
Backup password, only if you choose to save itiOS Keychain, marked to syncSynced to your other Apple devices through your iCloud Keychain. Apart from iCloud Sync, this is the only item that can sync, and it is off unless you turn it on
Browser tabs, history, cookies, and cacheMemory onlyDiscarded when you close the app; never written to disk
Which code accounts are free to use without a subscriptioniOS KeychainAccount identifiers and a count, nothing else. Device-only and never synced; kept when the app is deleted, so reinstalling does not reset it. "Erase Everything" removes it
The list of code accounts widgets can show: each account's service name, account name, and orderPreferences shared between the app and its widgets, on the deviceWritten whether or not you use widgets. Never a secret or a code. Protected by iOS's default file protection, like the local database
Codes shown in widgets, with the account's service and nameiOS's own widget storage, on the deviceOnly while "Show codes in widgets" is on. Never the secret. Lock Screen codes are hidden by iOS while the iPhone is locked
AutoFill suggestions: a website's address and username for each saved password, and a service's web addresses and account name for each code account the app recognisesiOS's AutoFill list, on the deviceOnly while AutoFill is turned on for Authenticator. Never a password, a code, or a secret
Appearance, biometric, iCloud Sync, and widget preferencesStandard app preferencesNot sensitive, and contains no account data

Why two copies: the database is the working one, which the app reads and you edit; the Keychain copy is the durable one, because iOS keeps Keychain items when an app is deleted and discards everything else. The app brings the two into step each time it launches, writing only what differs and never touching a secret. Where a detail is held in both, the database copy carries the weaker of the two protections, so that is the one to judge it by.

Two-factor accounts

When you add an account, its secret key goes straight to the Keychain, and the issuer, account name, and code settings are written twice — into the Keychain as a separate item beside the secret, and into the local database. Codes are generated on your device from the secret and the current time. Generating a code needs no network connection, and the app never transmits a code or a secret. If you turn on iCloud Sync, iOS syncs the secret through your own iCloud Keychain, as described below.

Revealing or copying a secret key requires Face ID, Touch ID, or your device passcode, falling back to your app PIN when the device has no passcode set. Generated codes are not gated this way, because you use them many times a day and they expire on their own.

Saved passwords

The password vault stores a password, username, service name, web address, and notes for each entry. The password itself goes in the Keychain, on its own. The username, service name, web address, and notes are kept in both places, like account details above: in the Keychain beside the password, and in the local database. Because a copy sits in the database under the weaker file protection, treat your notes accordingly and avoid putting a second copy of the password there.

Revealing or copying a saved password requires Face ID, Touch ID, or your device passcode, with your app PIN as the fallback.

iCloud Sync

iCloud Sync is optional and off by default, and turning it on needs a subscription. It is a switch on each device, in the app's Settings → iCloud Sync, and it needs iCloud Keychain to be turned on for your Apple Account.

AutoFill

AutoFill is optional and needs a subscription. You turn it on for Authenticator in the iPhone's Settings app; the app's AutoFill screen takes you there. It lets Safari and other apps fill your saved passwords (iOS 17 and later) and verification codes (iOS 18 and later) from Authenticator.

Widgets

Widgets are optional and need a subscription, and they show no codes until you turn on "Show codes in widgets" in the app's Settings → Widgets.

The built-in browser

The app includes a browser tab for opening websites without leaving the app — useful when you are signing in to a service and need a code at the same time. It is a standard iOS web view.

Codes are generated on your device, and your accounts and passwords are stored and read there. None of that goes over the network. The browser is where requests go out to the web, exactly as they would from any other browser.

Encrypted backups

Unless you turn on iCloud Sync, your accounts live only on your device. The app can export an encrypted backup file so you are not one lost phone away from losing them. Backups are created only when you ask for one, and exporting requires Face ID, Touch ID, or your device passcode.

Importing from other apps

The app can add accounts from other authenticator apps. Everything is read on your device, and the accounts are added to your Keychain and local database the same way a manually added account would be. Nothing about an import is sent anywhere, and we are not involved in it.

The clipboard

Copying is handled differently depending on what you copy.

Camera

The app itself uses the camera for one thing: reading QR codes when you add an account. iOS asks your permission the first time. The scanner reads only the code's text, on your device. No photo or video is captured, stored, or transmitted.

Third-party services

The app uses two outside services: Google Firebase, for anonymous analytics, crash reports, and a few settings we can change without an app update (Remote Config), and RevenueCat, for subscriptions. Payments are handled by Apple through the App Store. None of them receives your codes, secrets, passwords, account names, usernames, web addresses, notes, or anything you type in the browser. iCloud Sync, if you turn it on, uses your own iCloud Keychain, run by Apple under your Apple Account; we are not part of it.

Subscriptions

Subscriptions are sold and billed by Apple through the App Store; we never see your name, payment card, or billing address. RevenueCat records that this installation has an active subscription. That record contains the purchase receipt from Apple and an anonymous identifier generated for the installation — nothing you have typed into the app. Because the app has no accounts and no login, there is nothing else for a purchase to be linked to. See RevenueCat's privacy policy.

Analytics and crash reports

The app uses Google Firebase for anonymous product analytics and crash reports. Analytics events record which onboarding and subscription screens were reached, which plan was chosen, the answer given to the tracking question, and a few simple actions — such as setting up a PIN or Face ID, or how an account was added (scanned, typed, imported, or through guided setup), never which account; which guided-setup steps were used, never which service; and whether iCloud Sync, AutoFill, and widgets are turned on. Crash and performance reports are sent so faults can be found and fixed. Reports carry basic technical details such as the app version, device model, and iOS version, and an identifier Firebase generates for the installation. Firebase does not use your iPhone's Location Services: it works out an approximate region, such as the country or city, from your IP address, and never your precise location.

No code, secret, account name, username, web address, note, or search term is ever included. The app is built so that none of these can be attached to an event. So that subscriptions can be counted alongside these reports, RevenueCat is given Firebase's identifier for the installation and reports subscription events to Firebase against it. See Google's privacy policy.

Remote Config

The app asks Firebase Remote Config for a few settings we can change without releasing an update: how many accounts can be used without a subscription, whether to ask for an App Store rating after your first account, and the text of the guided-setup steps. It asks when the app opens and when you return to it, at most every twelve hours, and once more when accounts need their free or locked status decided. The request carries what Firebase needs to answer it — an identifier Firebase generates for the installation, the app and iOS versions, and your device's language, region, and time zone. It carries nothing about your accounts, and the answer is only ever those settings.

Advertising

The first time you open the app, your iPhone may ask whether to allow it to track you. If you allow it, the advertising identifier is used to measure the effectiveness of the app's ads. If you decline, it is not used, and nothing about how the app works changes. You can change your answer at any time in the iPhone's Settings app, under Privacy & Security → Tracking. The anonymous analytics and crash reports described above are sent whichever you choose.

If a future version adds another service, or sends anything else off your device, we will update this policy and change the effective date at the top of this page before that version ships.

Data we do not collect

Apart from the anonymous analytics, crash, and subscription records and the Remote Config requests described above, and anything you choose to sync through your own iCloud Keychain, nothing leaves the app. In particular, neither we nor the services the app uses ever receive:

Retention

Your data stays on your device until you remove it. What each kind of removal does differs, and the difference matters:

If you delete and reinstall the app

Reinstalling finds what is still on the device. Once you unlock the app, it lists the accounts and passwords the Keychain still holds and asks whether to put them back. You choose which to restore, or dismiss the offer and restore nothing. The same list stays available afterwards under Settings → Backup → "Restore from this device". Nothing is restored unless you ask for it, and nothing leaves the device at any point in this. If you used iCloud Sync, the app also offers to restore the accounts waiting in your iCloud Keychain, as described under iCloud Sync.

Entries saved by a version of the app older than this feature come back without their labels, because only their secrets were kept at the time. They still generate the right codes, and you can name them again in the app.

Any backup file you exported stays wherever you put it until you delete it yourself. The anonymous analytics, crash, and subscription records described above are kept by Google and RevenueCat as set out in their privacy policies.

Your choices and rights

Children

The app is not directed at children under 13, and we do not knowingly collect personal data from them.

Security

Secrets and passwords are held in the iOS Keychain, readable only while your device is unlocked, and marked so they never leave it — unless you turn on iCloud Sync, which keeps them in your iCloud Keychain, end-to-end encrypted by Apple. The app can be locked with Face ID, Touch ID, or a PIN, and repeated wrong PIN entries are slowed down with increasing delays. Revealing or copying a secret requires authentication. The app also covers its contents in the iOS app switcher so a revealed password does not end up in a screenshot of your recent apps.

Please protect your device with a passcode and keep iOS up to date. Deleting the app is recoverable, because the Keychain keeps your accounts and the app offers them back when you reinstall. Losing or erasing the device is not, unless you use iCloud Sync: without it, your accounts exist only there, and we cannot recover them for you. Make an encrypted backup, and keep the backup codes each service gives you when you set up two-factor authentication.

Changes to this policy

If we change this policy, we will update the effective date at the top of this page and, for significant changes, notify you in the app.

Contact

Bakir Store LLC
[email protected]