Yamb is an online dice game. This policy explains what data the game processes, why, who can see it,
how long it is kept and what you can do about it. It applies to the Yamb mobile app, the web game at
yamb.gg and the server they both talk to (api.yamb.gg). We wrote
it to describe exactly what the software does — no more and no less.
- You can play as a guest without giving us any personal details. A guest is identified only by a random ID stored on your device.
- If you create an account, we store your e-mail, name and avatar (from Google, Apple or the registration form) so that your games, statistics and settings follow you across devices.
- Other players see your in-game name, your score sheet and what you type in the table chat — that is the game.
- We keep anonymous-level usage statistics (country, city, device type, what happened in a game). We do not run ads and we do not use tracking or advertising SDKs.
- You can delete your account from within the app at any time.
1. Who is responsible 2. What we process 3. Why 4. Who sees it 5. Service providers 6. How long we keep it 7. Your rights 8. Security 9. Children 10. Changes 11. Contact
1. Who is responsible
The controller of your data is [FULL LEGAL NAME], an individual developer based in Serbia (“we”, “us”). You can reach us at [CONTACT EMAIL]. Serbian data protection law (the Law on Personal Data Protection) applies to us; where you are in the European Economic Area or the United Kingdom, the GDPR / UK GDPR applies to our processing of your data as well.
2. What we process
2.1 Playing as a guest
When you open the game without signing in, the server assigns your device a random identifier
(guest:<random UUID>). It is stored on your device (in the app’s secure storage, or as a
cookie on the website) and sent back on every connection so that the game recognises your seat at a table,
lets you resume an unfinished game and shows you your own match history. It is not linked to your name,
e-mail or any other personal detail unless you later sign in. Uninstalling the app (or clearing site data
in the browser) removes it; a new one is created next time.
2.2 Account data
If you create an account, we store:
- E-mail address and display name, and an avatar image URL if your sign-in provider supplies one.
- Password — only if you register with e-mail and password. It is stored as a salted hash (scrypt), never in plain text.
- Sign-in provider link — for Google or Apple sign-in, the provider’s account identifier for you and the tokens the provider issues to confirm the sign-in. Apple may give us a private relay e-mail instead of your real one; that is fine with us.
- Sessions — each signed-in session records when it was created, when it expires, the IP address and the browser or device identifier (user agent) of the request that opened it. Sessions last 7 days and are extended while you keep using the game.
- Role (player or administrator) and, once available, your Yamb Extra entitlement (whether it is active, since when, through which store and which tier).
- Device seat — a signed-in player gets one seat identifier per device (
user:<account id>:<random device id>) so the game can tell your phone from your tablet. It is held in a signed token on the device for 7 days and renewed while you play.
We do not verify e-mail addresses and we send only one kind of e-mail: a six-digit code when you ask to reset your password. It is valid for a few minutes. We send no newsletters or marketing.
2.3 Game data
- In-game name — the name shown at the table. Guests pick one (or get a random one); it is separate from your account name and you can change it in the lobby.
- Rooms — who sits at a table, the rules chosen, the dice, every score sheet, whose turn it is, when the table was created and when the last move was made, and whether each player is currently connected and on which kind of device (phone or desktop).
- Move log — every roll and every scored cell of a game, in order, with the player who made it.
- Table chat — messages, emoji reactions and typing indicators exchanged at a table. The last 200 messages of a table are kept while the table exists; a typing indicator is never stored.
- Match records — when a game finishes we save a record of it: the room code, the players (in-game name, seat identifier and account identifier if signed in), their score sheets, totals and who won, the rules, when it started and finished, and the full move log.
- Paused games — when a host pauses a game, the whole table (including its chat and move log) is stored until someone at the table resumes and finishes it, or the host deletes it.
- Statistics — the Statistics screen is computed on the fly from your match records; nothing extra is stored for it.
2.4 Settings
Your app settings (sound, vibration, theme, board style, language, collapsed row labels, in-game name, score suggestions, confirm-before-scoring) are stored on your device. If you are signed in, they are also stored with your account so that a second device gets the same settings.
2.5 Usage statistics
On the production server we record a small set of events: a visit (your first connection in half an hour), a room created or joined (and how you got there — by code, from the open-tables list, a link, or a Continue / Paused games card), a game started, paused, finished, or left before the end (with how many cells you had filled), a seat resumed from another of your devices, an error the server rejected (which action and the message shown to you), and opening the Statistics, Paused games or Match history screens. Each stores who acted (your seat identifier, and your account identifier if signed in) and, for game events, the room code, the host’s identifier, the columns and house rules chosen, the number of players and computer players, and for a finished game its duration. Every event except a finished game also records where the request came from: your country and city (derived from your IP address at that moment on our own server, by looking it up in a local copy of the GeoLite2 database — the IP address is not sent to anyone for this and is not written to the event), your user agent, and the device the app reports about itself (phone or desktop, operating system and version, device model on Android, app version). No in-game names, chat, score sheets or moves are stored in these events.
We do not use Google Analytics, Firebase, Facebook SDK, advertising identifiers or any other analytics or advertising SDK, on the website or in the app.
2.6 Server logs
Like any web server, ours writes operational logs (request time, path, status, IP address) that we use to keep the service running and secure. They are kept for [LOG RETENTION, e.g. 14 days] and are not used for profiling.
2.7 Purchases (when Yamb Extra is on sale)
Yamb Extra is a one-time purchase made through the App Store or Google Play. Apple or Google handle the payment and your payment details; we never receive them. We receive a confirmation of the purchase and store the entitlement on your account (section 2.2). Refunds are handled by the store you bought from.
2.8 Feedback and bug reports
“Send feedback” and “Report a bug” open a form hosted by Tally (tally.so) in your browser. Anything you type there is sent to Tally and then to us; the form does not receive any of your game data automatically. Tally’s own privacy policy applies to that form.
2.9 Data we do not collect
We do not access your contacts, photos, camera, microphone, precise location, calendar or files. The app asks for no permission beyond vibration. We do not sell data and we do not share it with data brokers.
3. Why we process it, and on what basis
| Purpose | Data | Legal basis |
|---|---|---|
| Running the game: seating you at a table, syncing moves, chat, resuming a game, match history | Guest ID or account, game data, settings | Performance of our contract with you (the Terms of Service) |
| Accounts and sign-in, keeping your games and settings across devices | Account data, sessions | Contract |
| Yamb Extra entitlement | Purchase confirmation, entitlement fields | Contract |
| Password reset e-mails | E-mail address | Contract |
| Understanding how the game is used, where our players are, and fixing errors | Usage statistics (section 2.5) | Legitimate interest in improving and maintaining the game; you can object (section 7) |
| Security, abuse prevention, debugging | Server logs, session IP and user agent | Legitimate interest in a safe, working service |
| Answering your messages | What you send us | Legitimate interest / your request |
4. Who can see your data
- Players at your table see your in-game name, whether you are connected and on which kind of device, your score sheet and every move you make, and everything you write in the table chat. They keep seeing the finished game in their own match history and statistics, under the in-game name you used.
- Anyone in the game can see a table you made public in the open-tables list: the host’s in-game name, the number of players, the rules, and an internal account identifier of each signed-in player (used only so the app can hide tables you are already sitting at).
- The operator (us) can view live tables — including their chat — and the stored data through an administration dashboard, for support, moderation and debugging.
- Service providers listed in section 5, to the extent described there.
- Authorities, if the law requires us to disclose data.
Nobody else. We do not publish leaderboards or profiles, and we do not sell or rent data.
5. Service providers
| Provider | What for | What they receive |
|---|---|---|
| Google LLC (Sign in with Google) | Optional sign-in | Google authenticates you and gives us your name, e-mail, avatar URL and Google account ID. Google’s privacy policy applies to the sign-in itself. |
| Apple Inc. (Sign in with Apple) | Optional sign-in | Apple authenticates you and gives us your Apple user ID, your name (first sign-in only) and your e-mail or a private relay address. |
| Apple App Store / Google Play | App distribution, updates, purchases | Governed by your store account and the store’s own policies. For a Yamb Extra purchase we receive only a purchase confirmation. |
| Expo (650 Industries, Inc.), EAS Update | Delivering updates to the app’s JavaScript | When the app starts or returns to the foreground it asks Expo’s update server for the latest version. The request carries the app version, platform and a random installation identifier generated by the update library — no account or game data. |
| MaxMind, Inc. (GeoLite2) | Country and city for usage statistics | Nothing about you. Our server downloads MaxMind’s GeoLite2 City database a few times a month and resolves your country and city from it locally; the IP address never leaves our server. This product includes GeoLite2 Data created by MaxMind, available from https://www.maxmind.com. |
| Tally (Tally.so) | Feedback and bug-report form | Whatever you type into the form. |
| [HOSTING PROVIDER, COUNTRY] | Hosting the server and the databases | All server-side data listed above is stored on servers we rent from this provider. The provider does not access it for its own purposes. |
| [E-MAIL PROVIDER] | Sending password-reset codes | Your e-mail address and the code. |
Google, Apple, Expo and Tally are based in the United States. Where your data is transferred outside the EEA/UK/Serbia, the transfer relies on the provider’s standard contractual clauses or an equivalent recognised mechanism.
6. How long we keep it
| Data | Kept |
|---|---|
| Live tables (room state, chat, move log) | Until the table empties (a lobby or a finished game is deleted when the last player leaves) and at most 24 hours after the last move of an unfinished game. A paused game is kept until it is resumed and finished, or deleted by its host. |
| Match records | Until we delete them or you ask us to (section 7). They are also the other players’ history, so they are not removed automatically when one player deletes their account — see 7.2. |
| Account, sign-in links, sessions, synced settings | Until you delete your account. Sessions expire after 7 days of inactivity. |
| Guest identifier | On your device until you uninstall the app or clear site data; on the server only as a key in the records above. |
| Password-reset codes | A few minutes. |
| Usage statistics (section 2.5) | [ANALYTICS RETENTION, e.g. 24 months], after which events are deleted. |
| Server logs | [LOG RETENTION]. |
| Backups | Database backups are kept for [BACKUP RETENTION] and then overwritten; deleted data disappears from them on that schedule. |
7. Your rights and how to use them
7.1 In the app
- Change your account name and password in Settings; change your in-game name in the lobby.
- Delete your account: Settings → Account → Delete account. This immediately and permanently removes your account, sign-in links, sessions and synced settings. Match records you took part in stay (they are your opponents’ history too) with the in-game name you used; on request we will anonymise or remove your entries in them (7.2).
- Sign out on any device from Settings.
7.2 By e-mail
Write to [CONTACT EMAIL] to: get a copy of the data we hold about you (access and portability); correct it; have your match records and usage events anonymised or erased; object to our use of your data for usage statistics; or ask anything about this policy. Tell us the e-mail of your account or, for a guest, the in-game name and roughly when you played so we can find the records. We answer within 30 days. You can also request account deletion by e-mail if you no longer have the app installed.
7.3 Complaints
You have the right to complain to a supervisory authority: in Serbia the Commissioner for Information of Public Importance and Personal Data Protection (poverenik.rs); in the EEA or UK, your local data protection authority.
8. Security
All traffic between the app or website and the server is encrypted (HTTPS and secure WebSockets). Passwords are stored as salted scrypt hashes. Sign-in tokens are kept in the device’s secure storage (Keychain / Keystore) and in HTTP-only cookies on the web. Access to the server and the administration dashboard is limited to the operator’s administrator account. Game state is authoritative on the server: a modified client cannot read other players’ hidden information or write scores the rules do not allow.
9. Children
Yamb is not directed to children under 13, and we do not knowingly collect data from them. If you believe a child has created an account, contact us and we will delete it.
10. Changes to this policy
When the game starts processing data differently, we update this page and change the date at the top. For a material change we will also tell you in the app before it takes effect.
11. Contact
[FULL LEGAL NAME]
Serbia
[CONTACT EMAIL]