๐Ÿ”’

Privacy Policy

WiFi Map - Free WiFi & Chat โ€” published by Epsilon Developers, operated by Satyam Kushwaha and Anurag Mahajan.

๐Ÿ“… Last updated: October 13, 2026 ๐Ÿ“ฑ Android v1.0.0+ ๐Ÿ“ฆ com.epsilon.wifichat ๐Ÿ‡ฎ๐Ÿ‡ณ India

๐Ÿ” Key Highlights

  • There are no accounts and no sign-up. We never ask for your name, email, phone number, or any social login.
  • WiFi Chat has no server. Messages travel directly between phones on the same Wi-Fi network or, if you turn on Nearby, over Bluetooth and Wi-Fi Direct. They are stored only on the phones in the conversation and never reach us.
  • Direct messages and private groups are end-to-end encrypted. Network rooms are public to everyone on that network, and the App says so inside every room.
  • WiFi scan results, connected-network details, LAN device lists, signal readings, heatmaps, history and vault entries are processed and stored only on your device.
  • Vault passwords are encrypted with AES-256-CTR under a hardware-backed key, authenticated with HMAC-SHA256, and are never transmitted anywhere.
  • Data reaches our server only when you deliberately contribute a hotspot, vote, report an entry, or share a speed sample. Nothing is uploaded in the background.
  • Contributed coordinates are rounded to 5 decimal places and full BSSIDs are never stored on our server โ€” the server rejects them outright.
  • Location permission is requested at the moment you open the Map tab, never at first launch, and never used for background or continuous tracking.
  • We do not sell, rent, or trade your personal information.

Overview

WiFi Map - Free WiFi & Chat (the "App", package com.epsilon.wifichat) is published by Epsilon Developers, an independent software publishing brand operated by Satyam Kushwaha and Anurag Mahajan ("Developer", "we", "us", "our").

This Privacy Policy explains what information the App collects, uses, stores, processes, discloses and protects, and what choices you have. By downloading, installing, accessing or using the App, you acknowledge that you have read and understood this Policy.

The App is deliberately built local-first. The overwhelming majority of what it does happens entirely on your phone with no network call at all. Its chat feature, WiFi Chat, works peer to peer: it exchanges data directly with other phones near you and never with us (ยง7A). A small, clearly-marked set of features โ€” the community hotspot map, speed testing, ads, purchases and crash reporting โ€” involve third parties or our own server, and each one is described in full below.

Shared backend. The community map, profiles and leaderboard are shared with Epsilon Developers' sister app WiFi Map: WiFi Unlocker: both apps read and write the same hotspot database and leaderboard, under the same rules. A contribution or profile created in one app is therefore visible in the other. Chat is unique to this App and has no server component in either app.

โ„น๏ธ

This Policy applies to the WiFi Map & Chat Android application and to this website. It does not apply to other Epsilon Developers products, or to any third-party website or service linked from within the App.

1 Data We Collect

The table below lists every category of data the App touches, and where it goes. "On-device only" means the data is written to the App's private sandbox directory and is never transmitted by us.

CategoryWhat it includesWhere it goes
A. WiFi scan data SSID (network name), BSSID (access point MAC address), signal strength (RSSI), frequency, channel, channel width, band (2.4 / 5 / 6 GHz), security capability string (Open / WEP / WPA / WPA2 / WPA3 / Enterprise), vendor OUI prefix On-device only
B. Connected-network details Currently connected SSID, local IP address, subnet mask, gateway IP, DNS server addresses, DHCP lease information, link speed On-device only
C. Speed test measurements Download and upload throughput, latency, jitter, failed-request ratio, timestamp, endpoint used. Your public IP address is necessarily visible to the measurement endpoint as part of any ordinary network request. Cloudflare Our Worker (fallback) History on-device
D. LAN device discovery IP addresses reachable on your own local subnet, TCP connect timing, inferred hostnames, vendor inferred from MAC prefix where available. This traffic never leaves your local network. On-device only
E. Vault entries Network names and passphrases that you type, generate, or scan from Android's own share-WiFi QR code. Stored as ciphertext. Encrypted local DB
F. Precise location Device latitude and longitude, obtained only while the Map tab is open, and only after you grant permission. Used to centre the map and to stamp a contribution you choose to submit. On-device Rounded, if you contribute
G. Community contributions Hotspot name, venue type, security type, coordinates rounded to 5 decimal places, vendor OUI prefix, your permission attestation, and โ€” only if you explicitly add one โ€” a venue passphrase. Our server
H. Votes, reports and takedowns The hotspot identifier, whether the entry worked, the reason selected when reporting, and a timestamp. Our server
I. Install ID A random UUID generated on your device on first launch. It is not a device identifier, not the Android ID, and not the advertising ID. It exists so the server has something to rate-limit and to attribute moderation decisions to, without knowing who you are. Our server
J. Speed samples attached to a hotspot If you choose to share a speed result against a community hotspot: download, upload and ping figures, and a timestamp. Our server
K. Camera frames Used solely by the WiFi QR import scanner. Frames are decoded in memory on the device, are never written to storage, and are never uploaded. Processed in memory
L. Advertising data Android Advertising ID (AAID), IP address, device model, OS version, coarse country/region, app interaction and ad performance events, and your consent choices recorded through Google's User Messaging Platform. Google AdMob
M. Purchase data Purchase state, product identifier and purchase token for the two one-time products. Payment details never reach us โ€” Google Play processes them. Google Play Billing
N. Analytics & crash diagnostics Screen views, feature-open events, ad-serve outcomes, session length, purchase funnel events, and โ€” on a crash โ€” the stack trace, device model, OS version and locale. Firebase
O. Local history Timestamped speed test results, scan snapshots, heatmap grids and deep-scan reports, kept in a local SQLite database. On-device only
P. Map tile cache Precomputed public hotspot tiles downloaded from a CDN and cached locally for seven days. These are read-only public data; the request carries no identifier of yours. Cached on-device
Q. Diagnostic tool inputs Hostnames or IP addresses you type into Ping & Traceroute or DNS & IP Info. These are sent to the host or resolver you targeted, exactly as any network tool would. We do not log or store them. Target host / resolver
R. Leaderboard profile Once you contribute: the display name you choose (or a generated "Contributor 1234" name if you choose none), the avatar colour you pick, a coarse country inferred from your connection, a coarse region about 150 km across derived from where you contribute, and your contribution points for the last ten days. Shown publicly on the in-app leaderboard. Our server Visible to other users
S. Profile photo (optional) Only if you choose one: a single photo you pick through Android's photo picker, reduced on your device to a few hundred pixels before upload. Shown publicly next to your display name on the leaderboard. The App has no permission to read your photo library; the picker hands it only the one photo you select. Our server Visible to other users
T. Chat presence While WiFi Chat is on and you are visible: your chat display name, avatar colour, profile-photo key (if you set one), your chat public keys and a random chat ID derived from them, and a short hash identifying your Wi-Fi network's room. Announced every few seconds to other phones running the App on the same local network, and โ€” only if you enable Nearby โ€” to phones close by over Bluetooth / Wi-Fi Direct. Other users nearby Never our server
U. Chat messages What you write or share in WiFi Chat: text, waves, reactions, shared-network cards (network name, security type and signal โ€” never a password), group invitations, delivery and read receipts, typing indicators. Sent directly to the phones in the conversation; stored in a local database on each of them. Recipients' phones Your device Never our server
V. Chat keys and contacts Your chat signing and encryption key pairs (in Android's Keystore), the public keys, names and last-seen time of people you have chatted with, private-group keys, and your block list. On-device only
โš ๏ธ

We never collect: your real name, email address, phone number, contacts, calendar, files, SMS, call logs, installed-app list, microphone audio, any social account, or the content of any chat message, and the App never reads your photo library. The only name we hold is the display name you choose for the leaderboard, and the only image that leaves your device is a profile photo you pick yourself, if you pick one. The App requests none of those permissions and has no code path that could read them.

2 What Stays On Your Device

The following features run entirely on your phone. They make no request to us, and in most cases no network request at all:

  • WiFi Scanner โ€” reads the Android WiFi scan results. Vendor lookup uses a bundled offline database, so no request is made.
  • Channel Analyzer โ€” computes congestion and recommends a channel from the scan results already in memory.
  • Signal Meter and Signal Heatmap โ€” sample RSSI as you walk. The grid is drawn and stored locally.
  • Who's On My WiFi โ€” probes addresses on your own subnet. That traffic stays inside your LAN.
  • Password Generator and Password Auditor โ€” generation uses the platform cryptographic RNG; strength estimation runs against bundled rules. Nothing typed into the auditor leaves the device.
  • Password Vault โ€” see ยง8.
  • Router Access โ€” detects your gateway address and opens it in your browser. It never attempts a login and ships no credential list.
  • Network Deep Scan โ€” runs staged local analysis and produces a score and a list of fixes. The report is generated on-device.
  • History โ€” a local Drift/SQLite database in the App's private sandbox.
  • Nearby now (Map tab) โ€” the list of networks your phone can currently hear. This layer is measured locally and is never uploaded.
  • WiFi Chat history โ€” every conversation, message, reaction and remembered person is kept in a separate local database on your phone. It is exchanged with other phones in the conversation (ยง7A), never with us.

Android's application sandbox keeps this directory inaccessible to other apps. Uninstalling the App removes all of it.

3 What Reaches Our Server

We operate a small edge API on Cloudflare Workers, with storage in Cloudflare D1, R2 and KV. It exists for one purpose: the community hotspot map, which this App shares with WiFi Map: WiFi Unlocker. It has no login, carries no chat traffic, and receives data only from actions you take deliberately. The only profile it holds is the public leaderboard entry described in ยง7.6.

ActionWhat is sentTriggered by
Contribute a hotspotName, venue type, security type, rounded coordinates, vendor OUI prefix, optional venue passphrase, permission attestation, install ID, timestampYou tapping Submit on the contribution sheet
Vote on an entryHotspot ID, works / does not work, install IDYou tapping a vote control
Report an entryHotspot ID, reason, optional free-text note, install IDYou submitting a report
Share a speed sampleDownload, upload, ping, hotspot ID, install IDYou choosing to attach a result
Leaderboard nameYour display name and avatar colour, install IDAny upload above, and renaming yourself once you are on the leaderboard
Set or remove a profile photoThe photo you picked, or a request to remove it, install IDYou choosing or removing a photo on your profile
Report a profile photoThe photo's identifier, install IDYou reporting a photo on the leaderboard
Fetch remote configurationNothing identifying. A plain read of feature flags and ad-frequency values.App start
Speed test fallbackThe measurement request itself. Your IP is visible to the endpoint as with any HTTP request.Only if the primary Cloudflare endpoint is unreachable

The offline outbox

Contributions, votes and reports are written to a local queue first and uploaded afterwards, because people add hotspots exactly where connectivity is worst. Until an upload succeeds the App shows the item as queued, never as sent. If no backend is configured for a given build, items simply remain queued locally and nothing is transmitted.

Request signing

Writes carry an HMAC signature computed over the install ID, a timestamp and the request body. This is anti-abuse plumbing, not authentication of you as a person โ€” it lets the server reject replayed and forged writes and enforce a per-install write limit.

โœ…

Map reads never touch our server. Hotspot tiles are precomputed and served from a CDN as static files. Browsing the map sends us nothing.

4 How We Use Information

Information is used only to power the feature you are using, to keep the community dataset usable, and to keep the App working:

  • To deliver the feature you opened. Scan data drives the scanner and analyzer; measurements drive the speed test; local probes drive device discovery.
  • To build and moderate the community map. Contributions, votes and reports feed a moderation state machine and a quality score, so that entries which do not work fall away and entries which are reported are reviewed.
  • To prevent abuse. The install ID and request signature enforce rate limits and let us block an install that poisons the dataset.
  • To show ads in the free version, subject to the consent choice you make in the Google-provided consent form.
  • To honour a purchase by checking entitlement against Google Play.
  • To fix crashes and improve the App using aggregated diagnostics.
  • To answer you when you email us.

We do not build advertising or behavioural profiles of you ourselves, we do not combine data across Epsilon Developers apps, and we do not perform automated decision-making that produces legal or similarly significant effects.

5 App Permissions

Permissions are kept to the minimum the features actually need, and each is requested at the point of use rather than at first launch.

PermissionWhy it is neededWhen asked
NEARBY_WIFI_DEVICES
neverForLocation
Reading WiFi scan results on Android 13 and above. It is declared with the neverForLocation flag, which tells the OS the App does not derive your location from it. When you open the WiFi Scanner or any tool that needs a scan
ACCESS_FINE_LOCATION Three purposes: below Android 13 the OS returns no WiFi scan results at all without it; on every version the Map tab needs it to show where you are; and Android reveals the name of the Wi-Fi network you are connected to only to apps holding it, which WiFi Chat uses to label your network's room. Your position is never sent to other chat users. On entering the Map tab, after the in-app disclosure. Below Android 13, also for scanning.
ACCESS_COARSE_LOCATION
Android 12 and below only
Fallback for scan results on older releases. Capped at API 32 in the manifest. Same moment as fine location, on older devices
ACCESS_WIFI_STATE Reading scan results and the connected network's details. Read-only. Granted at install (normal permission)
CHANGE_WIFI_STATE Starting a scan, and handing a network to the system "add network" sheet when you tap Connect. Granted at install (normal permission)
INTERNET, ACCESS_NETWORK_STATE Speed test, map tiles, ads, purchases, contributions. Granted at install (normal permissions)
CAMERA Scanning Android's share-WiFi QR code to import a network into the vault. Nothing else uses the camera. When you open the QR scanner
CHANGE_WIFI_MULTICAST_STATE WiFi Chat on the same network. Many Wi-Fi drivers drop the broadcast packets phones use to find each other unless an app holds a multicast lock. It reveals nothing about you. Granted at install (normal permission)
BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, BLUETOOTH_CONNECT
Android 12+
Nearby (offline) chat only: finding, announcing to and connecting with phones close by over Bluetooth, through Google Nearby Connections. Together with NEARBY_WIFI_DEVICES on Android 13+, and location on Android 12 and below, which Android requires for Bluetooth discovery there. Only when you turn on Nearby chat, after an in-app explanation
BLUETOOTH, BLUETOOTH_ADMIN
Android 11 and below only
The older equivalents of the above, for Nearby chat on older releases. Capped at API 30 in the manifest. Granted at install (normal permissions)
POST_NOTIFICATIONS
Android 13+
Showing notifications: chat messages, new Wi-Fi spots near you, tips and announcements. Each kind can be switched off in Settings โ†’ Notifications. Not at first launch. On a later visit, or after you send your first chat message, behind an in-app explanation; you can decline.
FOREGROUND_SERVICE, FOREGROUND_SERVICE_CONNECTED_DEVICE Only for Stay reachable: keeping chat connected to phones on your Wi-Fi or nearby while the App is in the background. Always shown as an ongoing notification with a Turn off button. Granted at install; used only if you turn the option on
com.google.android.gms.permission.AD_ID Required by Google for access to the Android Advertising ID on Android 13 and above, used by AdMob. Granted at install (normal permission)

Permissions the App deliberately does not request

The App declares no QUERY_ALL_PACKAGES, no accessibility service, no SYSTEM_ALERT_WINDOW overlay, no background location, no contacts, storage-scope, SMS, call-log, or microphone permission.

Revoking a permission

You may revoke any permission at any time via Settings โ†’ Apps โ†’ WiFi Chat โ†’ Permissions. Revoking location disables the Map tab's "my location" and, on Android 12 and below, WiFi scanning. Revoking camera disables QR import. Revoking nearby devices / Bluetooth turns off Nearby chat; same-Wi-Fi chat keeps working. Everything else keeps working.

โœ…

Speed Test, Password Generator, Password Auditor, Vault, Router Access, History and Settings all work with no runtime permission granted.

6 Location & Prominent Disclosure

Location is the most sensitive permission the App asks for, so it is worth being exact about it.

6.1 What location is used for

  • Centring the map on where you are, so nearby community hotspots are the ones you see first.
  • Choosing which map tiles to fetch for the area on screen.
  • Stamping a contribution you choose to submit, with the coordinates rounded to 5 decimal places before they are stored or sent.
  • On Android 12 and below only, satisfying the operating system's requirement that an app hold location permission before it is allowed to read WiFi scan results at all.

6.2 What location is never used for

  • Background or continuous tracking. The App holds no background-location permission and starts no foreground service for location.
  • Building a location history or movement profile.
  • Location-targeted advertising by us. (Google AdMob independently infers a coarse country/region from your IP address โ€” see ยง9.)
  • Sale or transfer of location data to data brokers. We do not do this and have no commercial relationship of that kind.

6.3 Prominent disclosure

Before Android's runtime permission dialog appears, the App shows a dedicated in-app disclosure screen during onboarding that names the data (location), the purpose (finding nearby hotspots and placing a contribution) and whether it is shared. That screen carries no advertising, requests no permission itself, and cannot be swiped past without acknowledgement. This satisfies Google Play's prominent-disclosure requirement, and it is deliberately placed before the OS prompt rather than buried in this document.

๐Ÿ“

On Android 13 and above the scanner does not ask for location at all โ€” it uses NEARBY_WIFI_DEVICES with neverForLocation. You can use every scanning feature without ever granting location, and only lose the Map tab's "my location" marker and the ability to contribute.

7 Community Map & Shared Credentials

The community layer of the map is user-generated content. This section explains its privacy properties; the rules governing what may be posted are in the Community Guidelines, and network owners can request removal through the Network Owner Removal page.

7.1 What a contribution contains

When you contribute a hotspot you supply the venue name, venue type, security type and โ€” optionally โ€” the passphrase for a venue you are entitled to share. The App attaches the coordinates rounded to 5 decimal places (roughly one metre of precision removed) and the vendor OUI prefix. It attaches your install ID so the entry can be rate-limited and moderated.

7.2 What is deliberately not stored

  • Full BSSIDs are never stored. Only the first three octets โ€” the manufacturer prefix โ€” are kept. The server rejects a full MAC address outright rather than truncating it silently. A full BSSID is a stable identifier for a specific access point and, in aggregate, a location database; we do not want one and do not keep one.
  • Precise coordinates are never stored. Rounding happens on the device before transmission.
  • Your identity is never stored. There is no account, no email, no device identifier โ€” just the random install ID.

7.3 Permission attestation

Contributing requires you to affirm that you have the right to share the network in question. Sharing a passphrase you are not entitled to share is a violation of the Acceptable Use Policy and will result in removal and, on repetition, in your install being blocked from contributing.

7.4 Moderation

New entries appear on the map straight away, marked unverified, so that other people can try them and say whether they work. An unverified entry's passphrase is not released to anyone until two other installs confirm the entry works, or a moderator approves it. Depending on the moderation setting we operate at the time, a new entry may instead be published immediately with its passphrase, or held until a moderator approves it. Entries that accumulate negative reports are flagged and withdrawn from the map pending review, and an owner takedown request withdraws one at once. Removed entries are deleted from the published tiles immediately, and because tiles are replaced atomically rather than merged, a removed entry disappears from devices the next time they refresh that area rather than lingering in a stale cache.

7.5 Credentials for community entries

Where a community entry carries a venue passphrase, that credential is stored encrypted on the server and delivered per hotspot on request, rather than baked into the public tile. That is what makes a takedown effective: revoking one record removes it everywhere, instead of it surviving in every tile every device has already cached.

โš ๏ธ

Anything you contribute is public. Do not put your home network, your personal passphrase, or any information you would not post publicly into a contribution. Contributions are intended for venues that offer WiFi to their customers or the public.

7.6 Leaderboard and profile photos

Contributing earns points, and contributors appear on a public leaderboard covering the last ten days. Your entry shows the display name you choose, your avatar colour, a country flag and, if you add one, a profile photo. Leave the name blank and the leaderboard shows a generated "Contributor 1234" name instead. You can change the name, the colour and the photo at any time from your profile, and a change appears on the leaderboard within seconds.

A profile photo is optional. It is reduced on your device before upload, stored on our server under a name derived from its content, and shown to everyone who opens the leaderboard. Anyone can report a photo from the leaderboard; a photo reported by several people is hidden pending review, and a moderator can delete a photo and block the same image from being uploaded again. Remove your photo at any time from your profile; Delete everything removes it too.

โš ๏ธ

Your leaderboard name and photo are public. Don't use your full name or a photo you would not want strangers to see. Names that contain links are refused, and photos that break the Community Guidelines are removed.

7A WiFi Chat (Peer-to-Peer Messaging)

WiFi Chat lets you talk with people on the same Wi-Fi network, or close by with no network at all. It is built so that we are not part of the conversation: there is no chat server, and no message, contact list or chat identity is ever sent to us or stored by us.

7A.1 How messages travel

  • Same Wi-Fi. Phones on one local network find each other by broadcasting short presence packets on the local network and exchange messages directly. The traffic stays inside that network; it is not routed over the internet.
  • Nearby (optional). If you turn it on, Google Nearby Connections links your phone with phones close by over Bluetooth, Bluetooth Low Energy and Wi-Fi Direct. Google Play services provides the radio connection; message content is opaque bytes to it, and direct and group messages are encrypted before they are handed over. Phones may relay encrypted packets for each other so that people a few phones apart can still be reached.
  • Because there is no chat server, messages can only arrive while the App is running. For a few minutes after you leave the App it keeps listening and shows a notification for new messages. If you turn on Stay reachable (Settings โ†’ Notifications, off by default), it keeps listening in the background, with an ongoing notification you can turn off at any time. Chat notifications are created on your phone from messages your phone received; no message passes through us or through a push service. A direct message to someone who is out of range waits on your phone until you are both in range with the App running.

7A.2 Who can see what

ItemWho receives it
Your presence โ€” display name, avatar colour, photo key, chat public keys, chat IDPhones running the App on the same Wi-Fi network (and nearby, if Nearby is on), while you are visible. Turn off Show me to people on my Wi-Fi in Chat settings to stop announcing yourself.
Network room messagesPublic: everyone with the App on that network. Each message is signed so it cannot be forged, but it is not secret. The App shows this notice inside every room.
Private group messagesOnly the group's members. Encrypted with AES-256-GCM under a group key created on the creator's phone and delivered to each member inside an end-to-end-encrypted invitation.
Direct messagesOnly you and the other person. End-to-end encrypted: X25519 key agreement, HKDF-SHA256 and AES-256-GCM with a fresh random nonce per message.
Read receipts and typing indicatorsThe people in that conversation. Both can be turned off in Chat settings.
Your locationNobody. Chat never sends your position. Network rooms are identified by a short hash, not by the network's name.

7A.3 Identity and verification

Your chat identity is a pair of keys generated on your phone and held in Android's hardware-backed Keystore; your chat ID is derived from the public key, so nobody can claim it without your device. Every packet is signed with that key and checked by the receiving phone. Each direct conversation shows a safety code derived from both people's keys; if the codes match on both phones, nobody is in between.

7A.4 Storage and deletion

Messages are stored in a local database on each phone in the conversation, up to the newest 2,000 per conversation. Deleting a message, clearing a chat or deleting a chat removes it from your phone only; the other phones keep their copies, exactly as with a letter you have sent. Chat settings โ†’ Delete all chats and Settings โ†’ Privacy โ†’ Delete everything erase every chat, remembered person and your chat keys, and give you a new chat identity.

7A.5 Safety, blocking and what we cannot do

You can block anyone from their profile card or a chat's menu; their packets are then dropped by your phone and they can no longer see you online. They are not told. Because chats never pass through us, we cannot read, moderate, retrieve, restore or disclose any message, including in response to a legal request โ€” there is no copy for us to have. The rules for conduct in chat are in the Community Guidelines. If you receive threats or illegal content, block the sender and, where appropriate, report it to local authorities with screenshots from your phone.

โš ๏ธ

Treat people in rooms as strangers. Do not share passwords, financial details, your home address or other sensitive information in network rooms or with people you do not know. A shared-network card in chat never contains a password.

8 Password Vault & Encryption

The vault holds network credentials that you typed, generated in the App, or scanned from Android's own share-WiFi QR code. It is entirely local.

8.1 How entries are protected

  • A random 256-bit key is generated on your device and held in flutter_secure_storage, which on Android is backed by EncryptedSharedPreferences โ€” the key material is wrapped by the Android Keystore and does not leave the device.
  • Each passphrase is encrypted with AES-256 in counter mode under a per-entry nonce, then authenticated with an HMAC-SHA256 tag computed over nonce โ€– ciphertext. Encrypt-then-MAC means a tampered record fails to verify rather than decrypting to garbage.
  • Only the ciphertext is written to the local database. The key is never written into it.
  • Nothing in the vault is uploaded, synced, backed up to our servers, or shared with any third party.

8.2 What this protects against, and what it does not

This design protects your vault against another app reading the database file, and against an attacker who obtains the database without the Keystore-held key. It does not protect against malware running with root privileges on your device, nor against someone who has your unlocked phone in their hands. Keep a screen lock enabled.

8.3 Device backup

Where Android's backup mechanism is enabled on your device, encrypted values may be included in a device backup by the operating system. That backup is governed by Google's terms, not ours, and the ciphertext remains unreadable without the corresponding Keystore key.

9 Advertising & Consent

The free version of WiFi Map & Chat displays advertising supplied by Google AdMob. Advertising is removed entirely for anyone holding the Remove Ads or Pro purchase.

9.1 What AdMob receives

  • Android Advertising ID (AAID) โ€” a resettable identifier you control
  • IP address, used for ad delivery and coarse country/region inference
  • Device model, OS version, language, screen characteristics
  • Ad interaction and performance events (impression, click, completion)
  • The consent choices you made in the Google consent form

This information is processed by Google under Google's own privacy policy. We do not control it, and we do not receive the underlying identifiers back.

9.2 Consent (UMP)

The App initialises Google's User Messaging Platform before any ad is requested. Where you are in the EEA, the UK, Switzerland, or a US state with an applicable privacy signal, UMP presents the appropriate consent or preference form and records your choice. If consent cannot be resolved, the App treats that as a refusal and does not request ads โ€” it does not fall back to serving them anyway.

You can revisit your choice at any time from Settings โ†’ Privacy โ†’ Ad privacy options inside the App.

9.3 Mediation partners

AdMob mediation may be used to fill inventory from additional advertising networks. Where mediation is active, the participating networks receive the same categories of advertising data listed above under their own privacy policies. The current mediation partners are listed on the Data Safety Declaration page and kept up to date there.

9.4 Opting out

  • Reset or delete your Advertising ID: Android Settings โ†’ Privacy โ†’ Ads. Deleting it stops personalised advertising; you will still see non-personalised ads.
  • Change your consent choice in the App at Settings โ†’ Privacy.
  • Remove ads entirely with a one-time purchase (ยง12).

9.5 How ads behave

Rewarded advertising is always opt-in, always states the reward before it plays, and always presents a decline option at equal visual weight. No core feature of the App sits behind an advertisement. No advertisement is shown on the consent screen, the prominent-disclosure screen, a permission screen, the paywall, or while a measurement is running.

10 Analytics & Diagnostics

The App uses Firebase Analytics, Firebase Crashlytics, Firebase Remote Config and Firebase Cloud Messaging.

ServiceWhat it is forWhat it receives
AnalyticsUnderstanding which features are used and how often, so development effort goes to the right places, and measuring the effect of ad-frequency settings on retention.Screen views, feature-open events, ad outcomes, session length, purchase funnel events, a Google-generated app instance ID
CrashlyticsDiagnosing crashes and non-fatal errors.Stack trace, device model, OS version, locale, app version, and a breadcrumb trail of recent screens
Remote ConfigAdjusting ad frequency caps, feature flags and kill switches without shipping a new release.A configuration fetch; no personal data is sent
Cloud MessagingDelivering announcements and offers, and area news such as new Wi-Fi spots, to everyone who has those notifications on.A Google-generated messaging token for this install, and the topics it is subscribed to: language, which notification kinds are on, and โ€” only if new-spots notifications are on โ€” a coarse area of roughly 150 km. We do not store the token, and messages are sent to topics, never to an individual.

Notifications made on your phone

Most notifications are created by the App itself, on your device, with nothing sent to us: chat messages; a short note when you join a Wi-Fi network (the App does not read the network's name for this); new spots on the public map around where you last opened the Map tab, checked against the same public map files the Map tab downloads; and occasional reminders if you have not opened the App for a while, which stop after 30 days. Reminders, Wi-Fi notes, new-spot alerts and "someone joined your Wi-Fi" alerts are limited to a few a day in total and are held back during quiet hours. All of these can be turned off individually, or all at once, in Settings โ†’ Notifications, or in Android's own notification settings. Delete everything cancels every scheduled notification.

Analytics events are not tied to your name, email or any identifier you supplied, because you never supplied one. Crash reports are used to fix defects and are not used to build a profile of you.

Turning analytics off

Analytics collection follows your advertising consent choice. If you decline consent in the Google-provided form โ€” or if consent cannot be resolved โ€” analytics is switched off along with advertising, and Firebase is instructed to reset the app instance ID. You can revisit that choice at Settings โ†’ Privacy โ†’ Ad privacy options, which appears wherever privacy law entitles you to change it.

You can also stop collection entirely by revoking the App's network access at the operating-system level, or by uninstalling. A dedicated analytics switch, independent of ad consent, is planned; this Policy will be updated when it ships.

โ„น๏ธ

If a build ships without Firebase configuration, Analytics, Crashlytics and Remote Config all no-op silently and the App runs on compiled-in defaults. In that state no analytics data is collected at all.

11 Third-Party Services

Each service below operates under its own privacy policy. We have no control over their practices and encourage you to read them.

๐Ÿ“Š Google AdMob

Serves advertising in the free version. Receives the Advertising ID, IP address and ad interaction events.

Google Privacy Policy โ†—

๐Ÿ›ก๏ธ Google User Messaging Platform

Collects and records your advertising consent choice where privacy law requires one.

Google Privacy Policy โ†—

๐Ÿ›’ Google Play Billing

Processes the two one-time purchases. Your payment details are handled entirely by Google and never reach us.

Google Play Terms โ†—

๐Ÿ—บ๏ธ Google Maps SDK for Android

Renders the map. Google receives the map requests your device makes, including the viewport being displayed.

Google Privacy Policy โ†—

๐Ÿ”ฅ Firebase (Analytics, Crashlytics, Remote Config, Cloud Messaging)

Usage analytics, crash diagnostics, server-tunable configuration and push notifications.

Firebase Privacy โ†—

โšก Cloudflare โ€” speed measurement

Speed tests connect to Cloudflare's public measurement endpoints. Your IP is visible to Cloudflare as part of the request.

Cloudflare Privacy โ†—

โ˜๏ธ Cloudflare โ€” our infrastructure

Our own edge API and its storage run on Cloudflare Workers, D1, R2 and KV. Cloudflare is our processor and acts on our instructions.

Cloudflare Privacy โ†—

๐Ÿ“ฆ Google Play Services

Underlying Android platform services used for purchase verification, ads and maps.

Google Privacy Policy โ†—

โ–ฒ Vercel

Hosts this website. Vercel processes standard web server request logs, including IP address and user agent.

Vercel Privacy โ†—

We do not sell personal information, and we do not share it for cross-context behavioural advertising beyond the advertising described in ยง9, which is subject to your consent choice.

12 In-App Purchases

WiFi Map & Chat offers two one-time, non-consumable products. There is no subscription and nothing auto-renews.

ProductIdentifierWhat it does
Remove Adswifichat_remove_adsRemoves banner, native, interstitial and app-open advertising permanently.
Prowifichat_proEverything in Remove Ads, plus all optional depth features unlocked permanently without watching anything.

All payment processing is performed by Google Play Billing. We receive only the purchase state, product identifier and purchase token. We never see or store your card number, billing address, bank details or Google account.

Entitlement is stored locally and re-verified against Google Play. Refunds are governed by the Purchase & Refund Policy.

13 Data Retention

DataRetainedUntil
Scan history, speed test history, heatmaps, deep-scan reportsOn your deviceYou clear them in Settings, or uninstall the App
Vault entriesOn your device, encryptedYou delete the entry, clear all data, or uninstall
WiFi Chat messages, conversations and remembered peopleOn your device, and on the other phones in each conversationYou delete them (per message, per chat, or all), or uninstall. Each conversation keeps at most its newest 2,000 messages. Copies on other people's phones are under their control.
Chat keysOn your device, in the Android KeystoreDelete all chats, Delete everything, or uninstall
Map tile cacheOn your deviceRefreshed after 6 hours, or when you refresh the map; dropped after 7 days unused
Queued contributions awaiting uploadOn your deviceUploaded, or cleared by you
Published community hotspot entriesOur serverRemoved on takedown, on moderation rejection, or when quality score collapses
Votes, reports and speed samplesOur serverRetained while the parent hotspot exists; deleted with it
Install ID against server recordsOur serverDeleted on a verified deletion request, or with the records it is attached to
Leaderboard entry โ€” display name, avatar colour, country, region, pointsOur serverDeleted automatically ten days after your last contribution
Profile photoOur serverUntil you remove it, use Delete everything, ask us to delete it, or a moderator removes it
Profile photo reportsOur serverKept while the photo exists; a moderator's ban keeps only the image's fingerprint, so the same file cannot be uploaded again
Abuse and rate-limit countersOur serverRolling window, typically 30 days
Analytics eventsFirebasePer Google's retention setting for the project, currently 14 months
Crash reportsFirebase Crashlytics90 days, per Google's default
Support email correspondenceOur mailbox24 months, then deleted

Where a longer period is required to comply with a legal obligation, to resolve a dispute, or to enforce our agreements, we retain the minimum necessary for that purpose and no longer.

15 Your Rights

Depending on where you live, you may have the right to access, correct, delete, restrict, port or object to the processing of your personal data, to withdraw consent, to nominate another person to exercise your rights on your behalf (DPDP), and to complain to a supervisory authority. Because the App holds almost everything locally and has no account, most of these you can exercise directly and instantly:

๐Ÿ—‘๏ธ

Delete your data

Settings โ†’ Privacy โ†’ Delete everything wipes history, vault and cached tiles immediately, and removes your leaderboard photo from our server.

๐Ÿ“‹

Access your data

Everything the App holds about you is visible in History, Vault, Reports and your Profile. There is no hidden profile: your leaderboard name and photo are exactly what everyone else sees.

๐Ÿ“ค

Port your data

Deep-scan reports and heatmaps export as files you keep. Ask us for any server-side record tied to your install ID.

๐Ÿšซ

Opt out of ads

Change your consent choice in Settings, reset your Advertising ID, or buy Remove Ads.

๐Ÿ“Š

Turn off analytics

Analytics follows your ad consent choice โ€” decline it, and no events are sent. Settings โ†’ Privacy โ†’ Ad privacy options.

๐Ÿ“

Revoke location

Android Settings โ†’ Apps โ†’ WiFi Chat โ†’ Permissions. The Map tab degrades; nothing else does.

๐Ÿ—บ๏ธ

Remove a contribution

Report the entry in-app, or use the Network Owner Removal form for a network you control.

โœ‰๏ธ

Ask us anything

contact@epsilondevelopers.xyz โ€” we reply within 7 business days.

To exercise a right that needs our involvement, email contact@epsilondevelopers.xyz with enough detail to locate the record โ€” for server-side data, that means your install ID, which is shown at Settings โ†’ About this app, then long-press the version number. We do not ask for identity documents; the install ID is the only thing that ties a server record to a device, and possession of it is what we can verify.

If you are unsatisfied with our response you may complain to your local supervisory authority โ€” in India, the Data Protection Board of India; in the EEA or UK, your national data protection authority.

16 Deleting Your Data

There are three routes, and full instructions are on the Data Deletion page.

  1. In-app, immediately. Settings โ†’ Privacy โ†’ Delete everything removes every local database โ€” including all chats and your chat keys โ€” the vault (including its encryption key), cached tiles and queued uploads, and asks our server to remove your leaderboard photo. If you are offline at that moment, the photo is removed the next time you open your profile with a connection.
  2. Uninstall. Android's sandbox model removes all App data on uninstall.
  3. Server-side records. Email us your install ID and we will delete the contributions, votes, reports, speed samples, leaderboard entry and profile photo associated with it, within 30 days. Published hotspot entries that other users have since corroborated may be retained in de-identified form, with your install ID severed from them, so that the community dataset does not lose verified public venue information โ€” you may still request full removal of a specific entry and we will action it.
๐Ÿ†”

Your install ID is a random UUID with no connection to your identity. It is the only handle we have on server-side data, so quoting it is what lets us find and delete that data.

17 Children's Privacy

The App is not directed to children. It is rated for a general audience, is not enrolled in Google Play's Designed for Families programme, and is not tagged for child-directed treatment in AdMob.

We do not knowingly collect personal data from a child under 13, or under the higher age of digital consent applicable where you live โ€” 16 in several EEA states, and 18 under India's DPDP Act, which requires verifiable parental consent for a child's personal data and prohibits behavioural advertising directed at children.

WiFi Chat lets people talk with others nearby whom they may not know. It is intended for users aged 13 and over (or the higher age above, where it applies), and the App's content rating reflects that users can interact.

If you believe a child has used the App and that personal data has been collected, write to contact@epsilondevelopers.xyz and we will delete it promptly.

18 International Data Transfers

We are based in India. The infrastructure we use is globally distributed:

  • Cloudflare Workers, D1, R2 and KV run at edge locations worldwide; requests are typically served from the point of presence nearest to you.
  • Google (AdMob, Firebase, Play Billing, Maps) processes data in Google's global infrastructure, principally the United States and the EEA.
  • Vercel serves this website from its global edge network.

Where personal data is transferred out of the EEA or UK, the transfer relies on the safeguards our processors maintain โ€” principally the European Commission's Standard Contractual Clauses, the UK International Data Transfer Addendum, and, where applicable, the EUโ€“US and UKโ€“US Data Privacy Framework certifications held by those providers. Under the DPDP Act, transfers are made to jurisdictions not restricted by the Central Government.

19 Security

Measures in place include:

  • TLS on every network request the App makes.
  • AES-256 encryption with HMAC-SHA256 authentication for vault entries, under a key held in Android's hardware-backed Keystore (ยง8).
  • HMAC request signing and per-install rate limits on every write to our server.
  • Signed chat packets (Ed25519) and end-to-end encryption for direct and group chats (X25519 + HKDF-SHA256 + AES-256-GCM), with keys held in Android's Keystore (ยง7A).
  • Server-side encryption of community venue credentials, delivered per hotspot rather than embedded in public tiles.
  • Data minimisation by design โ€” coordinates rounded before transmission, full BSSIDs rejected at the server, no accounts to breach.
  • Android application sandboxing, which keeps local data inaccessible to other installed apps.

No method of electronic storage or transmission is perfectly secure. We do not claim absolute protection, and you remain responsible for the security of your own device, screen lock and network.

20 Breach Notification

If a personal data breach occurs that affects data we control, we will:

  • notify each affected user without undue delay, by in-app notice and โ€” where we have an address โ€” by email;
  • notify the Data Protection Board of India as required by the DPDP Rules 2025, including an initial intimation without delay and a detailed report within the prescribed period;
  • notify the competent supervisory authority within 72 hours where the GDPR or UK GDPR applies;
  • describe what happened, what data was involved, what we are doing about it, and what you should do.

Because the App holds no accounts, no passwords of ours, no email addresses and no payment data, the realistic blast radius of a breach of our systems is the community hotspot dataset and the install IDs attached to it.

21 What This App Cannot Do

These limits are technical facts about Android, stated here because apps in this category frequently imply otherwise:

๐Ÿšซ

It cannot read the passwords already saved on your phone. There is no API on a non-rooted Android device that exposes a saved network's passphrase. The App contains no such capability, the native bridge exposes no such method, and the vault holds only what you typed, generated, or imported from Android's own share-WiFi QR code.

๐Ÿšซ

It cannot recover, guess, crack or brute-force anybody's WiFi password. No feature attempts it, and none ever will. Any app claiming to do so is either fabricating the result or breaking the law.

๐Ÿšซ

It cannot connect you to a network silently. Joining a network always ends in a system dialog that Android controls and you confirm. If you decline that dialog, nothing happens.

The word "Unlocker" in the App's name refers to unlocking access to public and community-shared WiFi โ€” venue passwords contributed by people entitled to share them, and QR codes you scan yourself. It does not refer to defeating anyone's security.

22 Authorized Use Notice

The App is intended for educational, diagnostic, security-awareness and authorized network administration purposes. You are solely responsible for obtaining every permission, consent and authorization required before analysing, probing, monitoring or connecting to any network, device or host using the App.

By using any feature โ€” the WiFi Scanner, Channel Analyzer, Who's On My WiFi, Ping & Traceroute, DNS & IP Info, Router Access, Network Deep Scan, the Vault or the community map โ€” you confirm that you have the legal right to use that feature against the target in question. Detailed rules are in the Acceptable Use Policy.

23 This Website

This website is a set of static pages hosted on Vercel. It:

  • sets no cookies and uses no local storage;
  • runs no analytics, no tag manager, no advertising pixel and no third-party tracker;
  • loads no third-party fonts or scripts โ€” the stylesheet and the small amount of JavaScript are served from this domain;
  • embeds no social widgets and no comment system.

Vercel, as our hosting provider, processes ordinary web server request logs โ€” IP address, user agent, requested path, timestamp โ€” for delivery, security and abuse prevention. That processing is governed by Vercel's privacy policy. We do not receive or analyse those logs for marketing.

Because no cookies are set, no cookie banner is required or shown.

24 Changes to This Policy

We may update this Policy as the App changes or the law does. When we do, we update the "Last updated" date at the top of this page. For material changes โ€” a new category of data, a new recipient, or a new purpose โ€” we will also show an in-app notice and, where consent is legally required for the change, ask for it again rather than assuming it.

Changes take effect on publication. Continuing to use the App after a change means you accept the updated Policy; if you do not, you can stop using the App and uninstall it.

25 Contact & Grievances

Publisher
Epsilon Developers โ€” independent software publishers
Operated by
Satyam Kushwaha & Anurag Mahajan
Country
India
Role under DPDP
Data Fiduciary
Grievance contact
contact@epsilondevelopers.xyz
Response time
Within 7 business days; formal grievances resolved within 30 days

Please put "Privacy request" in the subject line, and include your install ID if the request concerns server-side data. If you are dissatisfied with the outcome, you may escalate to the Data Protection Board of India or to your local supervisory authority.

Questions about your privacy?

Privacy requests, data deletion, takedowns and support all reach the same inbox. We aim to reply within 7 business days.

โœ‰๏ธ contact@epsilondevelopers.xyz