Privacy Policy

Effective October 6, 2026

ZepLink (the “Service”) connects your own PC directly to your own phone. Our server only helps the two devices find each other by exchanging their addresses — the game picture, sound and your input go directly between your PC and your phone and never pass through our server. This policy explains what personal data the Service processes, why, and for how long. ZepLink is run by an individual developer in the Republic of Korea (section 7).

What the Service does not have
ItemWhy
What is on your screen · video · audio · keyboard, mouse and controller inputSent directly between your devices, not through our server
Pairing secretsCreated by your phone and PC together. Our server only receives the PC’s notice that the two are paired
PasswordsWe don’t use passwords. You sign in only with Apple or Google
Card numbers or other payment detailsPayments happen only inside the App Store or Google Play
Precise location (GPS) · contacts · photosWe don’t ask for them and don’t store them. The ad software may estimate an approximate location from your IP address (1-9)

1. Personal data we process

1-1. Account (only if you sign in)

ItemDetailsPurpose
Account IDA random value our server createsGroups your devices as belonging to one person
Sign-in method and the ID it gives usApple or Google, and the unique number that company gives usFinds the same account the next time you sign in
Email address and whether it is verifiedThe address your sign-in method gives us (including Apple’s “Hide My Email” address)Merges accounts that belong to the same person
Apple sign-in refresh tokenIf you sign in with Apple, a token issued by Apple. Stored encryptedUsed only to ask Apple to disconnect the sign-in when you delete your account

We don’t collect gender or date of birth. Your name and profile picture may be included in Google’s sign-in token or Apple’s sign-in response, but our server does not read or store them.

1-2. Phone

ItemDetails
Device IDThe fingerprint of a public key your phone creates itself. Our server never knows the private key
PlatformiOS or Android
Name of a connected deviceOnly while it is connected through remote access. The device name set on your phone (or its model name). When one account reaches the number of devices that can use remote access at the same time (2), we show it to your other devices as a “connected device” so you can pick one to disconnect. It is kept in memory only and never written to our database or logs
Push notification tokenOnly if you turn notifications on. If you turn them off, we delete it the next time you open the app. Signing out does not delete it, so this phone keeps getting its notifications (such as Play Together invites)
Last seen time
Store installation IDCollected only in regions where the law requires app stores to verify age and obtain parental consent (such as Texas in the United States). On iPhone and iPad, and only if the store has not confirmed that you are an adult: the number the App Store issues for each Apple Account’s download of this app. It arrives with Apple’s signature; our server checks the signature and keeps only the number. On Android: the number Google Play provides only for installs on accounts managed by a parent or guardian. We use it only to match a store notice that a parent or guardian has withdrawn consent to this phone. It contains no age or age range
Time parental consent was withdrawnWhen a parent or guardian withdrew consent for this app. Until consent is restored, our server refuses this phone’s requests and sends it no notifications. Deleted when consent is restored and the app runs again

Your advertising identifier (IDFA · GAID) is never sent to our server. Neither is your age or age range (1-8).

1-3. PC (host)

ItemDetails
PC IDThe fingerprint of a public key your PC creates itself
PC nameYour PC’s Windows computer name, which often includes a person’s name. Friends you invite to Play Together see it, and it appears in push notifications about that PC
Operating system · supported features · online status · last seen time
Owning accountIf you connected the PC after signing in

1-4. Pairing · Play Together

ItemPurpose
Which phone is paired with which PC, and when pairing was added or removedDecides who may connect
Invite link tokens · 6-digit codes · expiry timesInviting friends. Codes expire after a few minutes and links after a few days
Guest participation recordsLets an invited friend join again without a new code

1-5. Connection records

For each connection we keep only what we need to understand how often connections succeed: which phone connected to which PC, when, over which route, whether it worked, and the result of the network-type check.

Individual records are deleted after 90 days. Before that, they are turned into daily counts (date · route · success · network type) that cannot identify anyone.

1-6. Subscription

Subscription product · status · the store you bought it from · transaction ID · expiry time. No payment details.

1-7. IP addresses

The IP address a request comes from is used only to prevent abuse (limiting how many requests are allowed). It is kept only in memory and in a cache — never in the database — and disappears automatically after a short time (minutes to hours).

For remote access, Play Together and the connection check, our server passes the addresses each device reports (its private and public IP address and port) to the other device so they can find each other. These addresses are kept in the cache for at most 5 minutes and never stored in the database. Devices also contact public STUN servers directly to learn their own public address (section 4).

1-8. Handled only on your phone

The following is used only on your phone and is never sent to our server.

Permission · dataUsed for
CameraOnly to read the QR code on your PC screen. Images are not saved or sent (on Android, Google ML Kit reads the code on the phone — section 4)
Local networkFinding and connecting to PCs on the same network
List of connected PCs · app settingsStored on your phone
Device authentication keyKept in your phone’s secure storage (Keychain on iPhone and iPad, encrypted app storage on Android). It never leaves the phone
Age range from your app storeOnly in regions where the law requires app stores to verify age (some U.S. states, Brazil and similar), the app asks the App Store or Google Play for your age range (under 13, 13–15, 16–17, or 18 and over). On Android the app asks only when your Google Play country is the United States or Brazil. We use it to decide what you can do: under 13, the app can’t be used; under 16, you can’t create an account or subscribe (on Android this also applies until Google Play has verified your age). The age range itself is not stored — only the outcome (for example, whether you can create an account) and the date it was checked are kept on your phone (on Android, also a fingerprint of the installation ID last reported to our server, to tell whether it changed). The age range and the outcome are never sent to our server

1-9. Advertising

The app shows banner and rewarded ads through Google AdMob. AdMob inside the app sends Google the information it needs to choose and show ads — device and app information, which ads you saw or tapped, an approximate location estimated from your IP address, and, only if you allow it, your advertising identifier. Our server sends nothing to any advertising company.

ZepLink Pro subscribers see no ads. However, AdMob starts together with the app, so device and app information may still be sent to Google when the app opens.

Where your app store tells the app that you are 13 to 17 (1-8), the app asks Google to treat its ad requests as coming from a teen, which turns off personalized ads. The same applies on Android while Google Play has not yet verified your age. No age or age range is sent. On iPhone and iPad the app does not ask to track you in this case. If the store tells the app you are under 13, the app requests no ads.

Your choices:

How Google processes this information is described in Google’s Privacy Policy and How Google uses information from sites or apps that use its services. Google may collect information about your activity over time and across different apps to show you ads.

1-10. This website

This website uses no cookies and no visitor analytics, and it serves its fonts itself. The PC program’s installer is downloaded from GitHub, so GitHub receives your IP address when you download it. Because the website does not track you, it does not change its behavior in response to “Do Not Track” browser signals.

2. How long we keep it

DataPeriod
Individual connection records90 days — then turned into counts that cannot identify anyone, and deleted
Daily counts that cannot identify anyoneNo limit (they are not personal data)
Account · phones · PCs · pairing · subscriptionUntil you delete your account
Phones and PCs not linked to an account (you never signed in, or signed out) and their pairing 1 year after last contact — if that phone or PC doesn’t contact our server for a year, it is deleted automatically. You can ask for earlier deletion (section 3)
Push notification tokenDeleted when you open the app after turning notifications off, or when we learn the app was removed. Deleted with your account
Store installation ID · time parental consent was withdrawnDeleted together with the phone’s record (when you delete your account, or after 1 year without contact). The withdrawal time is deleted as soon as consent is restored and the app runs again
Name of a connected deviceKept only while the remote-access connection lasts. It is gone as soon as you disconnect, or within 90 seconds if the app is closed or the network drops
Invite links · codesCan’t be used once they expire or have been used. Invite records (which phone joined) are deleted together with that PC’s or that phone’s records
Database backupsWe back up the database every day and keep each backup for 14 days, so deleted data can remain in a backup for up to 14 days before it is overwritten. Backups stay on the same server

Where the law requires us to keep something longer, we keep it for that period.

3. Deleting your account

When you tap Delete account in the app, our server deletes all of the following at once:

Deletion cannot be undone and happens right after you confirm, with no grace period. Each PC is told it has been disconnected. If you signed in with Apple, we also ask Apple to disconnect the sign-in. Daily counts that cannot identify anyone are not deleted. Deleted data may stay in database backups for up to 14 days (section 2).

Records not linked to an account — a phone used without signing in (including a signed-out phone), a PC without an account, and their pairing and participation records — are not deleted when you delete an account, and not immediately when you uninstall the app or the PC program. They are deleted automatically if that phone or PC doesn’t contact our server for a year. To delete them sooner, sign in on that phone with Apple or Google and delete the account (signing in moves that phone’s records into the account, so they are deleted with it), or contact us (section 7). Because there is no account, we may ask for details that help us find the records, such as the name of the connected PC. Individual connection records are deleted after 90 days regardless. See also Delete your ZepLink account.

4. Who receives data

We don’t sell personal information, and our server sends nothing to advertising companies. AdMob inside the app collects information for ads directly, as described in 1-9. Only what is needed to run the Service goes to the following:

RecipientWhatWhy · notes
Apple (push notifications)Push notification token, the type of notification and the PC nameDelivering notifications
Apple (sign-in)The authorization code received at sign-in; the Apple sign-in refresh token when you delete your accountVerifying who you are; disconnecting Apple sign-in when you delete your account
Google (sign-in)Our server sends nothing — it receives the verification result. The Google Sign-In software inside the app talks to Google directly while you sign in; Google describes what it collectsVerifying who you are
Apple (payments)Nothing — we receive the subscription statusChecking your subscription
Google (payments)The purchase token Google Play issued for your purchaseChecking your subscription — our server asks Google Play for the status with this token
Server operationWhere the data above is storedA server run by the developer in the Republic of Korea. Hosting is not outsourced
Google (AdMob)Our server sends nothing. AdMob inside the app sends it directly (1-9)Showing ads
Google (ML Kit · QR reading on Android)Our server sends nothing. ML Kit inside the app sends device and app information, a per-installation identifier and performance metrics directly. Camera images are not sentProviding and improving QR reading
Google · Cloudflare (public STUN servers)The IP address and port of your phone and PC — the devices connect directlyLearning each device’s public address for remote access, Play Together and the connection check (1-7)
GitHub (PC program updates · installer)Your PC’s IP address — the PC connects directlyChecking for updates (once a day) · downloading Sunshine and the controller driver during installation

International transfers

Our server is in the Republic of Korea, so if you use ZepLink from another country, your data is transferred to Korea.

Apple, Google, Cloudflare and GitHub are mainly in the United States and process data under their own policies, which also describe the safeguards they use for international transfers.

RecipientDataCountry When · howKept for
Apple Inc. (push notifications)Push token, notification type and PC nameUnited States and othersWhen a notification is sent, encryptedPer Apple’s policy
Google LLC (AdMob)Advertising identifier and other ad data — sent directly by AdMob in the appUnited States and othersWhen an ad is requestedPer Google’s policy
Apple Inc. (sign-in)Authorization code · Apple sign-in refresh tokenUnited States and othersAt sign-in · at account deletion, encryptedPer Apple’s policy
Google LLC (ML Kit)Device and app information, per-installation identifier, performance metrics — sent directly by ML Kit in the appUnited States and othersWhen the QR scanner is used on AndroidPer Google’s policy
Google LLC · Cloudflare, Inc. (STUN)IP address · port — sent directly by the devicesUnited States and othersDuring remote access, Play Together and the connection checkPer each company’s policy
Google LLC (subscription check)Purchase tokenUnited States and othersWhen an Android subscription is checked, encryptedPer Google’s policy
GitHub, Inc. (PC program)Your PC’s IP address — the PC connects directlyUnited States and othersWhen checking for updates · when downloading the installerPer GitHub’s policy

You can refuse these transfers. However, if you refuse the notification transfer you won’t receive notifications; ad-related transfers depend on your choices in 1-9; refusing the STUN connections means you can’t use remote access, Play Together or the connection check; and refusing GitHub means you can’t install or update the PC program.

5. Your rights

You can ask us at any time to:

In the European Economic Area, the United Kingdom and Switzerland you also have the right to restrict processing, to receive your data in a portable format, to object to processing based on our legitimate interests, and to withdraw consent at any time (Settings → Privacy choices, your device’s tracking and notification settings) without affecting processing that happened before. You can also complain to a data protection authority — in your country of residence in the EEA, the Information Commissioner’s Office in the UK, or the Federal Data Protection and Information Commissioner in Switzerland.

In U.S. states with consumer privacy laws (such as California) you can ask to know, delete or correct your personal information and opt out of its “sale” or “sharing” for targeted advertising. We don’t sell personal information for money; showing personalized ads through AdMob may count as “sharing” under some of these laws, and you can opt out in Settings → Privacy choices or through your device’s ad settings. We won’t treat you differently for exercising these rights.

Send requests to the contact in section 7. We respond within 10 days. We may ask you to write from the email address of your sign-in method so we can confirm it’s you.

ZepLink is not directed to children, and the app is rated 16+ in the App Store. We don’t knowingly process personal data of children under 14 in Korea, under 13 in the United States, or under the age at which children can consent to online services in their country (13 to 16 in the EEA and UK). We don’t ask for a date of birth or age; age limits rely on the App Store and Google Play ratings and on the age information of your store account. Where the law requires app stores to verify age and obtain parental consent (such as Texas), the app uses the age range the store provides to limit what you can do (1-8), and if a parent or guardian withdraws consent the store blocks the app and we stop serving that phone (1-2). If you believe a child has given us personal data, contact us and we’ll delete it.

6. Security

7. Who is responsible and how to reach us

ZepLink is run by an individual. For questions, complaints or requests about your personal data, contact:

Controller and privacy officerChangmin Park (박창민), individual developer, Republic of Korea
Emailsupport@zeplink.app

If you are in Korea, you can also contact these public bodies about privacy violations or disputes:

8. Changes to this policy

If this policy changes, we announce the change and its effective date in the app and on this website. Changes that are unfavorable to you are announced 30 days before they take effect.

This policy is published in English and in Korean with the same content. For users in Korea the Korean version prevails; for everyone else the English version prevails.

Additional information for the European Economic Area, the United Kingdom and Switzerland

Why we may process your data (legal bases):

PurposeLegal basis
Providing what you ask for — registering your devices, pairing, connecting them (including exchanging addresses), Play Together, your account and sign-in, checking your subscription, and notifications you turned onPerformance of our contract with you
Preventing abuse and keeping the Service secure; counting connection success anonymously; keeping records of devices not linked to an account for up to 1 year so they keep working without an account; database backupsOur legitimate interests — you can object (section 5)
Storing or reading information on your device for ads, and personalized adsYour consent, collected through Google’s consent form. You can withdraw it at any time in Settings → Privacy choices
Keeping records the law requiresLegal obligation

You don’t need an account to use ZepLink on the same Wi‑Fi. An account is needed only for remote access, Play Together and subscriptions. We make no decisions about you based solely on automated processing. How your data can leave these regions is in International transfers, and your additional rights are in section 5.

Effective October 6, 2026