Guides

Client-side verdicts

The verdicts each SDK computes on the device, what they are good for, and why decisions should still be made on your server.

Every client SDK computes verdicts on the device, before and independently of the server. They arrive with the identify result as verdicts.

A verdict
result.verdicts.automation
// { value: true, confidence: 'high', reasons: [ … ] }

Verdict

  • valueboolean
    Whether the verdict matched.
  • confidencestring
    low, medium or high.
  • reasonsstring[]
    Short, stable tokens for the evidence, strongest first. Useful for logging.

Verdicts by platform

PlatformVerdicts
Webincognito, shields, tor, emulator, automation, farm
iOSjailbreak, simulator, instrumentation, mitm, automation, tampering, farm
Androidroot, emulator, appCloner, instrumentation, mitm, automation, tampering, farm

shields means anti-fingerprinting protections are active. It describes a privacy choice, and on its own is never a reason to challenge anyone.

What they are for

  • Adapting the interface immediately, such as showing a second-factor step before the form is submitted.
  • Collecting without sending, with submit: false, to test or to debug.
  • Logging what the device looked like alongside your own events.

What they are not for

const result = await fingerly.identify({ tag: 'login' })
if (result.verdicts.automation.value) showSecondFactorStep()

In framework SDKs

The framework SDKs read one verdict with a confidence floor through useVerdict, injectVerdict and their equivalents, and offer isSuspicious, which is true when any verdict matched at medium or above.