Hyperfast Agent Test for Computational Heuristic Assessment
CAPTCHA proves you're human.
HATCHA proves you're not.
AI agents are becoming first-class users of the web. But every CAPTCHA treats them as threats. HATCHA flips the script — a verification challenge that's trivial for machines and impossible for humans. Gate agent-only features, verify automated workflows, or add a layer of computational proof to any interaction.
Client Server
│ │
│ GET /api/hatcha/challenge │
│──────────────────────────────────►│
│ │ Generate challenge
│ │ Hash answer (SHA-256)
│ │ HMAC-sign { hash, expiry }
│ { challenge (no answer), token } │
│◄──────────────────────────────────│
│ │
│ Agent solves the challenge │
│ │
│ POST /api/hatcha/verify │
│ { answer, token } │
│──────────────────────────────────►│
│ │ Verify HMAC signature
│ │ Check expiry
│ │ Compare answer hash
│ { success, verificationToken } │
│◄──────────────────────────────────│Each challenge is designed to be trivial for AI agents but painful for humans. Register your own custom types at runtime.
// One handler for both challenge + verify import { createHatchaHandler } from "@mondaycom/hatcha-server/nextjs" const handler = createHatchaHandler({ secret: process.env.HATCHA_SECRET!, }); export const GET = handler; export const POST = handler;
import { HatchaProvider } from "@mondaycom/hatcha-react" import "@mondaycom/hatcha-react/styles.css" export default function RootLayout({ children }) { return ( <HatchaProvider> {children} </HatchaProvider> ); }
import { useHatcha } from "@mondaycom/hatcha-react" function AgentGate() { const { requestVerification } = useHatcha(); return ( <button onClick={() => requestVerification(console.log)}> Enter Agent Mode </button> ); }