Privacy Policy
Effective Date: May 7, 2026
Last Updated: May 7, 2026
Welcome to Breeze Pixel Studio (hereinafter referred to as "this application"). We understand the importance of your personal information and will protect your personal information and privacy security in accordance with laws and regulations. Please read and fully understand this Privacy Policy before using this application.
This Privacy Policy applies to all versions of Breeze Pixel Studio client (including iOS, Android, Web, Windows, macOS, Linux, etc.) and related services.
1. How We Collect and Use Your Personal Information
1.1 Registration and Account
When you register for an account, we need to collect the following information:
| Information Type | Required | Purpose |
|---|---|---|
| Username | Required | Unique account identifier, used for login |
| Password | Required | Account security verification, stored using PBKDF2 encryption |
| Nickname | Required | Display name in the community |
| Optional | Account security verification, password reset, account deletion confirmation |
1.2 Profile
While using this application, you may voluntarily complete the following profile information:
- Avatar: Used for personal profile page and community display
- Background Image: Used for personal profile page decoration
- Gender: Used for personal profile page display (options: Unknown / Male / Female)
- Bio: Used for personal profile page display
- Title: Virtual titles obtained through levels, achievements, events, membership, etc.
All the above information is voluntarily provided by you, and you can modify or delete it at any time.
1.3 Device Information
To ensure stable service operation and optimize user experience, we collect the following device information:
- Device Identifier: A UUID v4 generated on the first app launch, stored locally, used for session tracking and device binding
- Operating System Version: e.g., Android 14, iOS 17, etc.
- Device Model: e.g., Samsung Galaxy S24, iPhone 15 Pro, etc.
- App Version: The currently installed app version
- Platform Type: Android / iOS / Web / Windows / macOS / Linux
The above information is reported only when the app launches or returns to the foreground, and is used for:
- Statistical analysis of app usage (session start/end, session duration)
- Maintaining session heartbeat (every 30 seconds)
- Binding the device to the user account after login
1.4 Usage Records
We record the following usage behavior data:
- Session Records: App launch time, usage duration, session ID
- Login Records: Last login time
- Interaction Data: Followers/following count, works count, likes count, favorites count
- Notification Records: Read/unread status of system notifications and interaction notifications
1.5 User-Generated Content
When you create and share content using this application, we process the following:
- Pixel Art Works: Canvas data, project files, exported images
- Collections: Information about collections of works
- Topics: Topic creation and participation information
The above content is uploaded to the server when you actively publish it. Unpublished works are stored only on your local device.
1.6 Images and Files
We may access your images and files in the following scenarios:
- Selecting images from the gallery: Used as reference images for creation, avatar uploads, background image uploads
- Taking photos: Used as reference images for creation (requires camera permission)
- Saving images to the gallery: Exporting/saving created pixel art works
- Selecting files: On desktop (Windows/macOS/Linux), selecting local image files
2. How We Use Permissions
2.1 Android Permissions
| Permission | API Level | Purpose | Can be Denied |
|---|---|---|---|
READ_MEDIA_IMAGES | Android 13+ | Read gallery images as reference or upload avatar/background | Yes, images cannot be selected if denied |
READ_EXTERNAL_STORAGE | Android 12 and below | Read images from external storage | Yes, images cannot be selected if denied |
| Camera permission (runtime) | All | Take photos as reference images | Yes, photos cannot be taken if denied |
2.2 iOS Permissions
| Permission | Purpose | Can be Denied |
|---|---|---|
NSPhotoLibraryUsageDescription | Access the photo library to select reference images that help you visually reference while drawing pixel art | Yes, images cannot be selected if denied |
NSPhotoLibraryAddUsageDescription | Save images to the photo library | Yes, images cannot be saved to album if denied |
| Camera permission (runtime) | Take photos as reference images | Yes, photos cannot be taken if denied |
2.3 Permission Notes
- All permissions require your active consent; we will not access related functions without authorization
- You can revoke granted permissions at any time in the system settings
- Denying a permission will not affect the normal use of other app features; it only affects specific functions that rely on that permission
- Before requesting sensitive permissions (such as camera), we will display a permission purpose dialog
3. How We Store and Protect Your Personal Information
3.1 Information Storage Methods
Local Storage
- SharedPreferences: Used to store authentication tokens (Access Token, Refresh Token) and device identifier
- SQLite Database: Used to store local pixel art documents, animation frames, assets, and other creation data
Data stored locally does not leave your device (unless you actively upload and synchronize).
Server Storage
- Cloudflare D1 Database: Stores user account information, personal profiles, social relationships, work metadata, etc.
- Cloudflare R2 Object Storage: Stores user-uploaded image files (avatars, background images, work images, etc.)
- Cloudflare KV: Stores Refresh Tokens for server-side token revocation verification
Servers are located on Cloudflare's global edge network, with full TLS encryption during data transmission.
3.2 Security Measures
We take the following measures to protect the security of your personal information:
- Password Protection: Encrypted with PBKDF2 algorithm (100,000 iterations) plus salt, hashed; plaintext passwords are not stored on the server
- Token Security:
- Access Token valid for 7 days, signed with HS256
- Refresh Token valid for 30 days, uses token rotation mechanism (old tokens automatically invalidated after use)
- On logout, the Refresh Token record in KV is deleted from the server, enabling server-side token revocation
- When a token expires, automatic silent refresh is attempted; requests queue during refresh
- Transmission Encryption: All network communications use HTTPS (TLS) encrypted transmission
- Principle of Least Privilege: API requests carry authentication tokens only when necessary; public interfaces do not require authentication
- Account Deletion: Account deletion is supported; after submission, a cooling-off period applies, during which you can cancel the deletion
3.3 Data Retention Period
- Account Information: Retained as long as you use this application; deleted or anonymized after account deletion
- Authentication Tokens: Access Token expires after 7 days; Refresh Token expires after 30 days or deleted on logout
- Device Identifier: Stored locally; automatically deleted when the app is uninstalled
- Session Data: Used for statistical analysis, retained for no more than 180 days
- Created Content: Retained until you delete it or your account is deleted
4. How We Share, Transfer, and Publicly Disclose Your Personal Information
4.1 Sharing
We do not sell your personal information to any third party. We may share your information in the following circumstances:
- Service Providers: We use Cloudflare to provide server hosting, databases, object storage, and CDN services. Cloudflare only processes your data as necessary to provide the above services.
- Legal Requirements: We may be required to share your information in accordance with laws, regulations, litigation, or mandatory requests from government authorities.
4.2 Public Disclosure
The following information may be visible to other users:
- Public Profile: Nickname, avatar, gender, bio, current title, level, followers/following count, works count, likes count, favorites count
- Public Works: Works you have published as public
- Public Collections: Collections you have created
- Social Relationships: Following list, followers list
You can control whether your works are visible to other users by setting their visibility (public/private).
4.3 Information Not Shared
We do not share the following information with third parties:
- Your password (encrypted and stored; no one can view the plaintext)
- Your authentication tokens
- Your email address (not displayed to other users)
- Your device identifier
- Your unpublished works
5. Your Rights
5.1 Access and Correction
You have the right to access and correct your personal information through the following methods:
- Profile: View and modify your nickname, avatar, background image, gender, and bio on the "Edit Profile" page
- Email: Change the bound email in account settings (requires confirmation via verification code)
- Work Management: View, edit, and delete your published works
5.2 Deletion
- Work Deletion: You can delete published works and collections
- Account Deletion: You can apply for account deletion in account settings
- After submitting the deletion request, a cooling-off period applies (the exact number of days will be indicated in the app)
- During the cooling-off period, you can log in and cancel the deletion
- After the cooling-off period ends, the account and associated data will be permanently deleted
5.3 Permission Withdrawal
You can revoke granted permissions at any time in the device system settings:
- Android: Settings → Apps → Breeze Pixel Studio → Permissions
- iOS: Settings → Privacy & Security → Corresponding permission
5.4 Data Export
You can export locally stored pixel art work files (.pxa format or image format), but bulk export of server-side data is currently unsupported.
6. Protection of Minors
We take the protection of minors' personal information very seriously. If you are a minor under the age of 14, please use this application under the guidance and supervision of your guardian, and obtain consent from your guardian before registering and providing personal information.
If we discover that we have collected personal information from a minor without obtaining guardian consent, we will delete such information as soon as possible.
7. Updates to the Privacy Policy
We may revise this Privacy Policy from time to time. The updated Privacy Policy will be announced within the app or notified to you through other appropriate means. For material changes, we will provide more prominent notice.
If you continue to use this application after the Privacy Policy has been updated, you agree to be bound by the revised Privacy Policy.
8. Contact Us
If you have any questions, comments, or suggestions regarding this Privacy Policy, you can contact us through the following channels:
- In-App Feedback: Submit feedback through the app's feedback feature
- Email: Contact us via the contact information published in the app
We will respond to your request within 15 working days.
Appendix: Third-Party SDK List
The third-party SDKs integrated into this application and the information they may collect are as follows:
| SDK Name | Purpose | Information Potentially Collected | Privacy Policy |
|---|---|---|---|
| Flutter Framework | Application development framework | Device information, app information | https://flutter.dev/privacy |
| image_picker | Image selection | Gallery access (requires authorization) | https://pub.dev/packages/image_picker |
| file_picker | File selection (desktop) | File access (requires user action) | https://pub.dev/packages/file_picker |
| share_plus | System sharing | No personal information collected | https://pub.dev/packages/share_plus |
| permission_handler | Permission management | No personal information collected | https://pub.dev/packages/permission_handler |
| url_launcher | Open external links | No personal information collected | https://pub.dev/packages/url_launcher |
| shared_preferences | Local key-value storage | No personal information collected | https://pub.dev/packages/shared_preferences |
| sqflite | Local database | No personal information collected | https://pub.dev/packages/sqflite |
| device_info_plus | Device information retrieval | Device model, OS version | https://pub.dev/packages/device_info_plus |
| package_info_plus | App information retrieval | App version number | https://pub.dev/packages/package_info_plus |
| http | Network requests | No additional information collected | https://pub.dev/packages/http |
| Cloudflare Workers | Backend API service | Request logs (automatic) | https://www.cloudflare.com/privacypolicy/ |
| Cloudflare R2 | File object storage | No additional information collected | https://www.cloudflare.com/privacypolicy/ |
