PowForge CAPTCHA

Proof-of-work OR Lightning payment. No surveillance. No tracking. Just physics.
Live SHA-256 difficulty 18 ⚡ 3 sats to skip

Demo — try it live

Complete the CAPTCHA below by computing a SHA-256 proof-of-work (takes ~5 seconds) or paying 3 sats via Lightning.

Access granted. Token verified server-side. No cookies. No tracking.

Drop-in installation — via npm or CDN

# Install via npm
npm install @powforge/captcha
<!-- Or add via CDN -->
<script src="https://unpkg.com/@powforge/captcha/dist/powforge-captcha.min.js"
        data-target="[data-powforge-captcha]"
        data-server="https://captcha.powforge.dev"
        data-theme="dark"
        data-callback="onCaptchaDone">
</script>

<!-- Place this where you want the widget -->
<div data-powforge-captcha></div>

<!-- Hidden token field (auto-filled) -->
<input type="hidden" name="pf_token">

<script>
function onCaptchaDone(token, method) {
  // token = short-lived JWT
  // method = 'pow' | 'lightning'
  console.log('Verified via', method);
  document.getElementById('submit-btn').disabled = false;
}
</script>

Server verification

// Node.js example
const res = await fetch('https://powforge.dev/captcha/api/verify-token', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ token: req.body.pf_token })
});
const { valid } = await res.json();
if (!valid) return res.status(403).send('CAPTCHA failed');