Truthbeam docs
v1.0.0
Get help
● Set up

Consent
nothing leaves the phone before it.

The first time a check needs the server, the app explains what is sent, where it goes, what is removed first and what is kept, and names every outside service your server uses. Nothing is sent until the person agrees.

asked before the first server checkasked again on changelocal-only mode

01What the consent screen says

The screen is titled "Before anything leaves this phone" and has four parts:

  • What is sent: only what the person chose to check (the text, the link or the file) plus an app install code, so the server can count daily checks. No name, phone number or contacts.
  • Where it goes: to your server, and from there to the outside services it lists by name (see below).
  • What is removed first: card numbers, account numbers, one-time codes, passwords and ID numbers are removed from text on the phone and again on the server. Pictures, videos and recordings are sent as they are. See Privacy.
  • What is kept: files are deleted when the check ends; the server keeps a fingerprint (hash) of what was checked and the result; a public page exists only if the person shares one.

"Allow server checks" agrees. Declining keeps the app in local-only mode: the link, message and e-mail rules on the phone still run, and everything that needs the server is listed as not checked. The choice can be changed at any time in Settings.

If you keep results longer than 24 hours

The consent text says results are kept for up to 24 hours, the default of the console's Privacy setting. If you raise Keep check results for (hours), change the text consentKeptBody in app/lib/l10n/app_en.arb, app_sk.arb and app_cs.arb to match, and raise consentVersion in app/lib/src/services/consent.dart so everyone is asked again.

02The services it names

The server reports the services that are on and configured in /v1/config, and the app shows their names. Each entry has an id that names the destination:

ServiceIdName shown
Web RiskwebriskGoogle Web Risk
RDAPrdapDomain registries (RDAP)
Fact Check ToolsfactcheckGoogle Fact Check Tools
Web researchgrounded.anthropic or grounded.perplexity; with your own base URL on another host grounded.<vendor>@<host>Anthropic, Perplexity, or "Anthropic (via <host>)"
SightenginesightengineSightengine
Cloud VisionvisionGoogle Cloud Vision
Speech to texttranscribe.openai, or transcribe@<host> with your own base URLOpenAI, or "Transcription (via <host>)"
Language model (assistant)ai.anthropic or ai.openai-compatible; with a base URL on another host ai@<host>"AI assistant (Anthropic)", "AI assistant (OpenAI-compatible service)", or "AI assistant (via <host>)"

The language model is listed whenever the assistant is on and has a model and key for the free or the Pro plan, because the same model reads messages, pages and screenshots, finds claims and writes summaries, not only the chat. Content Credentials is never listed: it runs on your server.

A local model's address is shown to every user

When the assistant's API base URL points at your own or a local model, its host (for example 192.168.1.10:11434) becomes part of the id and of the name on the consent screen, so every app user sees it. Use a host name you are happy to show.

03When people are asked again

  • A service changes. The app keeps a SHA-256 fingerprint of the sorted ids it agreed to. When you switch a service on or off, change the research provider or the assistant API type, or point a service at another host, the ids change and the app asks again before the next server check. Renaming the provider label alone does not.
  • The consent text changes. The app stores the version it agreed to (consentVersion, 2 in 1.0.0). A new version asks everyone again; server checks stay off until they answer.

Before consent, the app still fetches /v1/config (limits, the list of services, Pro and ads settings) and the home screen alerts and trends. These requests carry no checked content.

04The assistant

The assistant chat needs the same consent; without it the app holds the chat back and offers to open the consent settings. The console's Provider name shown to users appears in the app's notice that says where assistant messages are sent.