PyLocket

Privacy Policy

Last Updated: March 2, 2026

1. Effective Date

This Privacy Policy was last updated on March 2, 2026. It is effective as of that date and supersedes all prior versions. This Privacy Policy describes how PyLocket collects, uses, discloses, and protects information when you access or use our website, platform, tools, and services. By using any part of the PyLocket Service, you acknowledge that you have read and understood this Privacy Policy.


2. Introduction

PyLocket (“we,” “us,” “our”) operates a cloud-based platform for protecting Python applications through encryption, obfuscation, and license enforcement. We are committed to safeguarding the privacy and security of the data entrusted to us by our customers and their end users.

This Privacy Policy applies to all of the following (collectively referred to as the “Service”):

This Privacy Policy explains what data we collect, why we collect it, how we use it, with whom we share it, how long we retain it, and what rights you have regarding your data. We comply with the General Data Protection Regulation (GDPR), the California Consumer Privacy Act as amended by the California Privacy Rights Act (CCPA/CPRA), and other applicable data protection and privacy laws worldwide.

If you are a Developer using the Service to distribute Protected Applications to End Users, please also review Section 15 (Developer Responsibilities as Data Controller), which outlines your obligations regarding your End Users’ data.

If you are an End User of a Protected Application, the data collected by the PyLocket Runtime on your device is governed by the PyLocket Runtime End User License Agreement in addition to this Privacy Policy.


3. Definitions

The following terms have specific meanings when used in this Privacy Policy:


4. Information We Collect

We collect information in several categories depending on how you interact with the Service. Below is a comprehensive description of each category.

4a. Developer Account Data

When you register for a PyLocket account, we collect the following information:

When you add billing information to your account, payment processing is handled entirely by Stripe, Inc. We do not receive, process, or store your credit card number, bank account details, or other financial instrument data. We store only your Stripe customer ID, which allows us to reference your payment history and subscription status through Stripe’s secure API.

4b. Developer Usage Data

We automatically collect the following information when you interact with the Service:

4c. End-User Device Data (Collected via the Runtime)

When an End User activates a License Key, the Runtime embedded in the Protected Application collects hardware and software attributes from the End User’s device to generate a Device Fingerprint. These attributes include identifiers such as:

Critical: These hardware and software attributes are immediately hashed using a one-way cryptographic function before being transmitted to PyLocket servers. We store only the resulting hash (the Device Fingerprint). The original hardware attributes cannot be recovered from this hash and are never transmitted to or stored on our servers in their original form.

In addition to the Device Fingerprint, we collect:

4d. Telemetry / Anti-Tamper Data

When Telemetry is enabled by the Developer in their application configuration, the Runtime collects security events including:

Each Telemetry event record includes:

Telemetry Data is retained for 90 days and is then automatically and permanently deleted from our systems.

4e. Website & Analytics Data

When you visit the PyLocket website or Developer Portal, we may collect:

4f. PyCharm Plugin Data

When you use the PyLocket plugin for PyCharm or other JetBrains IDEs, the following data is involved:


5. How We Collect Information

We collect information through the following methods:

Directly from Developers

We collect information that you voluntarily provide when you:

Automatically via the Runtime

The PyLocket Runtime embedded in Protected Applications automatically collects data from End User devices, including:

Automatically via the Website

When you visit our website or use the Developer Portal, we automatically collect data through:

From Third Parties


6. How We Use Information

We use the information we collect for the following purposes:



8. Source Code Processing

The protection of your source code is of paramount importance to us. We have designed our Build pipeline with strict safeguards to ensure the confidentiality and integrity of your intellectual property.

The legal basis for Processing your source code is contractual necessity — it is required to provide the core Build and protection service that you have contracted for under our Terms of Service.


9. Device Fingerprinting Disclosure

Important: The PyLocket Runtime embedded in Protected Applications collects hardware and software attributes from End User devices for the purpose of license enforcement. This section provides a detailed disclosure of what is collected, how it is processed, and how it is stored.

What Is Collected

The Runtime collects the following categories of hardware and software attributes from the End User’s device at the time of license activation:

How It Is Processed

All collected attributes are combined into a single composite value and processed through a one-way cryptographic hash function with a per-application salt (a unique, random value assigned to each Protected Application). The resulting hash is the Device Fingerprint. This process occurs entirely on the End User’s device before any data is transmitted to PyLocket servers.

What Is Stored

PyLocket stores only the one-way hash (the Device Fingerprint). The original hardware attributes — MAC addresses, serial numbers, hostnames, and other raw identifiers — are never transmitted to or stored on PyLocket servers in their original form.

Purpose

Device Fingerprints are used solely for per-device license enforcement — ensuring that each License Key is activated on no more than the number of devices permitted by the Developer’s licensing terms. Device Fingerprints are not used for tracking, profiling, advertising, or any purpose other than license enforcement.

Reversibility

The one-way cryptographic hash function used to generate the Device Fingerprint is computationally irreversible. The original hardware attributes cannot be recovered from the stored hash. Additionally, the per-application salt ensures that the same device will produce different Device Fingerprints for different Protected Applications, preventing cross-application tracking.

Data Controller

The Developer who distributes the Protected Application is the Data Controller for their End Users’ Device Fingerprint data. The Developer determines whether to use license enforcement, how many devices to permit per license, and whether to distribute their application with PyLocket protection enabled. PyLocket acts as the Data Processor, processing Device Fingerprint data on behalf of and according to the instructions of the Developer.

End Users can find additional information about Device Fingerprinting in Section 5 of the PyLocket Runtime EULA.


10. Telemetry & Anti-Tamper Disclosure

When Telemetry is enabled by the Developer in their application configuration, the Runtime monitors for the following categories of security threats on End User devices:

Event Reporting

When a security event is detected, the Runtime reports the following information to PyLocket servers:

Transmission

Telemetry Data is transmitted to PyLocket servers via encrypted channels using TLS 1.2 or higher. Events may be batched and transmitted periodically rather than in real time, depending on network conditions and Runtime configuration.

Access

Telemetry Data is made available to the Developer via the Developer Portal dashboard, where they can view security events, analyze patterns, and take appropriate action (such as revoking compromised License Keys).

Retention

Telemetry Data is automatically and permanently deleted after 90 days. This retention period provides Developers with sufficient time to review security events while limiting the duration for which End User data is stored.

Opt-Out

Developers can disable Telemetry Data collection in their application configuration at any time. When Telemetry is disabled, the Runtime does not monitor for security events and does not transmit any Telemetry Data. License enforcement (Device Fingerprinting and license validation) continues to function independently of the Telemetry setting.

Data Controller

The Developer is the Data Controller for Telemetry Data collected from their End Users. The Developer decides whether to enable Telemetry and is responsible for disclosing this data collection in their own privacy policy or EULA. PyLocket is the Data Processor, collecting and storing Telemetry Data on behalf of the Developer.


11. Data Retention Schedule

We retain different categories of data for different periods depending on the purpose of collection and legal requirements. The following table summarizes our retention practices:

Data Category Retention Period
Developer account information Duration of account + 30 days after deletion request
Application metadata Until the Application is deleted by the Developer
Protected Artifacts (encrypted builds) Until the Build is deleted by the Developer
Original source code (unencrypted) Deleted immediately after Build processing completes
License Keys and activation records Until the License is deleted by the Developer
Device Fingerprints (one-way hashes) Duration of the associated License
Telemetry Data 90 days (automatic deletion)
Server and access logs 30 days
Payment and billing records 7 years (legal requirement)
Support communications 2 years after last contact
Cookie data See Section 17 (Cookies)

When data reaches the end of its retention period, it is permanently deleted or irreversibly anonymized. Deletion timelines are approximate and may vary by up to 30 days due to automated processing schedules and backup rotation cycles.


12. Data Sharing & Sub-Processors

We do NOT sell your Personal Data to third parties. We have never sold Personal Data and have no plans to do so. We share data only as described below and only to the extent necessary to provide, secure, and improve the Service.

Amazon Web Services (AWS)

Role: Infrastructure provider and sub-processor.

Data location: US-East-1 (N. Virginia, United States). See Section 13 for international transfer information.

Stripe, Inc.

Role: Payment processor.

Stripe receives billing information (including credit card details) directly from your browser during the checkout process. PyLocket does not handle, process, or store credit card data. We interact with Stripe’s API using only your Stripe customer ID. For information about how Stripe handles your data, please review Stripe’s Privacy Policy.

JetBrains s.r.o.

Role: Plugin distribution platform.

The PyLocket plugin for PyCharm and other JetBrains IDEs is distributed via the JetBrains Marketplace. JetBrains may independently collect plugin download statistics, usage analytics, and crash reports as described in JetBrains’ Privacy Policy. PyLocket does not control the data JetBrains collects through the Marketplace.

Analytics Providers

We may use privacy-respecting analytics tools to understand how the Service is used, identify performance bottlenecks, and improve user experience. We select analytics providers that prioritize user privacy and data minimization. No Personal Data is shared with advertising networks, and we do not participate in any advertising tracking ecosystems.

Law Enforcement

We may disclose Personal Data if we are required to do so by law, or if we believe in good faith that such disclosure is reasonably necessary to:

We will notify you of any law enforcement request for your data unless we are legally prohibited from doing so (e.g., by a court-ordered gag order or national security letter).

Business Transfers

In the event of a merger, acquisition, reorganization, bankruptcy, or asset sale, your Personal Data may be transferred as part of the transaction. We will notify you before your data becomes subject to a different privacy policy. See Section 19 for details.


13. International Data Transfers

All data collected by PyLocket is stored and processed primarily in the United States, specifically in the AWS US-East-1 (N. Virginia) region.

If you are located in the European Economic Area (EEA), United Kingdom, or Switzerland, your Personal Data is transferred to the United States when you use the Service. We recognize that such transfers require appropriate safeguards under the GDPR and UK GDPR.

To ensure the lawful transfer of Personal Data outside the EEA/UK/Switzerland, we rely on the following mechanisms:

We regularly review our data transfer mechanisms to ensure they remain valid and effective in light of regulatory developments and court decisions.

If your organization requires data residency within the EEA or another specific jurisdiction, please contact sales@pylocket.com to discuss regional deployment options.


14. Data Security

We implement comprehensive technical and organizational security measures to protect the confidentiality, integrity, and availability of your data. While no system can guarantee absolute security, we employ industry-standard and advanced security controls, including:

We encourage Developers to also implement strong security practices, including using unique and complex passwords, enabling multi-factor authentication on their PyLocket accounts, and keeping their CLI and plugin installations up to date.


15. Developer Responsibilities as Data Controller

When you use the PyLocket Service to distribute Protected Applications to End Users, a specific data protection relationship is established between you, PyLocket, and your End Users. It is important that you understand your obligations under applicable data protection laws.

Your Role: Data Controller

You are the Data Controller for your End Users’ Personal Data that is processed through the PyLocket Service. This includes:

As the Data Controller, you determine the purposes for which this data is collected (software protection and license enforcement) and the means of processing (using PyLocket as your chosen technology provider).

PyLocket’s Role: Data Processor

PyLocket is the Data Processor, processing End User data on your behalf to provide the license enforcement and anti-tamper services you have configured.

Your Obligations as Data Controller

Our Obligations as Data Processor

Data Processing Agreement

A formal Data Processing Agreement (DPA) that meets the requirements of GDPR Article 28 is available upon request. To request a DPA, contact legal@pylocket.com. The DPA includes Standard Contractual Clauses for international data transfers.


16. Your Rights (GDPR & CCPA)

If You Are in the EEA/UK (GDPR)

Under the General Data Protection Regulation, you have the following rights with respect to your Personal Data:

If You Are in California (CCPA/CPRA)

Under the California Consumer Privacy Act, as amended by the California Privacy Rights Act, California residents have the following rights:

For End Users of Protected Applications

If you are an End User of a Protected Application and wish to exercise your data rights regarding Device Fingerprints, license activation records, or Telemetry Data, please contact the Developer who distributes the application. The Developer is the Data Controller for your data. PyLocket, as the Data Processor, will assist the Developer in fulfilling your request upon their instruction.

How to Exercise Your Rights

To exercise any of the rights described above, please contact us at privacy@pylocket.com. In your request, please:

We will acknowledge your request within 5 business days and provide a substantive response within 30 days (GDPR) or 45 days (CCPA/CPRA). If we require additional time due to the complexity of the request, we will notify you of the extension and the reasons for it. There is no fee for exercising your rights unless requests are manifestly unfounded or excessive.


17. Cookies

We use cookies and similar technologies on the PyLocket website and Developer Portal. This section explains the types of cookies we use and how you can manage them.

Essential Cookies (Required)

These cookies are strictly necessary for the Service to function and cannot be disabled. They include:

Analytics Cookies (Optional, Consent Required)

These cookies help us understand how Developers and visitors interact with the website and Developer Portal. They are placed only after you provide consent through our cookie banner.

We do not use third-party advertising cookies, retargeting pixels, or any cookies associated with advertising networks.

Managing Cookies

You can manage your cookie preferences through your browser settings. Most browsers allow you to block or delete cookies, set preferences for specific websites, and browse in “private” or “incognito” mode. Please note that disabling essential cookies may prevent you from logging into the Developer Portal and using certain features of the Service. For detailed instructions on managing cookies in your browser, consult your browser’s help documentation.


18. Children's Privacy

The PyLocket Service is designed for professional software developers and businesses. It is not directed to children under the age of 16. We do not knowingly collect, solicit, or process Personal Data from children under 16 years of age.

If we become aware that we have inadvertently collected Personal Data from a child under 16, we will take immediate steps to delete such data promptly from our systems and, where applicable, instruct our sub-processors to do the same.

If you are a parent, guardian, or other person who believes that a child under 16 has provided us with Personal Data, please contact us immediately at privacy@pylocket.com. We will investigate the matter and take appropriate action, including deletion of the data if confirmed.


19. Business Transfers

If PyLocket is involved in a merger, acquisition, bankruptcy, dissolution, reorganization, or sale of all or a portion of its assets, your Personal Data may be transferred, assigned, or disclosed as part of that transaction.

In such an event, we will:

Any entity that acquires PyLocket or its assets will be bound by the terms of this Privacy Policy with respect to previously collected Personal Data, unless and until you are notified of changes and given the opportunity to consent to or reject the new terms.


20. Changes to This Policy

We may update this Privacy Policy from time to time to reflect changes in our practices, technologies, legal requirements, or other factors. When we make changes, we will:

We encourage you to review this Privacy Policy periodically to stay informed about how we protect your data. Your continued use of the Service after the effective date of any changes constitutes your acceptance of the revised Privacy Policy. If you do not agree with the changes, you may terminate your account at any time before the changes take effect by contacting support@pylocket.com or through the account deletion feature in the Developer Portal.


21. Contact

If you have any questions, concerns, or requests regarding this Privacy Policy or our data practices, please contact us using the information below.

Privacy Inquiries

Data Protection

For GDPR-related supervisory authority complaints, you may also contact your local data protection authority. A list of EEA data protection authorities is available on the European Data Protection Board website. For UK residents, you may contact the Information Commissioner's Office (ICO).

Additional Contacts

Department Email
General Support support@pylocket.com
Security Issues security@pylocket.com
Legal & Compliance legal@pylocket.com

We are committed to working with you to resolve any concerns about your privacy. If you are not satisfied with our response, you have the right to escalate your complaint to the appropriate regulatory authority as described above.