Simple File Transfer Privacy Policy
Last updated: 2026-07-16
Simple File Transfer transfers files between devices on your local network. The current local transfer mode does not require a Simple File Transfer account and does not upload files to a Simple File Transfer cloud service.
Data Processed Locally
- Files you choose to send or receive.
- Text and HTTP/HTTPS links you explicitly choose to send. Clipboard text or an image is read only after you press the clipboard send command or the tray's clipboard-image command.
- Pairing PINs, device/certificate fingerprints, and native sender public-key fingerprints used to authorize the selected peer and remember an explicitly trusted device.
- Local network addresses needed to connect your devices.
- Basic transfer metadata such as filename, folder-relative paths, size, modification time, per-file integrity hashes, sender label, and completion status.
This data is used only to complete local device-to-device transfers.
Data Collection
The current build does not include analytics, advertising SDKs, crash reporting SDKs, or cloud file storage.
The repository includes a source-level HTTPS/WebRTC web route and Cloudflare signaling service. When that route is enabled, Cloudflare temporarily processes a random session ID, hashed host/join connection capabilities, room expiry, message counters, and encrypted signaling ciphertext. The service is designed to reject file bytes, filenames, device labels, and unencrypted WebRTC negotiation data. Signaling messages are not stored. The remaining room state is deleted after at most ten minutes. Accepted file, text, link, and clipboard bytes travel over the direct browser data channel, not through Cloudflare. The browser route reads or writes clipboard text only after you press the corresponding action and never opens a received link automatically.
When the direct web route is opened, its service worker stores only versioned Simple File Transfer application code, HTML, CSS, the Web App Manifest, and brand icons in the browser's origin-scoped cache so the application shell can launch offline. It does not cache selected or received file bytes, file offers, signaling messages, invite fragments, room capabilities, or encryption keys. Room credentials remain limited to the current browser session storage. Accepted files may be written temporarily to the browser's origin-private file system, or as bounded Blob records in IndexedDB when OPFS is unavailable, so large receives do not require retaining the complete payload on the main thread. Simple File Transfer removes temporary parts after cancellation or when the completed receive is released, and best-effort removes Simple File Transfer parts older than 24 hours when a later receive starts. Browsers or private modes without either storage path use memory. Removing the installed web app or clearing site data removes browser-managed application storage according to the browser's controls.
The public web application and these legal pages may be delivered by Cloudflare Pages. Simple File Transfer does not configure Pages Functions, analytics, advertising, or payload storage. Normal hosting and network providers may still process connection data such as IP address, request time, requested path, and browser headers to deliver and protect the service under their own policies. Simple File Transfer does not place transfer names, file bytes, room keys, or room capabilities in public page URLs or the Pages build.
Purchases
Optional Premium purchases are processed by Apple App Store or Microsoft Store. Simple File Transfer reads the resulting entitlement status but does not receive or store your payment-card details. Store operators process purchase and account data under their own privacy policies.
File Storage
On Windows, received files, reconstructed folders, and typed payload files are saved to
Downloads\Simple File Transfer by default or to the receive folder the user selects in the app. Windows
reads clipboard text or an image only after the user presses Send clipboard or the tray's
Send clipboard image command; Simple File Transfer does not monitor the Windows clipboard in the
background. A clipboard image is encoded as a PNG under the current user's local application data
and placed in the same explicit review queue as selected files. The staged PNG is removed after a
verified send or when the user clears the queue; best-effort cleanup also removes staged clipboard
PNGs after 24 hours and limits the staging folder to 100 files. Files still present in the active
review queue are protected from age-based cleanup until they are sent, cleared, or the app exits.
Windows Explorer integration is optional. After the user presses Add in Simple File Transfer, the app
creates a shortcut in the current user's Explorer Send To folder. File and folder paths selected
through that shortcut are forwarded to the existing Simple File Transfer process over a current-user-only
local channel. The user can also drag files and folders from Windows into the Simple File Transfer send
card. Both entry points place normalized paths in the same in-memory review queue, limited to 100
items. Simple File Transfer does not scan Explorer, watch folders by default, read file contents, or start a transfer
merely because a shortcut or drop was used. The user must choose a destination and press
Send selection. The queue can be cleared without sending, and the user can remove the shortcut
from inside Simple File Transfer.
Optional Windows screenshot-folder watching is off until the user explicitly chooses a folder, confirms an on-screen disclosure that names that folder, and presses Save and enable watching. Monitoring uses an activation cursor so files that already existed are not imported. While enabled, Simple File Transfer may observe filesystem create/change/rename/delete events under only that selected directory, probe size and last-write time for stability, and hash stable captures for deduplication and exact-byte transfer. Modes are Review (default), Ask, or Auto-send to an explicitly trusted device. A tray indicator and one-click Pause remain available while watching. Disable and clear stops the watcher and erases the capture outbox. The outbox stores path, size, SHA-256, and timestamps only — never pairing PINs, private keys, or transfer tokens. An optional Lifetime Pro quiet-hours setting stores only enabled state and local start/end minutes inside the same current-user DPAPI-protected settings file. Captures remain in the outbox during that interval. If entitlement verification is lost while the schedule is enabled, unattended sending remains paused until ownership is restored or the user turns the schedule off.
Stable outgoing Windows file and folder transfers may store a resume descriptor under the current user's local application data. It contains the receiver fingerprint, selected source path, target platform, size, whole-body and manifest SHA-256 values, transfer ID, chunk size, creation time, and transfer-scoped upload token. Windows Data Protection API encrypts the descriptor for the current signed-in user. Simple File Transfer retains at most 16 descriptors for no longer than seven days and removes one after verified completion, explicit discard, invalid receiver state, or a changed source. In-memory text, link, and clipboard sends do not retain a resume descriptor.
The Windows app also keeps one current-user-protected local state file containing the last selected target platform, the receive-folder path you selected, up to 100 verified completed transfer records for 30 days, and up to 50 explicitly trusted native sender identities. A completion record can contain the local service fingerprint, transfer ID, item name, kind, size, sender and target labels, creation time, and SHA-256 value. A trusted identity record contains the sender public-key SHA-256 fingerprint, device display name, native platform, and trust/last seen timestamps. It does not contain the sender private key, pairing PIN, or transfer grant. Windows protects this state for the current signed-in user with DPAPI. The app provides Clear history and Forget trusted device actions. Sender labels by themselves are not trusted identities.
On Android, received files are saved only into the Storage Access Framework folder selected by the user. Transfer history and paired-receiver fingerprints remain in app-private storage, and Android backup is disabled. Android also creates a P-256 sender signing key in Android Keystore so a receiving Windows app can verify that later requests came from the same native app installation. Simple File Transfer sends only the public key and signatures; it does not export the private key.
On iOS, downloaded files and reconstructed folders are saved inside the app documents container and can be exported using the iOS share sheet. Folder bodies are expanded only from the authenticated portable manifest after the complete body and each file hash are verified.
On iOS and macOS, a Share Extension copies the provider-supplied file representation into its app-private temporary directory before sending because the operating system's provider URL is short-lived. Simple File Transfer does not resize or recompress that representation. The extension removes its temporary copy after success, failure, or cancellation. These short-lived extension sends do not retain resumable-transfer descriptors that would point to deleted temporary files.
The Safari Web Extension acts only after you press its toolbar action and then choose an explicit button. It can copy either the text you selected or the current HTTP/HTTPS page link to the system clipboard and open the fixed Simple File Transfer web app. It does not read the page body, monitor browsing history, use cookies, inject a background script, send the selection to a server, or copy anything automatically. The extension contains no purchase, advertising, or external-checkout UI.
Text, link, and clipboard payloads are encoded as exact UTF-8 bytes in memory, hashed for integrity, and sent directly to the selected local peer. Simple File Transfer does not monitor the clipboard in the background and does not create a persistent resume descriptor or temporary payload file for these in-memory sends. A Share Extension uses semantic text or web-URL representations only when the provider is not presenting a real file attachment or open-in-place file.
On iOS and macOS, received text, links, and clipboard payloads are exposed only after their declared kind, MIME type, byte length, and sender SHA-256 agree with the downloaded bytes. They are held in the app's memory for presentation and are never copied to the system clipboard or opened as a link until you press the corresponding action. The iOS download temporary file is removed after verification.
On macOS, receive mode temporarily stages authenticated, hash-verified incoming items inside the app sandbox. Simple File Transfer requests notification permission for pending arrivals and requires Accept or Reject before delivering a file or folder or exposing a typed payload. It stores a security-scoped bookmark so the sandboxed app can reuse that destination, plus local pairing details and bounded transfer history in app or App Group preferences. Rejected or successfully delivered staging is removed by the shared transfer core.
On iOS and macOS, resumable outgoing transfers started from stable app-selected files store a protected App Group descriptor containing the receiver fingerprint, source item path, size, modification time, whole-body and folder-manifest SHA-256 hashes, target platform, transfer ID, chunk size, creation time, and transfer-scoped upload token. Simple File Transfer keeps at most 16 descriptors for no longer than seven days. A descriptor is deleted after verified completion or when pairing is cleared, is excluded from device backups, and uses Apple file data protection until the user first unlocks the device after startup.
Network Use
Simple File Transfer uses the local network to discover devices and transfer files. Native mobile clients pin the recipient's HTTPS certificate from the pairing code. Transfers are intended for trusted home or office Wi-Fi networks.
The source-level public HTTPS mode uses Cloudflare only to connect two peers and exchange end-to-end-encrypted WebRTC signaling. The signaling service does not relay or store transferred files. If an optional encrypted file relay is introduced later, this policy will be updated before that feature is offered.
Children
Simple File Transfer is a general productivity utility and is not directed to children.
Contact
Support: support@indiedevwilliam.com
The production build replaces the address above with the owner-approved public support contact.