The short version
There is nothing to sign up for. CrocApp has no analytics, no telemetry, no
advertising and no crash-reporting service. The developer runs no server that the app
talks to, so there is nowhere for your data to go. The App Store privacy answer is
Data Not Collected.
A transfer still needs the internet, and the servers it uses belong to other people.
They are listed below, with what each one can see. Files are encrypted on your device
before they leave it, so no server sees file contents. The relays and the direct
connection servers never see your code phrase. The one exception is the optional
browser link, described under getcroc.com below.
Servers CrocApp can contact
All of these are run by someone other than CrocApp. CrocApp
cannot see or control what their operators log, so the lists below are what each
server can observe by design, not a promise about what it keeps.
croc public relays
When: every transfer with a code phrase, unless you set your own
relay or turn on Local network only. The relays are four servers,
1.getcroc.com to 4.getcroc.com
(port 9009), run by the croc project. The code phrase decides which of the four both
devices use.
What it can see: the IP addresses of both devices, when they
connect, how long the transfer takes, and how much data moves. It also sees a room
name, which is a hash made from the first word of the code phrase. Everything else
is ciphertext: it never sees file contents or the code phrase, and it does not
store the files.
getcroc.com, stored transfers
When: only when you use Send as link, or open or revoke such a
link. The server is set in Settings and defaults to
https://getcroc.com, run by croc's author. A link
received from someone else points at the server named in that link.
What it can see: the encrypted files, their size, the lifetime and
download count you chose, and the usual details of any web request, such as your IP
address and the time. The decryption key sits in the part of the link after the
#, which CrocApp and browsers never send to the server,
so it cannot read the file contents. CrocApp has not verified whether the server
can read file names, so do not rely on names being hidden.
How long it keeps files: you choose how long the link lasts (1
hour, 1 day, which is the default, or 7 days) and how many downloads it allows (1
to 100). Revoking a link asks the server to delete the upload. The server
decides what it actually keeps and for how long, and may cap the lifetime. That is
set by getcroc.com, not by CrocApp, and CrocApp has not checked it beyond the
lifetime it requests. Anyone who has the whole link can download the files until it
ends.
getcroc.com, the browser client
When: only if you press Receive in your browser on
a crocapp.dev/r/ link page, or open a link to
getcroc.com
yourself. The button opens
https://getcroc.com/?code=<code>. That is croc's
own web app, not run by CrocApp.
What it can see: because the code is in a query string there, it
reaches the getcroc.com server, which therefore sees the code phrase along with your
IP address and the time. getcroc.com also serves the JavaScript that decrypts the
file, so this path trusts that site fully. That site's own pages also load third-party analytics and advertising scripts (Umami and Google AdSense when last checked, 2026-10-15), which CrocApp does not control. The CrocApp and croc command line paths
have no such dependency. The crocapp.dev/r/ page itself
keeps the code after the #, makes no network request and
sends no referrer.
Tailcat and DERP servers
When: the Connection setting is Automatic by default. With it, a
send of 128 MiB or more also tries a direct device-to-device connection set up
through tailcat.dev, with relay servers under
ipn.dev when the devices cannot reach each other
directly. Whichever path connects first carries the transfer. A receive follows the
sender's choice, so receiving a large file from a sender on Automatic, or from the
croc command line with its default, can use them too. Choose Relay only in
Settings and your sends never contact these servers. Smaller transfers do not
contact them at all.
What they can see: the IP addresses of both devices, when they
connect, and the size and timing of encrypted packets. The data stays end-to-end
encrypted on this path too, so they never see file contents or the code phrase.
These servers are not run by CrocApp.
github.com, update checks (Mac direct build only)
When: the Mac disk image downloaded from GitHub includes the
Sparkle updater. It reads an update list (appcast.xml) published with this
project's GitHub releases when you choose Check for Updates, and after you allow
automatic checks when Sparkle asks. If you
install an update, it downloads from GitHub too. Sparkle's system profiling is
switched off, so the request adds no hardware or system details.
What it can see: GitHub sees the usual details of any web request,
such as your IP address and the time. The iPhone, iPad and Mac App Store builds
contain no updater and make no such request.
Servers you choose
You can point CrocApp at your own croc relay, your own stored-transfer server, and a
SOCKS5 or HTTP proxy under Advanced settings. Those servers see what the matching
public server above would see, and their operator decides what they keep. Use only
servers you trust.
On your device
Camera. On iPhone and iPad, the camera is used only to scan a QR code
when you open the scanner. CrocApp reads the code on the device and stores nothing: no
photo and no video are saved or sent anywhere.
Keychain. A custom relay password, proxy credentials and the receipts
for your stored uploads (which hold the upload token and the link) are kept in the
iOS or macOS Keychain, not in plain settings. A stored-upload receipt is removed when
you revoke the link and at the first launch after it expires.
History. Transfer history stays on your device. There is no sync and
no export. It records file names (up to 20 per transfer), counts, sizes, dates, status
and a short hint of the code phrase (its first word, or only its first two characters
for most custom codes), never file contents or the full phrase.
For a stored upload it keeps the server's host name, not the link or the upload token.
Clear it any time from the history screen.
Local network. To find a nearby device and transfer directly, the
two devices look for each other with multicast messages on your local network. That
traffic stays on the local network and reaches no server. iOS asks your
permission first. Turn on Local network only to use nothing else.
This website
crocapp.dev is hosted on GitHub Pages, so GitHub sees ordinary web server details for
each page you load. The pages set no cookies and use no analytics. The home page asks
api.github.com for the project's star count, which tells
GitHub your IP address and that you loaded the page, and caches the number in your
browser's local storage, refreshing it after six hours. This page and the support page
load only their own files from crocapp.dev.
Apple
Apple runs the App Store and the operating system. If you share analytics with app
developers in your device settings, Apple may pass the developer aggregate reports
about the app. CrocApp itself adds nothing to them.
Questions and changes
Ask on the support page. CrocApp is open source, so you can
check any claim above in the
repository (opens in a new tab),
and the
security and privacy guide
covers the same ground in the documentation. If this page changes, the date at the top
changes with it.