# Ribaunt ## Docs - [createChallenge](https://captcha.ribaunt.com/api/create-challenge.md): createChallenge(difficulty, amount, ttlSeconds) issues signed JWT challenge tokens for Ribaunt proof-of-work CAPTCHA verification on the server. - [solveChallenge](https://captcha.ribaunt.com/api/solve-challenge.md): solveChallenge(token, options?) solves JWT challenge tokens synchronously. Use in tests and tooling — not in production request handlers. - [Types](https://captcha.ribaunt.com/api/types.md): Complete TypeScript type reference for Ribaunt: ChallengeToken, ChallengeSolution, ReplayStore, VerifySolutionOptions, VerifyWarning, and more. - [verifySolution](https://captcha.ribaunt.com/api/verify-solution.md): verifySolution(token, nonce, options?) validates JWT signatures, hash proofs, expiry, and replay prevention. Returns Promise. - [How Ribaunt Works](https://captcha.ribaunt.com/concepts/how-it-works.md): Understand the proof-of-work challenge-response flow behind Ribaunt: JWT challenge issuance, browser solving with Web Crypto, and server-side verification. - [Replay Protection](https://captcha.ribaunt.com/concepts/replay-protection.md): Learn how Ribaunt prevents challenge token reuse with process-local and remote replay stores, and when to use each mode for your deployment. - [Testing](https://captcha.ribaunt.com/guides/testing.md): Learn how to test your Ribaunt CAPTCHA integration using solveChallenge for end-to-end flows and bypassing the widget in unit tests. - [Troubleshooting](https://captcha.ribaunt.com/guides/troubleshooting.md): Diagnose and fix common Ribaunt CAPTCHA issues: RIBAUNT_SECRET errors, Web Crypto failures, expired tokens, replay detection, and widget loading. - [Vanilla JS](https://captcha.ribaunt.com/integrations/html.md): Embed the Ribaunt CAPTCHA web component in any HTML page without a framework. Listen for verify and error events to control form submission. - [Next.js](https://captcha.ribaunt.com/integrations/nextjs.md): Add Ribaunt CAPTCHA to Next.js using the React wrapper in a client component. Covers App Router setup, SSR guards, and environment variable safety. - [React](https://captcha.ribaunt.com/integrations/react.md): Use the RibauntWidget React wrapper to add CAPTCHA to your React app with typed callback props, imperative ref handle, and live prop syncing. - [Vue](https://captcha.ribaunt.com/integrations/vue.md): Add the Ribaunt CAPTCHA web component to a Vue 3 Vite project. Configure Vue to recognize the custom element and bind events reactively in templates. - [Welcome!](https://captcha.ribaunt.com/introduction.md): Learn what Ribaunt is, how proof-of-work CAPTCHA protects your forms and APIs, and what makes Ribaunt stateless and easy to integrate. - [Quickstart](https://captcha.ribaunt.com/quickstart.md): Install Ribaunt, set your secret, add two server endpoints for challenges and verification, and drop the browser widget into your page in minutes. - [Express.js](https://captcha.ribaunt.com/server/express.md): Set up challenge generation and solution verification endpoints in an Express.js server using Ribaunt's createChallenge and verifySolution functions. - [Next.js](https://captcha.ribaunt.com/server/nextjs.md): Create Ribaunt CAPTCHA challenge and verify handlers for Next.js App Router and Pages Router, with environment setup and replay protection tips. - [Configuration](https://captcha.ribaunt.com/widget/configuration.md): Complete reference for all ribaunt-widget HTML attributes and React props: endpoints, auto-verify, timeout, disabled state, and challenge response formats. - [Events](https://captcha.ribaunt.com/widget/events.md): Reference for all events emitted by ribaunt-widget: verify, error, and state-change. Includes React callback prop equivalents and event detail types. - [Theming](https://captcha.ribaunt.com/widget/theming.md): Style the ribaunt-widget using CSS custom properties. Covers all variables for colors, dimensions, borders, spinner, and dark mode implementation.