VibeKey Privacy Policy
Last updated: September 2026
VibeKey is a keyboard. It sees everything you type, so the most important thing this policy can tell you is what we deliberately do *not* do with it.
Controller: Unblok ("VibeKey", "we", "us"). Contact: info@unblokapp.com
1. Our commitment
Your typing is not our business model. VibeKey is built so that core typing never leaves your device, and so that anything that does leave your device happens only because you asked for it.
2. What we do NOT collect
- Keystrokes are never collected. We do not record, store, transmit, or sell what you type. Nothing you type is uploaded for typing, autocorrect, suggestions, advertising, or model training.
- No passive keystroke logging, in any mode, at any time.
- Learned words and personal dictionary stay on your device. Corrections and learned vocabulary are stored locally and included only in backups you create yourself.
- Clipboard history stays on your device.
- No third-party analytics or crash SDKs. The app ships without Firebase Analytics and without Crashlytics. We do not record keystrokes, screen views, session replays, or in-app navigation. Diagnostic logs are written to the Android system log on your device only and are never uploaded.
- No behavioral ad profiling by us. We do not build a profile of how you use the keyboard for advertising. Share-link measurement (Section 3.1) counts aggregate share and landing events only — not what you type or which apps you use.
- Optional web account (marketplace). If you sign in at vibekey.app/account to link your phone, buy creator Vibe Cards, or use resale, we store your email (from Google or email-link sign-in), purchase and resale records, current license entitlements, and a device link between your account and your keyboard install ID. The Android app has no sign-in screen — pairing uses a one-time code. You can delete your account from the account page.
- Optional wallet (creators). If you link an Ethereum wallet via SIWE at vibekey.app/account/wallet, we store the public address and chain id to pay creator earnings. We never receive your private keys; signing happens in your browser wallet.
- Vibe Serial registry. For eligible marketplace purchases, we maintain a serial identifier, edition details, listing and transfer events, current entitlement status, and internal account references. Public serial pages show collectible metadata and a pseudonymous activity history; they do not show your email, Firebase user ID, or wallet address.
- No contacts, no photos, no precise location. We do not request or read them.
3. What leaves your device, and when
Data leaves your device only for these actions, and only when you trigger them:
| Action you take | What is sent | Where it goes |
|---|---|---|
| Generate an AI keyboard theme | The prompt text you typed and theme parameters | VibeKey API → Google Gemini |
| Claim or unlock a Drop, card, or theme | Item identifier, your install ID, reward verification data | VibeKey API (Firebase) |
| Link device / sync purchased library | Install ID, library session token, owned item ids | VibeKey API (Firebase) |
| Buy creator cards on the web | Email; crypto payment via NOWPayments; we record ownership | NOWPayments + VibeKey API (Firebase) |
| List, cancel, or buy a resale | Account reference, serial and listing identifiers, price, payment status, license transfer, fees and payout records | NOWPayments + VibeKey API (Firebase) |
| View a public Vibe Serial | Serial identifier; standard web request data | vibekey.app / VibeKey API (Firebase) |
| Link payout wallet (SIWE) | Public wallet address, signature, chain id | VibeKey API (Firebase) |
| Creator sales | Sale amounts, fees, payout history (creators only) | VibeKey API (Firebase) |
| Browse Drops | A catalog request | vibekey.app / Google Cloud Storage |
| Download a theme, card, font, sound, dictionary, or Assist model | The asset identifier | Google Cloud Storage / GitHub / Hugging Face |
| Viewing an advertisement | See Section 5 | Google AdMob |
| Using the in-app browser | Whatever you enter there, as with any browser | The site you visit |
| Share a Drop, card, or theme link | See Section 3.1 | VibeKey API / vibekey.app |
On-device Assist transforms (fix, rephrase, shorten, and translation when the on-device model is enabled) run entirely on your phone and send nothing.
3.1 Share links and referral measurement
When you share a VibeKey link or open someone else's shared link, we measure whether sharing is working — not how you use the keyboard day to day.
- Share links. Links may include a public referral token (
?ref=) and a separate measurement token (?s=). The referral token credits a friend who installs and claims; the measurement token helps us count which share led to a click. Neither token identifies you by name, email, or phone number. - When you share from the app. When you open the system share sheet for a Drop, card, or theme link, we increment a small local counter for that share type (Drop shares count only after you pick a destination; other surfaces count when the sheet opens). On a later routine server check (the same request that loads your share-to-earn balance), we send only those aggregate counts — for example, “2 drop shares since last sync” — not a log of each tap, timestamp, or recipient.
- When someone opens your link on the web. Our share landing pages send a first-party beacon to our server when a human visitor loads the page or taps “Get on Play Store.” We count the event type (view, Play Store tap), the drop or card id, and any
ref/son the link. We do not use Google Analytics on those pages. - When you open a shared link in the app. The app stores the link's
ref(for referral credit on your first claim) ands(for measurement) locally until used. We may report one aggregate “app open from link” count on the next balance sync. We do not upload keystrokes or a history of screens you visited. - Web storage on vibekey.app. If you visit
/dropswith?ref=or?s=, your browser may store those tokens inlocalStorageso a later visit to our site can still attribute a referral. You can clear this by clearing site data for vibekey.app. - What we do not do. Share measurement does not change what you type, does not read your messages, and does not grant referral credit from beacons alone — credit still requires a genuine first claim through our server rules.
4. Identifiers we use
- Install ID. A random UUID generated on your device the first time the app needs it, stored locally. It is used for rate limits, entitlements, claim records, and abuse prevention. It is not derived from your device, hardware ID, phone number, SIM, or Google account, is not shared with advertisers, and is regenerated if you clear the app's data or reinstall.
- Google Advertising ID (GAID). Used by the Google Mobile Ads SDK to serve and measure ads. It is resettable and controllable by you in Android Settings → Google → Ads.
- App Check token (Play Integrity). A short-lived token proving a request came from a genuine, unmodified VibeKey install. It protects our API from abuse and contains no personal information about you.
- IP address. Used transiently by our API to deliver responses, rate-limit, prevent abuse, and derive a two-letter country code so we can select the right regional model tier. For share landing beacons we may hash a coarse network prefix with a truncated browser identifier for up to about 26 hours to deduplicate repeated bot or preview fetches — not to identify you personally. We retain the country code, not your full IP address, in long-term service records.
- Share referral token (
ref). An opaque code in share URLs, bound to an install on our server when you first claim. Used to credit share-to-earn referrals. It is public in links you send and appears in our operator dashboard as aggregate counts only. - Share measurement token (
s). A random code generated when you share, appended to the link for funnel statistics. It has no payout authority and expires from hot storage within about two weeks after roll-up into daily totals. - Rewarded-ad verification data. A random per-request nonce, the feature being unlocked, your install ID, and Google's transaction ID. Kept briefly to stop replay and fraud. It contains nothing you typed.
- Marketplace account and serial identifiers. Internal random identifiers connect purchases, licenses, resale listings, transfers, ledger entries, and Vibe Serials. Public registry responses use serial identifiers and pseudonymous history rather than email addresses or authentication identifiers.
5. Advertising
VibeKey is free and ad-supported for official Drops and most in-app catalog content. Optional creator marketplace purchases happen on vibekey.app (not inside the keyboard app). There is no in-app subscription.
5.1 How ads relate to content. The weekly Drop is free while it is live and requires no ad. Other themes, individual Vibe Cards, archived Drops, and extra Assist capacity unlock when you choose to watch a rewarded video. Watching is always optional; typing itself never requires an ad.
5.2 Who serves the ads. Google AdMob, using the Google Mobile Ads SDK. Google acts as an independent controller for the advertising data it processes, under Google's Privacy Policy and how Google uses information from sites or apps that use its services.
5.3 What the ad SDK processes. Your Google Advertising ID; device and app information such as device model, operating system version, app version, language, network type, and screen or ad size; coarse location inferred from your IP address; and ad interaction events such as request, impression, click, video completion, and reward. With your consent, this may be used for personalized advertising, frequency capping, and measurement.
5.4 Your consent choice. In the European Economic Area, the United Kingdom, Switzerland, and other regions where it is required, we present a Google-certified consent form (Google User Messaging Platform) before any ad request, so you can accept or reject personalized advertising and review vendor purposes. Your choice is stored on your device and can be changed at any time in VibeKey → Settings → Ads & privacy. Ads are not requested before consent is resolved where consent is required.
5.5 Declining personalized ads. You still get the same content. Rewarded videos continue to work; they are simply non-personalized, which typically means less relevant ads.
5.6 We do not sell your data. We do not sell or share personal information for cross-context behavioral advertising beyond the advertising consent described above, and we do not receive keystroke or message content back from advertisers.
5.7 Children. VibeKey is not directed at children under 13 and we do not knowingly serve advertising to them.
6. Third-party services
| Service | Purpose | Data involved |
|---|---|---|
| Google AdMob | Rewarded and interstitial advertising | Advertising ID, device and app info, IP-derived coarse location, ad events |
| Google Gemini (via VibeKey API) | AI keyboard theme generation | Your theme prompt text |
| Together AI (via VibeKey API) | Admin/content pipeline only | Not used when you claim Drops in the app |
| Google Firebase (Cloud Functions, Firestore) | Entitlements, marketplace and serial registry records, resale transfers, claim records, rate limits, reward verification, aggregate share funnel counters | Install and account identifiers, item and serial identifiers, purchase and resale records, country code, verification data, share ref / s tokens, deduplicated beacon hashes (short TTL) |
| Google Firebase App Check / Play Integrity | Abuse prevention | Integrity token |
| Google Cloud Storage | Delivery of themes, cards, fonts, sounds, dictionaries, models | Asset requests, IP address |
| Google Play | App distribution and updates | Handled by Google |
| Vercel | Hosting for vibekey.app | Standard web request logs |
| Google Firebase Authentication | Sign-in for vibekey.app/account and creator studio | Email, Google account identifier, auth tokens |
| NOWPayments | Creator marketplace checkout (web) | Payment status, amounts, cryptocurrency transaction metadata (handled by NOWPayments) |
All AI generation runs through the VibeKey API. VibeKey does not offer a bring-your-own-key mode, so your prompts reach AI providers only via our API, under our provider agreements, and are not used by us to train models.
7. Retention
- Prompts: transmitted for generation and not retained by us as a browsable history; provider retention is governed by our agreements with them.
- Entitlement and claim records: retained while needed to honor your collection and to prevent fraud.
- Marketplace orders, resale listings, transfer events, and payout ledger records: retained while needed to provide licenses and payouts, resolve disputes, prevent fraud, and meet legal, tax, and accounting obligations.
- Public Vibe Serial history: retained as a pseudonymous provenance record for as long as the registry operates. If an account is deleted, we remove or dissociate direct account data where required, but may retain the serial's non-identifying edition and transfer history.
- Reward verification records: retained briefly, for anti-replay only.
- Country codes and rate-limit counters: retained on a rolling short-term basis.
- Share funnel counters (landing views, Play Store taps, aggregate shares created): hot daily totals in Firestore for about 12 days, then merged into private operator analytics (up to about 120 days). No per-user share history is kept.
- Share beacon deduplication hashes: about 26 hours.
- Last-click timestamps for referral attribution windows: about 8 days.
- Pending
ref/stokens on your device: until your first qualifying claim consumes the referral, or you clear app data. - Everything else — themes, cards, learned words, clipboard, settings — lives on your device and is removed when you clear the app's data or uninstall.
8. Security
Traffic to our API and to AI providers is encrypted in transit with TLS. Theme and card asset files are encrypted at rest in the delivery pipeline. Requests to our API are gated by App Check. No system is perfectly secure, but because we never receive your keystrokes, the most sensitive data a keyboard touches is never exposed to us in the first place.
9. Your rights
Depending on where you live, you may have the right to know what data is processed, to request a copy, to request deletion or correction, to object to or restrict processing, to withdraw consent, and to opt out of personalized advertising. Specifically:
- Personalized advertising: change your choice in VibeKey → Settings → Ads & privacy, or reset or delete your Advertising ID in Android settings.
- Deletion: clearing the app's data or uninstalling removes the local data and rotates your install ID. To have server-side records tied to an install ID deleted, email info@unblokapp.com with that install ID.
- Access and portability: email us from the address tied to your vibekey.app account if you use Market or Creators; for the keyboard app alone, the server-side record for an install ID is small and we do not hold keystroke data.
- EU/EEA, UK, Switzerland: you may also lodge a complaint with your local supervisory authority.
- California: you have rights to know, delete, correct, and opt out. We do not sell personal information for money, and we honor Global Privacy Control signals on vibekey.app.
Legal bases where the GDPR applies: performing the service you requested (generation, claims, downloads, purchases, resale transfers, and payouts), legitimate interests (operating a reliable serial registry, security, fraud prevention, dispute resolution, and rate limiting), legal obligations (tax, accounting, and compliance records), and consent (personalized advertising).
10. International transfers
Our infrastructure and providers operate in the United States and other countries. Where required, we rely on Standard Contractual Clauses or equivalent safeguards for transfers out of the EEA, UK, and Switzerland.
11. Children's privacy
VibeKey is not intended for children under 13, and we do not knowingly collect personal information from them. If you believe a child under 13 has provided us information, contact us and we will delete it.
12. Changes to this policy
We may update this policy. The updated version will be posted here with a new "Last updated" date, and material changes will be announced in the app.
13. Contact
info@unblokapp.com