WaveDigger helps users discover the physical locations of wireless signals by accepting a Wi‑Fi access point’s BSSID (MAC address) or cellular tower parameters (LTE MCC, MNC, TAC, Cell ID; 5G NR MCC, MNC, TAC, NCI) and querying Apple’s public Wireless Location Service (WLOC) API. The application is built with Next.js 15, TypeScript, and uses deck.gl with react‑map‑gl for an interactive map visualization, and is publicly available at wavedigger.networksurvey.app. It is released under the GNU Affero General Public License v3.0 and acknowledges that its core functionality rests on the research and reverse‑engineering work of the apple‑corelocation‑experiments team.

Under the hood, WaveDigger communicates directly with Apple’s real WLOC endpoint at https://gs-loc.apple.com/clls/wloc using Protocol Buffers (protobuf) for request serialization. It handles Apple’s specific coordinate encoding, where latitude and longitude are transmitted as int64 values with eight decimal places of precision, and supports both the default and China region endpoints. This implementation relies on the protobuf definitions and API documentation reverse‑engineered by the apple‑corelocation‑experiments project, which also documented the required initial bytes prefix for valid requests to the service.

The tool validates and accepts BSSID in common formats (AA:BB:CC:DD:EE:FF, AA-BB-CC-DD-EE-FF, or AABBCCDDEEFF) and, for cellular towers, allows lookups of LTE cells by MCC, MNC, TAC and Cell ID, or 5G NR cells by MCC, MNC, TAC and NCI. NR queries additionally return the target cell together with surrounding NR cells in the same tracking area code. Results are plotted on a deck.gl‑powered map, and the interface includes a search history for quick access and a responsive layout that works on desktop and mobile browsers.

Screenshot of WaveDigger showing BSSID search field and interactive map with location pin.
WaveDigger interface displaying a queried BSSID and resulting location on the map.github.com

Illustrates the web interface described in the article where users enter network identifiers and view results on an interactive map.

While the service can locate many devices, the README notes that not every BSSID is present in Apple’s database; newly deployed or privately managed access points may lack location data, so some queries will return no result. This limitation is inherent to the reliance on Apple’s crowdsourced WLOC database rather than a guarantee of universal coverage, and users may need to consult alternative sources or wait for the database to be updated for newer or private equipment.