GameCaptcha/Games/Whack-a-Bot
๐Ÿ”จ

LIVE DEMO

Whack-a-Bot

Whack 5 humans, avoid bots

Security CheckWHACK-A-BOT
Tap HUMANS ยท Avoid bots
๐ŸŸฆ Human (tap)ยท๐ŸŸฅ Bot (avoid)ยท๐ŸŸจ Trap (avoid)

โ†‘ This is exactly what your users will see

12s

Avg solve time

Medium

Difficulty

Pay what you want

Price

About this game

Targets pop up fast. Click the humans, dodge the robots. 5 correct hits and you're through.

Bot-proofMobile friendlyNo cookiesGDPR safeLogin forms

PAY WHAT YOU WANT

Your price

All 7 games

Full pack available

Pay what you want โ†’

  • โœ“ Lifetime access
  • โœ“ Unlimited domains
  • โœ“ API + embed code
  • โœ“ Dashboard & site key
GET ALL 7 GAMES โ€” PAY WHAT YOU WANT โ†’

Embed code

index.html
<!-- 1. Add the script -->
<script src="https://didyu.app/captchagames/embed.js" async></script>

<!-- 2. Drop in the widget -->
<div
  id="gc-widget"
  data-game="whackabot"
  data-site-key="YOUR_SITE_KEY"
></div>

<!-- 3. Verify on your server -->
<script>
  document.getElementById('gc-widget').addEventListener('gc:pass', async (e) => {
    const res = await fetch('/api/verify-captcha', {
      method: 'POST',
      body: JSON.stringify({ token: e.detail.token }),
    });
    const { success } = await res.json();
    if (success) submitForm();
  });
</script>

Server verification

server.js
// Server-side token verification
const res = await fetch('https://didyu.app/captchagames/api/verify', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY',
  },
  body: JSON.stringify({
    token: req.body.token,
    siteKey: 'gc_whackabot_xxxx',
  }),
});

const { success, gameId } = await res.json();
// success === true means a real human passed the Whack-a-Bot challenge