Home/Blog/Kasada
Bot Detection

How Kasada Anti-Bot Works

Kasada takes a deliberately different approach to bot defense: no CAPTCHA, a client-side proof-of-work challenge, and frequently changing client scripts. Here's a neutral look at how that model detects and stops advanced automation.

8 min read·Last updated: May 2026

Quick Answer

Kasada defends against advanced automation by running a client-side proof-of-work challenge inside a custom, obfuscated JavaScript virtual machine. Its client scripts are polymorphic — they change frequently — and instead of showing a CAPTCHA, it blocks clients that fail the check outright.

  • Proof-of-work runs inside an obfuscated JS VM with polymorphic client scripts
  • No-CAPTCHA philosophy: failed clients are blocked rather than shown a puzzle
  • Founded 2015 (CEO Sam Crowther); raised US$20M in February 2026

This guide explains how Kasada detects automation and why its design choices make large-scale scripting expensive. It is not a bypass guide. Several technical specifics below are documented across independent security analyses rather than in Kasada's own primary docs, and we flag them as such.

Who Kasada is

Kasada was founded in 2015 and is led by CEO Sam Crowther. It positions itself against advanced automation and AI-driven abuse for highly targeted enterprises — the kind of high-value sites that face persistent, well-resourced bot operators.

On February 3, 2026, Kasada announced a US$20M funding round led by EQT, to fund global expansion and what it describes as "agentic defense" and fraud prevention — reflecting the same AI-traffic shift seen across the bot-defense industry.

Proof-of-work inside an obfuscated JS VM

Kasada's defining approach is a client-side proof-of-work challenge that runs inside a custom, obfuscated JavaScript virtual machine. The proof-of-work forces every client to spend real computation before it is trusted — cheap for one genuine visitor, but costly at the scale automation needs.

Across published security analyses, Kasada's toolkit is referred to as KPSDK, producing response headers such as x-kpsdk-ct and x-kpsdk-cd. These specifics are documented in independent analyses, not Kasada primary docs.

Polymorphic client scripts

Kasada's client scripts are polymorphic — they change frequently rather than staying static. That means a solver reverse-engineered against one version of the script cannot be relied on to keep working, raising the ongoing cost of automated solving. It is a moving target by design.

What the block looks like (no CAPTCHA)

Kasada follows a no-CAPTCHA philosophy: there is no puzzle for a flagged client to solve. A client that fails the proof-of-work or behaves inconsistently is simply blocked outright. For a legitimate human in a real browser, the proof-of-work runs invisibly and the page just loads.

The absence of a visible challenge is itself the design: there is nothing for an automated solver to interact with, only a pass-or-block decision.

Why mobile / CGNAT IPs are treated differently

Even a model built around client-side proof-of-work has to weigh network reputation — and that's where defenders hit their hardest trade-off. Mobile carrier IPs sit behind Carrier-Grade NAT (CGNAT): thousands of real subscribers share one public address, so blocking it harms a crowd of humans rather than one bot.

Cloudflare quantified this in its October 29, 2025 blog, "detecting CGN to reduce collateral damage." Cloudflare reported CGNAT IPs were being rate-limited roughly 3× more often than non-CGNAT IPs despite showing lower bot activity, and built CGN detection to avoid penalizing the many humans on those shared addresses.

This is a documented defender design constraint, not a bypass. It explains why mobile carrier IPs carry higher default trust at the network layer — over-blocking them is costly. See CGNAT and mobile proxies.

Sources

Related Guides

Test on real mobile carrier IPs

Genuine 4G/5G IPs in the USA, UK, and Netherlands for legitimate, compliant data work. Test it for $5.