What we collect, and where it comes from
When you visit rypt.dev
- Google Analytics. Every page on rypt.dev loads Google Analytics. It sets cookies, and records the pages you visit, the page that sent you here, your browser, device and screen size, your language, and an approximate location that Google works out from your IP address. It may also record how you use a page, such as scrolling, the links you follow and how long you stay. It collects this over time, across your visits. We do not send it your name, email address or account. Google explains how it uses information from sites that use its services at policies.google.com/technologies/partner-sites.
- The terminal demo. The terminal on the home page reads your browser's user agent, language, time zone and window size, and encrypts them in your browser with a throwaway key. It sends nothing anywhere.
- Hosting. Cloudflare serves the site. Like any web host, it receives your IP address, your user agent and the address you asked for. Cloudflare also asks your browser to report failures to load our pages to Cloudflare.
When you sign in
Dashboard sign-in is run by Auth0, a service of Okta, on an Auth0 tenant in the United States. You can sign in with Google or with an email address and password. Auth0 holds your sign-in profile: your email address, your name if you or Google provide one, your password in hashed form if you use one, and a log of your sign-ins with the IP address and browser of each. The sign-in page may run a bot check, which can involve a third-party bot-detection service. If you choose Google, Google tells Auth0 who you are, and Google learns that you signed in to rypt.
From Auth0 we receive a sign-in identifier, and your email address and name when Auth0 includes them. For a Google sign-in, the identifier contains your Google account number. We store the identifier, and the email address and name when we receive them. Your first sign-in creates your account, which is named after your email address, or after the identifier when we have no email address. The account's name is set once, and does not change when your email address does. We never receive your password.
When you use the dashboard
- What you create. The names you give your keys, API tokens, containers and firewalls, and the networks you list in firewalls. Do not put personal information in the names.
- Audit rows. When you create, rename, rotate, delete or restore a key, retire or restore one of its versions, change how many versions it keeps, delete a key now, create, change or revoke an API token, or create, change or delete a container or firewall, the audit log records your user id and the IP address you connected from. Issuing an API token, and each change to its key list or actions, is also added to its container's permission record, with your user id and the time.
- Google Analytics. The dashboard uses the same Google Analytics property as rypt.dev, so Google can connect your visits to both. The page addresses it receives can include the ids of your keys and the text you type into the key list's filter. We do not send it your name, email address or account.
- Hosting. Cloudflare serves the dashboard as it does rypt.dev, and receives the same details, including the address of each page you load, which can contain the ids of your keys.
- Your browser. The dashboard keeps your sign-in tokens in memory only, and saves your theme choice and the container you last opened in your browser. Section 7 lists what it stores.
When you call the API
This includes the calls the dashboard and the command line make for you.
- Your API token. We store an Argon2id hash of each API token and its eight-character prefix, never the whole token.
- Audit rows. Each create, rename, rotate, delete, restore and delete now, each retirement or restore of a key version, each change to how many versions a key keeps, and each encrypt, decrypt, wrap, unwrap and rewrap on one of your keys, writes a row with the time, the operation, the key and, for some operations, the key version, the result and any error code, the request id, the IP address the request came from, which API token or dashboard user acted, and, for the five cryptographic operations, the length of the input and the time spent in the key-management backend, when the operation got that far. An operation refused by an API token's key list or actions also writes a row when it names a key in that API token's container that has not been destroyed. Creating, changing and revoking an API token, creating, changing and deleting a container or firewall, and a key creation that fails also write a row, which names no key. The row written when a key is destroyed because its 7 days of pending deletion have passed, or when a retired key version is destroyed after its 7 days, has no IP address, API token or user, because no request caused it.
- Usage counts. The number of operations on each key in each calendar month.
- Request logs. Each request is logged with its method, its URL (which contains the key id and any query), its HTTP version, request id, status and latency, and no headers or bodies. The request logs of Google's load balancer and of Google Cloud Run also record the user agent, which names the command-line version or browser you use, and the load balancer's log also records the IP address the request came from.
- Usage log lines. Each cryptographic operation also logs a line with your account id, the operation, the result, the input length, and the request's method, URL and request id.
- Error logs. When something fails inside rypt, the error is logged with internal ids such as your account id and the key id. When an API token's firewall refuses a request, the refusal is logged with the API token's id, your account id and the IP address the request came from.
- Request ids. If you send an
x-request-id header, its value is kept in the logs and the audit row, so do not put personal information in it.
When you set up billing
Payments run on Stripe. When you first open checkout, we create a Stripe customer carrying your rypt account id, and your email address and name if we have them. You enter your payment method, billing address, email address, name and any tax id on Stripe's own pages, and they never pass through rypt. Stripe also collects information about the device you use on those pages, to detect fraud. Every few minutes we report each paid key's usage to Stripe: your Stripe customer id, a quantity, and an identifier that contains the key's id and the month. For operations past the key's allowance, the identifier also contains how many there have been that month so far. For the key's monthly fee in October 2026 and later months, it also contains how many days of the month the key has been billed for so far; for earlier months it does not. For the key's extra versions in December 2026 and later months, it also contains how many days of extra versions the key has been billed for that month so far. We keep your Stripe customer and subscription ids, your subscription's status and dates, and a record of the usage we reported. Stripe receives no plaintext and no key names.
When you use the command line
The installer downloads the rypt.sh script and its checksum from sh.rypt.dev, and nothing else. It saves your API token on your own computer, by default in ~/.config/rypt/api-key, readable only by your user. The script talks only to the rypt API. It sends your API token, the data you ask it to encrypt or decrypt, and a user agent that names its version. Neither collects usage statistics or checks for updates. sh.rypt.dev itself loads no scripts, sets no cookies and does not use Google Analytics. Cloudflare serves it, as it does rypt.dev.
When you email us
Mail to support@rypt.dev is received and stored on x6c's own mail server, which is backed up to storage we rent. We keep your message, your address and anything you include.
What you must give us
You need a sign-in to use the dashboard, and a payment method and billing address to use paid keys. Without them we cannot provide those parts of the Service. Nothing else we collect from you is required.