Who we are
Rootlynq is a connectivity diagnostics product. The operating legal entity and data controller is Hexorium Inc, 1610 Avion St, Big Spring, Texas 79702. Brand roles (Rootlynq, Helios, Hexium, Hexorium) do not by themselves identify the contracting entity.
The short version
Connection tests and local reports do not require an account. A Rootlynq account signed in with Google is required to use Helios; Helios is currently included free with an account.
There are no advertising trackers and no behavioral analytics.
Rootlynq has no cloud report database; saved reports stay in your browser.
Opening Test requests the Cloudflare measurement node location and, if location details are on, asks your browser for device location. Speed measurements wait until you press Start.
Resolve can be used before any test after sign-in. A typed message sends its text to Helios. A voice call starts only when you press Talk to Helios and grant microphone access; your voice goes to OpenAI GPT Live while the call is active.
If a Rootlynq Test or optional Diagnose evidence exists, Resolve can attach that sanitized evidence to the Helios conversation automatically so Helios can use what is already known and recommend another measurement only when it would materially help.
Your Rootlynq account
Google handles sign-in and shares your Google account identifier, name, email address and profile image with Supabase Auth for your Rootlynq account. Rootlynq uses the resulting session token to check access to Helios. Supabase stores your account identity and session records; Rootlynq does not receive your Google password.
When signed in, Rootlynq's server verifies your session with Supabase before it sends a Helios message or starts a voice session. Reports and precise device location are not stored in your account. You can change your displayed name and sign out on the Account page. Contact support@rootlynq.com to request account deletion.
Helios is included free with sign-in. A $20/month Rootlynq Supporter subscription is optional and does not add features today. If you choose to subscribe, Stripe hosts checkout and the billing portal, processes payment details, and sends subscription events to Rootlynq. Rootlynq stores your Stripe customer and subscription IDs, status, verified payment state and billing period end in its dedicated Supabase project. You can cancel through the Account page's billing portal.
When you open a page
Lovable hosts the application and processes ordinary request metadata such as your IP address, browser user agent, the page requested and timestamps to serve the site. When you open Test, your browser makes a small request to Cloudflare Speed Test to identify the measurement node before you press Start. Cloudflare receives your connecting IP address and ordinary request metadata. This request may also return the provider, ASN and approximate IP-derived location of the path Cloudflare sees. If that endpoint does not return a node code, Rootlynq requests Cloudflare's edge trace and reads its node code without using its IP field. When location details are on, Test also asks the browser for device location; the browser may require your permission. After approval, Rootlynq sends a browser-rounded point through its server to Geoapify when configured, or through Rootlynq's Fly probe to public OpenStreetMap Nominatim, to obtain a city label. If the site server cannot reach the Fly probe, the browser may send the same rounded point directly to that first-party probe. No download, upload or latency speed test runs until you press Start.
When you start the connection test
Rootlynq's browser engine sends bounded traffic through Cloudflare's measurement transport. Standard mode can add a separate Rootlynq measurement node only after its capacity gate and live pilot pass. The response phase lasts 8 seconds; each download/upload phase lasts 8 or 12 seconds based on a short pilot before the phase begins. All servers share a 4 GB ceiling per direction, about 8 GB combined plus small setup probes; slower connections use less. Single mode keeps one Cloudflare transfer worker. The engine owns transfer scheduling, latency sampling and throughput calculation. A budget-limited or otherwise incomplete phase is never presented as a completed speed result.
Rootlynq may send only approved server IDs, network labels, pilot speed, timing and byte budget through its server to the governed Helios runtime during Standard Test. This is a shadow measurement plan and cannot change the live transfer or result. The request excludes public IP, ISP, device identity, precise location and report ID. Rootlynq refreshes Cloudflare path metadata after Start and may separately use RDAP to show the registered network visible to rootlynq.com. A relay or VPN can make that path differ from the subscriber network. Optional device location stays in page memory at full precision; only a two-decimal rounded point can be sent through Rootlynq to the configured hosted geocoder, or through Rootlynq's Fly probe to public OpenStreetMap Nominatim, for a city label.
The Test card may show the public IP Rootlynq observes, but the full value stays in page memory and is excluded from reports, copied text and Helios evidence. If Safari Private Relay hides the provider, Rootlynq explains Safari's supported Show IP Address control rather than bypassing the privacy feature.
Optional Deep Diagnosis
Deep Diagnosis is a separate user-triggered step after a Standard adaptive test. It can add up to about 30 MB of Cloudflare measurement traffic to compare one real HTTP transfer with the multiple-connection result.
It also measures first-party web responsiveness against Rootlynq itself. The optional first-party probe.rootlynq.com alias is used to create a separate origin for DNS, TCP and TLS setup timing. If that alias is unavailable, or the browser does not expose a fresh setup, those values stay unknown instead of being displayed as 0 ms.
When configured, v4.rootlynq.com and v6.rootlynq.com are first-party A-only and AAAA-only probe aliases used only to compare IPv4/IPv6 HTTPS reachability and elapsed request time. They do not provide ICMP ping or traceroute.
Deep Diagnosis does not add a new third-party measurement provider.
Optional real-time quality test
The Real-time quality test uses Cloudflare Speedtest's TURN-based UDP round-trip probe for packet loss and a separate silent synthetic WebRTC audio path for jitter and RTC round-trip time. It does not request microphone or camera permission and does not send your voice, video or device media.
Rootlynq obtains short-lived TURN credentials through its server and Hexium; the long-lived Cloudflare TURN key is never sent to your browser. The synthetic WebRTC leg forces relay transport so its jitter and RTT describe the relayed real-time path rather than a local browser-to-browser shortcut.
Cloudflare's TURN service necessarily sees the network address used to create the relay. Rootlynq keeps the resulting quality metrics in page memory and includes only the sanitized metrics — not TURN credentials or raw ICE candidates — in the optional Helios evidence bundle.
Optional Network Watch
After a standard diagnosis, Helios may recommend a lightweight Network Watch for intermittent problems. It runs only after your approval, while the page stays active, and makes a short series of small no-cache HTTPS requests to Rootlynq's own timing endpoint. It does not run another throughput test.
Network Watch summarizes first-party HTTPS response time, response variation, request failures and whether browser visibility was interrupted. A failed HTTP request is not labeled packet loss, and browser background suspension can make the watch partial.
The bounded Network Watch summary may be added to the active troubleshooting case and sanitized Helios evidence.
Optional Rootlynq for Windows pairing
A signed-in customer can enter a six-digit code shown by Rootlynq for Windows to connect rootlynq.com to a read-only diagnostic agent running on 127.0.0.1 on that PC. Modern Chromium browsers may show a Local Network Access permission prompt before allowing the website to reach the loopback agent. Pairing lasts only for the active page visit or the agent token lifetime, whichever ends first; the browser keeps the pairing token only in memory.
During a Helios conversation, the paired agent can share bounded adapter connection state, Windows-reported Wi-Fi link quality when available, a local-gateway ICMP observation, OS name-resolution state, direct TCP reachability to Rootlynq, the PC manufacturer/model from Windows, and a gateway manufacturer/model only when the gateway advertises one through the read-only discovery path. These fields pass through Rootlynq to Hexium Helios.
Local IPs, gateway addresses, DNS server addresses, adapter identifiers, SSID/BSSID, MAC addresses, serial numbers and full public IP are excluded by schema. A possible VPN is a heuristic, not proof that traffic is successfully tunneled. The agent does not identify an ONT/ONU or read optical status unless a future authorized interface supplies that direct telemetry.
What stays on your device
Saved reports: at most 20, each deleted automatically after 30 days, stored in your browser's local storage.
Temporal diagnostic history: up to 48 sanitized measurement samples from Rootlynq speed tests, verification runs, real-time quality checks and Network Watch that actually run in this browser are kept locally for up to 30 days so Helios can compare behavior over time. Opening or importing an unsigned support report does not add it to this measured timeline. This history contains metrics and timestamps, not public IP, ASN, location, Wi-Fi names, MAC addresses or device identifiers.
Active troubleshooting case: the current report, optional user-reported symptom/context, recent Helios conversation turns, bounded test history, and a coarse provider/network label plus browser-reported connection type may be kept in session storage so Test, Diagnose and Resolve can work as one case. Full/partial IP, ASN and location are not stored in the case. Closing the browser session can clear this active-case state depending on browser behavior.
Preferences: speed unit, motion, connection mode and whether to show approximate location.
You control copy, export (JSON), import (up to 256 KB) and deletion from Results, Reports and Settings. Deleting results in Settings also deletes local temporal diagnostic history; Delete everything also clears the active case.
An offline application-shell cache may be used by the browser when the installable app is enabled.
Fields intentionally excluded from reports
Full or partial IP address, device-location coordinates, SSID, BSSID, local IP addresses, MAC addresses, device identifiers, city and ASN are never written into saved or exported reports.
Browser measurement limits
A browser cannot read Wi-Fi signal, router state, the operating system's DNS resolver state, or other devices on your network. The standard browser speed test also does not provide true packet-loss telemetry. Rootlynq can optionally measure packet loss, jitter and RTT on a synthetic WebRTC/TURN path; those values describe that RTC path only and do not identify where loss occurred.
Helios
A Standard Test may send a small, sanitized server measurement plan to Helios. Its advice is currently evaluated in shadow mode and cannot change the test or measured number. The plan contains only approved server IDs, coarse timing, pilot throughput and the fixed data budget.
After you sign in, Resolve works before or after a Test. When you type, Rootlynq sends that message, a bounded recent transcript and sanitized case evidence through Hexium's governed Helios runtime. The case evidence can include a bounded hypothesis ledger, prior sanitized measurement history and a Network Watch summary so Helios can avoid restarting the diagnosis each turn. For diagnosis, Hexium also performs a fresh public-web research pass using a separate sanitized query that contains only non-identifying diagnostic facts and coarse provider context. When you choose a voice call, Hexium creates an OpenAI GPT Live session and your browser sends microphone audio to OpenAI over WebRTC while the call is active. Rootlynq asks for no audio recording and requests store:false; OpenAI may retain abuse monitoring data under its API data controls. Text turns stay in your browser session storage.
You may ask Helios by voice to run an allowed Rootlynq check. New diagnostic/test requests are delegated to the governed technician, which returns a typed Rootlynq action; the live voice layer does not start a new test from keywords alone. The browser offers the check, describes its possible data use and waits for your separate approval. It runs the measurement locally and sends verified progress and sanitized results to Helios; speech alone cannot invent a measurement. You can also accept an allowed check Helios recommends.
The Helios evidence schema excludes full/partial public IP, ASN, SSID, BSSID, MAC or local IP, precise or city-level location, report IDs, TURN credentials, raw ICE candidates, serial numbers and raw device identifiers. It may include the coarse registered provider/network organization and browser-reported connection type so Helios can research current provider behavior. When a signed-in customer pairs Rootlynq for Windows, Helios may additionally receive the bounded native evidence described above, including adapter state, Wi-Fi link quality when Windows supplies it, gateway/DNS/TCP observations, and PC or gateway manufacturer/model labels. Those labels are client-reported and do not prove an ONT model or provider fault. Before each diagnostic reasoning or technician turn, Hexium performs a governed public-web research pass from a sanitized query built from measurements, structured symptom context, allowlisted privacy-safe reported signals and that coarse network context; raw transcript text and network identifiers are not put into the web query. Helios must distinguish current research from measured evidence and cannot turn provider-wide behavior into proof of a customer-specific fault.
Your rights
See Privacy Rights for how to request access, correction or deletion, and how appeals work. Because reports are stored only in your browser, you can delete them yourself at any time in Settings.
Contact and changes
Privacy questions: support@rootlynq.com. Effective September 27, 2026; last updated September 29, 2026. We will update this notice before adding cloud report storage, analytics or a new data recipient beyond those disclosed here.
Rootlynq