KingFisher Labs

Waggle Privacy

Effective August 14, 2026; updated October 15, 2026

Waggle has no KingFisher Labs account, advertising, or third-party analytics SDKs. Waggle plays offline, and so does Duel, its two-player mode on one device; it uses Apple services only for the Game Center daily challenge, achievements, and iCloud progression sync, and stores what it needs to play and preserve progress on your device. Two things send information to KingFisher Labs, both hosted on Cloudflare. Rush, the head-to-head mode in Waggle and the separate Waggle Rush app, uses a live-room service that holds a challenge for the two people playing it and recognises each app installation that uses it. Waggle’s Report a Problem button, when you choose to use it, sends a recording of a solo game to a report service and then opens an email to us with a link to it. This policy covers Waggle, Waggle Rush, and both services.

Information Waggle uses

Waggle keeps game state, preferences, progress, best scores, runs, streaks, achievements, and teaching history on your device. A paused game and device preferences such as sound and haptics stay local to that device.

Game Center

If you use Game Center, Apple authenticates you and hosts player identifiers, friend relationships, daily scores, leaderboard entries, and achievements. Waggle uses these features for friend-scoped daily results and achievement progress. KingFisher Labs does not operate a separate server for them.

Game Center participation is optional; daily play remains available if Game Center is unavailable or declined. Apple controls Game Center accounts and its handling of that information.

iCloud progression

When iCloud key-value storage is available, Waggle uses it to sync earned progression between devices: all-time statistics, best score and run, daily streak, achievement ownership, and completed teaching steps. A paused run and device preferences are not synced this way.

This sync is best-effort. Without an available iCloud account, the same information remains on the device and the game still works.

Duel

Duel is Waggle’s two-player mode for one iPad or an open iPhone Duo: both players share the device, each with their own half of the screen. A Duel is played entirely on that device. It does not connect to the Rush live-room service or any other KingFisher Labs service, does not use Game Center, and is not recorded for Report a Problem. Duel words and scores are not kept after the game and do not count toward your statistics, achievements, or iCloud progression. Waggle remembers only how you last seated the players around the device, and that setting stays on the device.

Rush live rooms

A Rush challenge is played in a room on a KingFisher Labs service run on Cloudflare, at rush-live.kingfisherlabs.dev. The room deals the same board to both players, lets them play together or take their turns at different times, relays scores, and produces the result once both turns finish. A room exists only for the challenge it was created for.

For each challenge the room stores the challenge parameters (its identifier, duration, creation time, and dictionary and rules versions), the board it dealt, and for each player: a display name and where it came from, a session token the room issued so the same device can reconnect to its seat, ready and start times, the running score, every accepted word with its points and timing, the sequence of moves made during the run, the final result, and whether the room verified that result by replaying the moves itself.

The display name is either your Game Center alias or a Waggle name. In Waggle, a player signed in to Game Center is shown by their alias unless they choose a Waggle name instead. A Waggle name is a two-word name drawn from a list we wrote and reviewed; it is not derived from you or your device, and you can draw another at any time. The Waggle Rush app and its App Clip have no Game Center, so every player there is shown by a Waggle name. The choice and the drawn name are remembered on the device so a friend sees the same name across rematches. No account identifier travels to the room: not a Game Center player ID, Apple ID, or email address. Requests to the service do carry the installation credential described below, which the room itself does not store.

The other player can see your play information: your name, live score and word count during play, and afterwards your words, result, and moves so their device can replay your run. The full report, with both players’ words and moves, is released only to the two devices that sat in the room, each of which proves its seat with a token the room issued to it. Anyone who holds the challenge link can see the room’s state, which includes both players’ names and scores, and their best words after the room finishes, so share a link only with the person you mean to play.

Rooms are deleted in full 7 days after they are created, whether or not the challenge was finished. There is no earlier per-room deletion control in the app; to ask for a room to be removed sooner, email the address below with the challenge link.

The service records a count of room events (created, joined, started, finished, expired) with the two final scores and the dictionary version for capacity and reliability monitoring. These counts carry no names, identifiers, or words. The service also keeps operational counts of how much work each room did and whether requests were admitted, again without names or identifiers. Request limits are applied per installation, with the connecting IP address as a backstop against floods; Cloudflare handles request and operational logs under its own terms and the service’s logging configuration, and KingFisher Labs does not store IP addresses in rooms or installation records.

Versions of Waggle and Waggle Rush released up to October 15, 2026 also send the room a short timing trace when a player taps Play Again after a challenge, which we used to fix slow rematches: a random trace identifier, the app version and build, the room and next-room identifiers, and the name and elapsed time of each Play Again step. The trace carries no names, words, or scores, is stored in the room, and is deleted within 7 days. Later versions do not send these traces.

Your device keeps a history of your challenges, including any cached report, so results can be shown when you return. A result you have already looked at is dropped after three days; a challenge still waiting on the other player is kept until its room expires; a result you have not yet opened is kept until you open it. Deleting the app removes this history entirely.

Rush installation identity

So that one installation cannot flood the service or take more than its fair share of play, each installation of Waggle, Waggle Rush, or the Waggle Rush App Clip registers itself with the live-room service before it first uses Rush. The app creates a key in the device’s Secure Enclave and asks Apple’s App Attest service to vouch that the key belongs to a genuine copy of the app on a genuine Apple device. Apple handles that check under its own terms; KingFisher Labs receives only the resulting attestation.

The service keeps an installation record: a random installation identifier it assigns, the attestation key identifier and public key, which app registered (Waggle, Waggle Rush, or the App Clip), whether it is a test or production build, a counter that detects replayed proofs, the times the record was created and last refreshed, and whether the installation has been blocked for abuse. The record holds no name, account, contact detail, or device serial, and it is not linked to any room: rooms record only seats, names, and play, and the installation record does not list the rooms an installation played.

Using that record, the service issues the app a credential that lasts one hour and is sent with each request to the service. The credential identifies the installation, not you, and is refreshed by proving possession of the key again. The private key never leaves the device: it stays in the device Keychain and is not backed up or synced. iOS may keep Keychain items after an app is deleted, so reinstalling on the same device can resume the same installation record rather than create a new one; erasing the device removes the key. When the App Clip hands off to the full Waggle Rush app on the same device, the installation carries over through the app group so the player is not treated as a newcomer.

Installation records are kept while the installation remains registered; there is no automatic expiry today. The record is not tied to your name or any account, and the app does not currently display its installation identifier, so we cannot look a record up from who you are. If you want an installation record removed, email the address below and we will work out with you how to identify it.

Reporting a problem

Waggle records each solo game as it is played so that, if something goes wrong, you can send us the evidence. The recording is a sequence of engine states: every board, every word played or rejected and the path it took, scoring and mold events, how long each action took, the in-game messages shown to you, and app events such as the game going into the background. It also carries diagnostic details about the software: the Waggle version and build, your device’s operating system version, the dictionary and rules the run used, and any recording problems. It holds no name, account, contact detail, device identifier, or location. Only solo games are recorded. Rush challenges and Duel games are not, and the Waggle Rush app and App Clip have no recording or report feature; what a Rush room keeps about a challenge is described under Rush live rooms above.

Recordings stay on your device and are not uploaded automatically. The app keeps them for about a week: when a new game starts, recordings older than seven days are removed, and deleting the app removes them all. Nothing leaves the device until you open Report a Problem, choose the current game or one of your recent games, optionally add a note describing what went wrong, and tap Send Report. The note is free text. We add nothing to it, so anything personal reaches us only if you write it, and it becomes part of the report that others can read as described below.

Sending uploads the recording and your note to KingFisher Labs’ report service at waggle-solo-reports.ptaylor.workers.dev, which stores them in a private Cloudflare bucket and returns a link. The link contains a random, unguessable token and nothing about you. Anyone who has the link can open the report page and download the original file, so treat a shared link as public. The report page uses no analytics or third-party content, tells search engines not to index it, and the service does not log report contents. It uses the connecting IP address only to limit how often one address can upload or download, keeping that limit under a keyed hash rather than the address itself, and it stores no IP address with a report.

Once the report has uploaded, Waggle opens an email to support@kingfisherlabs.dev with the subject “Waggle Problem Report” and the report link in the body, using Mail or your default email app; if no email app is available, it offers to share the link instead. The email is yours to send, edit, or discard. The report is already uploaded by then, so discarding the email does not withdraw it. Waggle never sees which email account you send from.

There is no public list of reports. KingFisher Labs reviews incoming reports through a private, access-controlled list on the same service, which shows a short summary of each one: when it was sent, the app build, the game mode and level, the word count, and the start of your note. We may use AI coding assistants, such as OpenAI Codex and Anthropic Claude, to help read a report and trace the problem in our code. Notes we make while reviewing a report, such as what we found and a link to our own bug record, are stored separately and may be kept after the report itself is deleted.

A report can be read for 30 days after it was first sent; after that the service refuses the link, and a Cloudflare lifecycle rule deletes the stored file, normally within a day of the 30-day mark. Sending the same unchanged report again returns the same link and does not extend its life. There is no in-app control to delete a report early; to have one removed sooner, email the address below with the link, since the link is the only way we can find it.

Motion and sharing

Waggle reads device-motion information locally to create subtle visual tilt effects. Motion readings are not sent to KingFisher Labs.

Sharing is initiated by you. Waggle prepares the score, image, replay, Rush challenge link, or game report link you choose and hands it to the iOS share sheet; the destination you select, such as iMessage, then handles it under that service’s terms. A challenge link carries the room identifier and its signature, not your name.

Your choices

You can decline Game Center and continue playing. You can also turn off motion effects through Reduce Motion behavior. In Rush you can play under a Waggle name instead of your Game Center alias, and you can choose not to play Rush at all; nothing is sent to the live-room service, and no installation is registered, until you create or accept a challenge. Nothing is sent to the report service unless you tap Send Report in Report a Problem, and you decide what, if anything, to write in the note, whether to send the email that follows, and whom to give the link to.

Waggle’s reset control removes its progression keys from the current device and iCloud, but it cannot revoke achievements already recorded by Game Center. Because iCloud key-value storage has no cross-device deletion lock, another device may restore its own copy of progression when it next syncs.

Deleting the app removes its local container, but synced iCloud or Apple-hosted Game Center information may remain. Apple account settings control Apple-hosted data.

Website privacy

This website uses Cloudflare Web Analytics to measure visits and page performance. It has no advertising trackers, accounts, or forms. Cloudflare serves and protects the site and may process ordinary request and security information, such as an IP address and request headers, under its own privacy terms.

Children’s privacy

Waggle does not include advertising, a KingFisher Labs account, or any chat between players. The only free text in the game is the optional note in Report a Problem, which goes to KingFisher Labs and to anyone the report link is shared with, never to other players in the game. The only information a Rush room holds about a player is a display name, which can be a reviewed Waggle name rather than a Game Center alias, and game play; the installation record holds a key and an identifier, never a name. Apple’s family, Game Center, and privacy settings govern Apple services used by a child’s account.

Changes to this policy

We will update the date above when this policy changes. Material changes to Waggle’s or Waggle Rush’s data practices are reflected here no later than the release of the affected version.

Contact

For privacy questions about Waggle, Waggle Rush, or this website, email support@kingfisherlabs.dev.

Waggle licences and data