Back

Privacy Policy

Last updated: 10 June 2026

On this page

This privacy policy was self-authored to accurately describe how PerpLog actually processes your data. It is not a substitute for individual legal advice. If your use case raises specific questions, please contact us at the email below.

1. Controller

Julien Fitzlaff

Mommsenstr. 22

10629 Berlin, Germany

Email: privacy@perplog.app

2. Overview

PerpLog is a trading journal for Bybit and Hyperliquid perpetual futures. We process personal data only to the extent necessary to provide and improve the service. We do not sell, rent, or share your data with third parties for marketing purposes.

4. Hosting & Infrastructure

Hetzner (Backend, Database)

Our backend server and PostgreSQL database are hosted by Hetzner Online GmbH on servers located in Germany (Falkenstein/Nuremberg). Your data remains within the EU. Privacy policy: https://www.hetzner.com/legal/privacy-policy

Vercel (Frontend)

The frontend application is hosted on Vercel Inc. (USA). Vercel may process IP addresses and browser metadata for content delivery. Data transfer to the USA is covered by the EU-US Data Privacy Framework. Privacy policy: https://vercel.com/legal/privacy-policy

Cloudflare (DNS)

DNS resolution is handled by Cloudflare Inc. (USA). Cloudflare may process IP addresses for DNS queries. Data transfer to the USA is covered by the EU-US Data Privacy Framework. Privacy policy: https://www.cloudflare.com/privacypolicy/

Sentry (Error Tracking, opt-in)

If you enable error tracking via the cookie banner, JavaScript errors and stack traces from the frontend are sent to Sentry Inc. (USA) for diagnostic purposes. Sentry receives technical metadata (browser, page URL, error trace) but no trade data, journal content, or login credentials. You can revoke this consent at any time in the cookie preferences. Data transfer to the USA is covered by the EU-US Data Privacy Framework. Privacy policy: https://sentry.io/privacy/

Sentry (Server-Side Error Monitoring)

In addition to the opt-in frontend error tracking described above, our backend server runs error monitoring via Sentry whenever it is configured. When a server-side error occurs, technical error metadata and stack traces are sent to Sentry Inc. (USA); the transmission of personal data such as user identifiers, cookies, or IP addresses is disabled (send_default_pii=false). This server-side monitoring is not subject to a consent toggle. Legal basis: Art. 6(1)(f) GDPR — legitimate interest in the stability and security of the service. Recipient: Sentry Inc. (USA); data transfer is covered by the EU-US Data Privacy Framework. Privacy policy: https://sentry.io/privacy/

Umami (Analytics, cookieless, self-hosted)

We operate a self-hosted Umami instance on the same Hetzner server (Germany) for product analytics. Umami is fully cookieless — it uses a daily-rotating, hashed identifier derived from your IP and User-Agent, which cannot identify you personally. Tracking only fires after you grant consent in the cookie banner. No data is shared with any third party.

5. Account Registration

When you create an account, we collect:

  • Email address — for login, email verification, and password reset
  • Password — stored as a salted bcrypt hash (we never store plaintext passwords)

Legal basis: Art. 6(1)(b) GDPR — necessary for contract performance.

6. Authentication & Security

For authentication and security, we process:

  • JWT access tokens — issued by our backend and stored as HttpOnly cookies (not readable by JavaScript) for session management
  • Refresh tokens — also stored as HttpOnly cookies (path-scoped to /api/auth) and tracked server-side with your IP address and user agent for security monitoring
  • IP addresses — used for rate limiting (15-minute Redis TTL) and stored alongside refresh-token records

Legal basis: Art. 6(1)(f) GDPR — legitimate interest in service security.

7. Exchange Connection (Bybit & Hyperliquid)

To sync a Bybit account, you provide a Bybit API key and secret. These credentials are encrypted at rest with AES-256-GCM using per-user key derivation (HKDF-SHA256). We only accept read-only API keys — PerpLog cannot execute trades or withdraw funds on your behalf. To sync a Hyperliquid account, you provide only a public wallet address — it is not a secret and grants no control over funds.

When syncing a Bybit account, we make API calls to Bybit's servers (api.bybit.com) using your encrypted credentials. Bybit's privacy policy applies to data held on their platform: https://www.bybit.com/en/privacy-policy. When syncing a Hyperliquid account, we query Hyperliquid's public API with the wallet address you provided.

Legal basis: Art. 6(1)(b) GDPR — necessary for contract performance.

8. Trade Data

We synchronize and store your trade execution history, closed P&L, order history, and funding payments from your connected exchange. This data is used to build your trading journal, calculate statistics, and generate reports.

Legal basis: Art. 6(1)(b) GDPR — core service functionality.

9. Journal Entries & User Content

You may create journal entries, notes, checklists, reviews, and tag your trades with emotions or strategies. This user-generated content is stored in our database and is only accessible to you.

Legal basis: Art. 6(1)(b) GDPR — content you explicitly create within the service.

10. Payment Processing (Stripe)

Payment processing is handled by Stripe Inc. (USA). When you subscribe to PerpLog Pro, Stripe collects your payment information (credit card, billing address). We do not store your full payment details — only the Stripe customer ID and subscription status.

Stripe processes data under the EU-US Data Privacy Framework. Stripe's privacy policy: https://stripe.com/privacy

Legal basis: Art. 6(1)(b) GDPR — necessary for contract performance.

11. Email Communication (Resend)

We send transactional emails (email verification, password reset) via Resend Inc. (USA). Your email address is shared with Resend solely for email delivery. Resend processes data under the EU-US Data Privacy Framework. Privacy policy: https://resend.com/legal/privacy-policy

Legal basis: Art. 6(1)(b) GDPR — necessary for account security and contract performance.

Newsletter (marketing)

If you subscribe to our newsletter, we process your email address, the subscription and confirmation timestamps, and the IP addresses used at sign-up and confirmation (as double-opt-in proof) to send you PerpLog product updates and trading-journal tips via Resend Inc. (USA, EU-US Data Privacy Framework). We only start sending after you confirm the subscription via the link in the confirmation email (double opt-in).

Legal basis: Art. 6(1)(a) GDPR (consent). You can withdraw your consent at any time via the unsubscribe link in every newsletter email, without affecting the lawfulness of processing before withdrawal. Unconfirmed subscriptions are removed after a short period; confirmed subscription data is kept until you unsubscribe.

12. AI Features (via Anthropic)

PerpLog offers optional AI-powered analysis (trade review, coaching insights, weekly summaries) included with your plan. AI processing is performed by Anthropic on PerpLog's behalf. No separate AI API key is required from you.

When you use AI features, selected trade data is sent to Anthropic for processing. The data shared depends on the feature used and is limited to what is necessary for the analysis. Anthropic processes this data as a processor under our instructions and does not train its models on it. Anthropic's own privacy terms additionally apply.

Legal basis: Art. 6(1)(b) GDPR — processing necessary to provide the AI features that form part of the service you signed up for.

13. Cookies & Local Storage

PerpLog uses two strictly necessary HttpOnly cookies for authentication: "__Host-access_token" (15-minute lifetime, path /) and "refresh_token" (7-day lifetime, path /api/auth). Both are HttpOnly, Secure, SameSite=Lax — they are not readable by JavaScript and are not used for tracking. No consent banner is required for these cookies (Section 25(2) no. 2 TDDDG — strictly necessary for the requested service).

Optional processing is gated by a consent banner with two separate toggles: analytics (self-hosted Umami, cookieless by design) and error tracking (Sentry, opt-in). Your decision is stored as a small consent flag in your browser. We additionally use your browser's localStorage to remember your language preference, theme and UI state — this data never leaves your browser.

14. Data Transfer to Third Countries

Some of our service providers are based in the USA. Data transfers are protected by:

  • EU-US Data Privacy Framework (Vercel, Stripe, Resend, Cloudflare)
  • Standard Contractual Clauses (SCCs) where applicable
  • For AI features, data is processed by Anthropic (USA) as our processor under a data processing agreement including Standard Contractual Clauses (SCCs)

Your core data (account, trades, journal) is stored on Hetzner servers within Germany/EU.

15. Data Security

  • API keys and secrets encrypted with AES-256-GCM, per-user key derivation via HKDF-SHA256
  • Passwords hashed with bcrypt (not reversible)
  • All data transmitted over HTTPS/TLS
  • Read-only exchange connections only — PerpLog cannot execute trades or withdrawals

16. Data Retention & Deletion

Your data is stored as long as your account is active. You can delete your account at any time from Settings. Upon deletion, all your personal data, trade data, journal entries, API keys, and associated records are permanently removed from our systems.

We may retain anonymized, aggregated data that cannot be linked back to you. Data required by legal retention obligations (e.g., billing records under tax law) is retained for the legally mandated period.

17. Your Rights (Art. 15–21 GDPR)

You have the following rights regarding your personal data:

  • Right of access (Art. 15) — request information about what data we store about you
  • Right to rectification (Art. 16) — correct inaccurate personal data
  • Right to erasure (Art. 17) — request deletion of your data (also available via Settings > Delete Account)
  • Right to restriction (Art. 18) — restrict processing of your data
  • Right to data portability (Art. 20) — receive your data in a machine-readable format
  • Right to object (Art. 21) — object to processing based on legitimate interest
  • Right to withdraw consent (Art. 7) — withdraw consent at any time for consent-based processing (e.g., analytics and error tracking via the cookie preferences, or the newsletter via the unsubscribe link in every email)

To exercise your rights, contact us at: privacy@perplog.app

18. Right to Lodge a Complaint

You have the right to lodge a complaint with a data protection supervisory authority (Art. 77 GDPR).

The responsible authority for Berlin is: Berliner Beauftragte für Datenschutz und Informationsfreiheit, Friedrichstr. 219, 10969 Berlin. Berlin Data Protection Authority website

19. Changes to This Policy

We may update this privacy policy from time to time. Changes will be reflected by the "Last updated" date at the top. For significant changes, we will notify you via email or an in-app notice.