Trusted Account Signal
BotShield’s verification endpoint supports two distinct signal paths. The path that fires depends on what the querying platform knows about the user — and both produce an authoritativevalid response backed by the same underlying verification event.
The Two Paths
Path 1 — Anonymous Verified Human Presence
Hardware-backed HPS event within a TTL window. This is the V2 default. A Face ID / Touch ID event on a registered device attests presence. The signal decays over time per the Signal Durability multiplier.
Path 2 — Verified Name Presence Attestation
Trusted Account match produces a standing valid signal. If the querying platform is itself a Trusted Account linked to this user, the match IS the signal — no TTL evaluation. The user authorized this relationship inside an active Face-ID-gated BotShield session. The relationship is the proof.
Why Two Paths
The two paths answer different questions about the same human:| Path | Identity | Signal source | TTL | Decay | Strength |
|---|---|---|---|---|---|
| Path 1 | Anonymous | Hardware HPS (Face ID / Secure Enclave) | Yes — signal window | Yes, weakens without activity | Time-bound |
| Path 2 | Identity-linked via Trusted Account | Trusted Account linkage match | None — standing boolean | Only collapses on linkage removal or 90-day absence | Identity-bound, does not decay |
How Path 2 Fires
When a platform callssignal/check with a querying_platform value, BotShield evaluates:
Is the querying platform a Trusted Account for this user?
BotShield looks up the user’s
verified_accounts for an active row matching the querying_platform string (e.g. paypal, linkedin, x).Is the user still within the 90-day BotShield activity window?
If the user has been auto-signed-out due to 90+ days of inactivity, Path 2 collapses along with Path 1. No valid BotShield account, no signal.
Both checks pass → Path 2 match
Return
{ valid: true, path: "trusted_account", signal_strength: "..." }. No TTL evaluation. The linkage is the signal.Example Requests
Anonymous (Path 1 only):path: "trusted_account". If the same user has not linked PayPal, the response falls through to Path 1 and returns path: "hps" (or null when invalid).
Why Path 2 Does Not Compromise the Security Model
The verification event already happened
When a user linked a Trusted Account, the OAuth flow ran inside an active BotShield session that required Face ID to establish. By the time the user authorized the connection to PayPal or LinkedIn, BotShield had already attested that a real verified human was on that device. The linkage record carries the timestamp of that verification event. The ongoing boolean from account match is attesting to that moment — not to continuous presence, but to a verified human deliberately authorizing this relationship. That is a sound security guarantee.BotShield is not trusting the platform’s auth method
A user may type a username and password to authorize their PayPal connection. This does not weaken the signal. BotShield is not trusting PayPal’s authentication method. BotShield is trusting its own Face-ID-gated session that preceded the OAuth flow. When a platform uses passkeys for its own authentication — PayPal supports them, LinkedIn is rolling them out — both ends of the linkage are hardware-backed. This is a stronger combined proof, but the security guarantee does not depend on it.The attack vector is closed
An attacker who compromises a user’s PayPal credentials cannot use that access to generate a BotShield signal. To establish or modify a Trusted Account linkage, they would need to be inside an active BotShield session that required Face ID on the user’s registered device. The attack cannot be mounted from the platform side in.The circuit breaker is deterministic
The Path 2 signal collapses immediately and deterministically when:- The user removes the Trusted Account linkage
- BotShield detects a compromise signal from the linked platform
- The user has no BotShield activity for 90 days (auto sign-out fires, nulling all timestamps)
Path 2 Linkage Establishment
The Trusted Account linkage record itself is established inside an active, Face-ID-gated BotShield session:What Platforms Should Do With path
The path field tells the querying platform how the signal was produced, not just whether it is valid. Platforms that want to apply stricter rules to anonymous signals can branch on it:
Identity Corroboration, Not Identity Verification
Trusted Accounts confirm that a verified human authorized this relationship. They do not attest that the human is present on those platforms. BotShield cannot and does not claim to verify human presence on PayPal or LinkedIn — only that a BotShield-verified human linked their account there. This distinction is maintained in all product copy, developer documentation, and platform conversations. The two jobs are:- Face ID + Secure Enclave — sole source of presence attestation
- Trusted Account linkage — identity corroboration, produces a standing verified signal for the querying platform
Related Concepts
- Signal Strength — the composite tier
signal/checkreturns - Signal Durability — the Path 1 streak mechanism
- Human Presence — what BotShield verifies