Privacy Policy
This is an English translation of the Korean Privacy Policy. If the two versions differ, the Korean version prevails.
Caltype (the "Service", https://caltype.pages.dev) provides an online calculator and a numpad typing practice game. The Service complies with the Personal Information Protection Act of Korea and other applicable laws, and this policy explains what information we process, for what purpose, and how.
The Service has no sign-up or login. We do not collect personally identifying information such as names, email addresses, phone numbers or social accounts. The calculator and typing practice can be used without sending any information to our servers; the information in section 1(a) is stored only when you choose to create a nickname and join the ranking.
1. Information we process and how we collect it
(a) If you join the ranking (entered and submitted by you)
- Nickname: the public name you choose (2–12 characters), shown on the ranking. Do not use your real name, contact details or other personal information as a nickname.
- Hash of the recovery code: when you create a nickname, the server generates a random recovery code (256 bits) and shows it to you once. The server stores only an irreversible transform of the code (SHA-256 hash). The recovery code itself is stored only in your browser.
- Game results: score, keys per minute, accuracy, max combo, number of items, time taken, game settings (content, mode, item count, difficulty, digits, decimals, unit) and submission time.
- Per-item input log: for each item, the string shown, the number of characters typed correctly, whether there was a typo, and the time taken to submit (milliseconds). It is used to recompute the score on the server and filter out cheating. We do not collect a full record of your keystrokes (keylog) or input from other programs.
(b) Information generated and processed automatically
- Hash of your IP address: to prevent too many submissions in a short time or mass nickname creation, we turn the requesting IP address into an irreversible value (16 characters) mixed with a secret key and the date, and store that. The original IP address is not stored; the hash changes every day, so it cannot be linked to other days, and it is deleted within 1 day.
- Session cookie: one cookie (
ct_session) that keeps your nickname connected on this device. It contains only a signed player number and an expiry time. - Local storage (localStorage): game settings, best records, calculation history, sound and theme settings, and, if you joined the ranking, your nickname and recovery code. Stored in your browser.
- Access information: the Service runs on Cloudflare, which processes IP addresses, access times, browser information (User-Agent) and requested URLs for security and service delivery (section 5).
- Advertising cookies: if Google AdSense is enabled, Google and its advertising partners may use cookies and device identifiers (section 6).
2. Purposes of processing
- Providing the ranking: showing nicknames and scores in weekly rankings per setting (today, this week), showing your rank, and letting you continue on another device with your recovery code
- Preventing abuse: recomputing scores from the per-item log and filtering out abnormal results, limiting the number of submissions and nickname creations, and restricting inappropriate nicknames
- Operating the Service: handling errors and maintaining security
We do not use the information for any other purpose, and we do not use it for profiling, personalized advertising or marketing. We do not sell your information.
3. Retention and deletion
| Item | Retention period |
|---|---|
| Nickname, recovery code hash | Until you delete your records. Not deleted by the weekly reset; nicknames unused for 2 years are deleted automatically. |
| Game results and per-item input logs | The ranking resets every Monday at 00:00 Korea time (KST). Kept only for the week of submission and the following week, then deleted (about 14 days at most). |
| IP address hashes and request counts | Up to 1 day |
| Session cookie | 30 days, or until you press "Sign out on this device" |
| Local storage | Until you clear your browser data or press "Sign out on this device" |
| Cloudflare access logs | According to Cloudflare's policy |
When the retention period ends or the purpose is achieved, the information is deleted without delay in a way that cannot be recovered.
4. Disclosure to third parties
The Service does not provide your information to third parties. However, the ranking publicly shows the nickname and game results you submit (score, keys per minute, accuracy, max combo, date of submission). Exceptions apply where the law specifically requires it or investigative authorities request it following legal procedures.
5. Processors and international transfers
We use the services of the companies below to provide the Service, and information may be stored and processed outside Korea in the process. It is transmitted over the network when you visit the site or submit a result.
| Company (country) | Service and information transferred | Retention |
|---|---|---|
| Cloudflare, Inc. (United States and countries where Cloudflare data centers are located) Privacy policy | Website hosting (Cloudflare Pages), server functions (Pages Functions), database (Cloudflare D1): the server-stored items in section 1 and access information | The periods in section 3, or until the processing contract ends |
| Google LLC (United States) Privacy policy | Advertising (Google AdSense, if enabled): cookies, device information, visit history | According to Google's policy |
If you do not join the ranking, the information in section 1(a) is not stored, and you can still use the calculator and typing practice as usual.
6. Cookies, local storage and advertising
(a) Cookies used by the Service
The session cookie ct_session is used only if you join the ranking. It is set with the HttpOnly, Secure and SameSite=Lax attributes, so scripts cannot read it and it is sent only over HTTPS. If you refuse cookies, every feature other than ranking submission still works.
(b) Local storage
Settings and records are stored in localStorage (numpadTyping.v1), your ranking nickname and recovery code in localStorage (caltype.player), your language choice in localStorage (caltype.lang), and a result waiting to be submitted right after you create a nickname briefly in sessionStorage. They are deleted when you clear site data in your browser settings. If you clear them without saving your recovery code elsewhere, you cannot continue with the same nickname.
(c) Google AdSense advertising
The Service may show Google AdSense ads to cover running costs.
- Third-party vendors, including Google, use cookies to serve ads based on your prior visits to this website or other websites.
- Google's use of advertising cookies enables it and its partners to serve ads to you based on your visits to this site and/or other sites on the Internet.
- You can opt out of personalized advertising in Google Ads Settings, and opt out of third-party vendors' cookies for personalized advertising at www.aboutads.info. Users in Europe can use www.youronlinechoices.eu.
- For details, see How Google uses information from sites that use its services and Google's advertising policies.
You can refuse or delete cookies in your browser settings. (Chrome: Settings › Privacy and security › Third-party cookies; Safari: Settings › Privacy; Edge: Settings › Cookies and site permissions)
7. Your rights and how to exercise them (deleting records)
You may at any time request access to, correction of, deletion of, or suspension of processing of your information.
- Correction: change your nickname in the "My records" menu.
- Deletion: "My records › Delete records" immediately deletes your nickname, recovery code hash, and all scores and per-item input logs, and removes you from the ranking. Deleted information cannot be restored.
- Request by email: if you lost your device or cannot use the menu, email sijin90@gmail.com with your nickname. Because the Service does not store personal contact details, we may ask for your recovery code or information about the device you used to verify that the nickname is yours. We act within 10 days after verification.
- Sign out on this device: keeps your records and only removes the cookie and the saved recovery code on this device.
- Local data: records that exist only in your browser can be removed by clearing site data in your browser.
8. Children
The Service does not collect information that identifies a person, such as names or contact details, so anyone can use it. Parents and guardians should make sure children do not use nicknames containing their real names or other personal information. If we find such a nickname or receive a request, we change or delete it immediately.
9. Security measures
- All communication is encrypted with HTTPS.
- Recovery codes are stored on the server only as hashes, and IP addresses are hashed with a daily-changing secret key so the original value cannot be known.
- Session cookies are signed with a secret key and protected with the HttpOnly, Secure and SameSite attributes. The secret key is kept in encrypted storage separate from the code.
- Attempts to guess recovery codes and excessive requests are rate limited.
- Access to the database is limited to the operator, and only the minimum necessary information is stored.
10. Privacy officer and contact
- Privacy officer: the Caltype operator
- Email: sijin90@gmail.com
Please send privacy questions, complaints and requests for remedies to the email above, and we will reply without delay.
11. Remedies for infringement
To seek remedies for an infringement of personal information, you can apply for dispute resolution or counseling at the following Korean institutions.
- Personal Information Dispute Mediation Committee: +82-1833-6972 (www.kopico.go.kr)
- Personal Information Infringement Report Center (Korea Internet & Security Agency): 118 in Korea (privacy.kisa.or.kr)
- Supreme Prosecutors' Office: 1301 in Korea (www.spo.go.kr)
- Korean National Police Agency: 182 in Korea (ecrm.police.go.kr)
12. Changes to this policy
This policy applies from October 8, 2026. If we add, remove or change anything, we will announce it on this page 7 days before it takes effect, and 30 days before for changes that significantly affect your rights.
- 2026-10-08: Full revision (nickname ranking, recovery code, IP hash and international transfer added); retention of game results shortened to match the weekly ranking (reset every Monday 00:00 KST); English version and language setting (
caltype.lang) added