EAS CAPTCHA
A trust check, not a puzzle

Prove enough.Skip the CAPTCHA.

Let trusted EAS attestations carry the signal. Qualifying wallets pass with a signature; everyone else continues to your existing CAPTCHA.

No transaction
No gas fee
Server verified

Protected action

Create an account

Live demo

Verify with your wallet

We’ll check for a trusted onchain attestation. You only sign a one-time message.

No transaction Server verified
Trust policy

Coinbase Verified Account

Base or Base Sepolia · verifiedAccount = true

No qualifying attestation? Your normal CAPTCHA appears automatically.

01

Bind the challenge

Origin, action, wallet, chain, nonce, and expiry live in one signed SIWE message.

02

Resolve the policy

Find any matching rule, then require every trusted attester and typed field condition inside it.

03

Consume the pass

The protected backend verifies a short-lived token and atomically burns its one-time ID.

Open-source integration

Your policy.
Your infrastructure.

Self-host the routes, choose the schemas and issuers you trust, then slot the React component in front of any sensitive action.

Explore EAS on GitHub
server.ts
const captcha = createEasCaptcha({
  policy: {
    version: 1,
    rules: [{
      chainId: 8453,
      schemaUid: VERIFIED_ACCOUNT_SCHEMA,
      attesters: [COINBASE_ATTESTER],
      fields: [{ field: 'verifiedAccount', op: 'eq', value: true }]
    }]
  },
  store,
  tokenSecret
})