Virtualized logic
Move selected JavaScript routines into a dedicated instruction set, adding distance between shipped code and its original intent.
Stop scraping, credential attacks, transaction abuse, and fraud before they reach your app — without CAPTCHAs, slowdowns, or extra steps for real users.
Every verdict at the edge — allowed, blocked, challenged, monitored — in one console. Drill into a session, see why it scored, and tune the rule that fired without leaving the page.
Monitor protected requests, enforcement outcomes, and risk concentration across your active sites.
Requests evaluated by Sentra over time, split by verdict.
How the rule engine resolved traffic — allowed, challenged, or blocked.
| Session ID | IP address | Location | Risk | Action | Threat |
|---|---|---|---|---|---|
| sess_f9a2b341 | 91.108.4.1 | Moscow, RU | 94 | ● Block | Credential stuffing |
| sess_a1c93e02 | 203.0.113.45 | New York, US | 12 | ● Allow | — |
| sess_7d8f1290 | 45.33.32.156 | Fremont, US | 61 | ● Challenge | Suspicious timing |
| sess_e3190aff | 198.51.100.22 | Chicago, US | 88 | ● Block | Card testing |
| sess_b8d12904 | 185.220.101.4 | Amsterdam, NL | 91 | ● Block | API scraping |
A login, a payment, a refund. See how they connect. Bring account activity, device signals, and risk decisions into one investigation.
Monitor account activity, risk signals, and policy decisions.
| Time | Event | Account | Risk score | Decision | Location | Primary signal |
|---|
No activity matches these filters. Try another decision or reset your filters.
6 entities connected through device activity
The sequence behind the decision
Block a checkout when:
The current policy uses a threshold of 90. Lower values include more sessions.
Both rules evaluated against the same checkout activity
These are rule matches, not confirmed fraud. Review the affected activity before changing enforcement.
| Time | Account | Risk | Current rule | Proposed rule | Shared-device signal |
|---|
No decisions change at this threshold.
Client-side code is exposed by design. We’re building a protection layer that makes sensitive JavaScript harder to inspect, modify, and reuse in automated attacks.
Upload JavaScript for obfuscation and configure your protection profile.
Select a file to prepare it for protection.
Upload your source file, then apply your protection profile.
Built in layers. Designed for your build.
Move selected JavaScript routines into a dedicated instruction set, adding distance between shipped code and its original intent.
Vary transformed output between builds to make repeatable signatures and reusable analysis less straightforward.
Define intended domains and deployment windows for protected bundles, alongside server-enforced access controls.
Check protected routines for unexpected changes and surface integrity signals to your application.
Look for debugging, instrumentation, and altered browser APIs that could change how sensitive logic runs.
Associate protected bundles with a release so teams can trace unexpected copies back to a build.
Decide how your application should respond to integrity signals—from recording an event to requesting server verification.
Bring runtime signals into your monitoring workflow to investigate unusual behavior across releases.
Client-side protection adds friction; keep secrets, pricing validation, and authorization on the server.